深入浅出可观测性
翁一磊
观测云产品技术总监
4965 人已学习
新⼈⾸单¥29
登录后,你可以任选4讲全文学习
课程目录
已完结/共 18 讲
深入浅出可观测性
15
15
1.0x
00:00/00:00
登录|注册

04 | OpenTelemetry:如何利用OpenTelemetry采集可观测数据?

你好,我是翁一磊。
通过之前概念篇的介绍,相信你已经了解了可观测性的基本概念还有它和传统监控的区别。这节课,我们来看看 OpenTelemetry ,它目前已经是可观测领域非常成熟和热门的标准和规范了。

OpenTelemetry 简介

OpenTelemetry 简称 OTel, 是 CNCF ( Cloud Native Computing Foundation,云原生计算基金会,是一个开源软件基金会,致力于云原生技术的普及和可持续发展) 的一个可观测性项目。
OpenTelemetry 旨在提供可观测性领域的标准化方案,解决遥测数据的数据建模、采集、处理、导出等标准化问题,并能够将这些数据发送到你选择的后端(开源或商业均可)。这样你就可以建立不被供应商锁定的可观测,灵活地更改后端,不需要再次更改代码,重新进行插桩(Instrument)了。

OpenTelemetry 简要历史

OpenTelemetry 不是凭空出现的。在 OpenTelemetry 出现之前,还出现过 OpenTracing 和 OpenCensus 两套标准。
我在第 1 讲监控的历史中,就提到过应用性能监控 APM。目前在这一领域有 Jaeger、Pinpoint、Zipkin 等多个开源产品,商业玩家也有很多,可谓竞争非常激烈。然而,这也带来了一个问题,那就是每一家都有一套自己的数据采集标准和 SDK,实现上各不相同,很难实现厂商或者技术中立。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

OpenTelemetry是一个旨在提供可观测性领域的标准化方案的项目,解决遥测数据的数据建模、采集、处理、导出等标准化问题。它包括跨语言规范、API/SDK和OpenTelemetry Collector三个主要部分。跨语言规范定义了遥测客户端内部实现所需要的标准和定义,API/SDK提供了基础的监测客户端API和SDK,而OpenTelemetry Collector则是负责接收、转换和导出遥测数据的工具。OpenTelemetry可以同时兼容OpenTracing和OpenCensus,支持各种语言和后端,代表了一种厂商中立的态度。在实现方案上,OpenTelemetry可以与开源工具组合使用,将不同类型的数据存储在不同的平台,如ELK、Jaeger、Prometheus等。通过SpringBoot应用的例子,文章展示了数据采集和传输的过程,以及日志的两种收集方式。整体来说,OpenTelemetry是一个重要的可观测性项目,为可观测性领域提供了标准化的解决方案,具有广泛的适用性和灵活性。文章还介绍了OpenTelemetry与Grafana Tempo和Loki的对接方式,以及观测云的数据采集Agent DataKit。这些对接方式为用户提供了多样化的选择,帮助他们更好地实现可观测性。同时,文章提出了一个思考题,邀请读者分享使用OpenTelemetry建立可观测性的心得体会,展现了对读者的关怀和互动。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入浅出可观测性》
新⼈⾸单¥29
立即购买
登录 后留言

全部留言(9)

  • 最新
  • 精选
  • 权衡
    给我的感觉可观测云其实就是融合了prometheus、elk、skywalking,然后用一个otel规范统一格式,供prometheus、elk去 拉取数据,然后通过grafana统一大盘展示,实质上其实可观测就是现在的监控。只是每个产品都想做全功能冗余了,于是乎就开始有公司进行整合统一

    作者回复: 不仅仅只是简单的功能整合,更重要的是数据层面的关联,这样在分析问题的时候可以直接获取上下文进行分析和定位,而无需做很多人工的处理和诊断

    2023-05-19归属地:湖南
    1
  • Devops
    大佬快更新,我需要具体案例

    作者回复: 嗯后面就会有实战的课程

    2022-09-22归属地:上海
    1
  • Leyoz
    没看懂啊,说的有点晦涩

    作者回复: 课程中主要介绍的是 OpenTelemetry 的原理,以及集成使用的一些场景。具体的实现细节,可以参考 OpenTelemetry 的文档。

    2022-12-21归属地:上海
  • 东方德胜
    图中的typo:SprintBoot --> SpringBoot。

    作者回复: 感谢指正!

    2022-11-19归属地:四川
  • 耿安鹏
    opentelemetry中trace、metric和log在程序实现过程中如何关联的?比如metric通过什么样的数据结构关联的,有具体的例子可以参照吗?

    作者回复: 举个 Java 语言的例子,OpenTelemetry 通过 java-agent 方式注入到应用当中,应用产生链路信息后,通过设置 MDC 可以把 trace_id 和 span_id 作为参数传递给 log,这样 log 在输出的时候便会带上,从而与链路串联起来。 OpenTelemetry 同样也支持指标也就是 metric 的采集,通过 Collector 将指标输出到对应的Exporter,比如 Prometheus。Exporter 支持 metric 的输出,metric 和 log 及 trace 的关联可以通过主机名称,也就是标签为 server_name 进行关联。

    2022-09-22归属地:上海
    4
  • Joky
    请教老师,看了这个观测云,怎么感觉和国外的datadog非常相似? 可不可以理解为中国版的datadog?

    作者回复: DataDog是国外可观测领域的标杆,观测云也是在不断努力不断进步!

    2022-09-22归属地:上海
    2
  • peter
    请教老师几个问题: Q1:观测云的方案1中,日志通过两路发送到DataKit,这不是重复了吗? 为什么要这样设计 Q2:我打算建一个小网站,大约五万用户的规模,打算采用Prometheus。请问,针对我的情况,需要采用OpenTelemetry吗?

    作者回复: Q1: 方案1是服务端和客户端分别发送日志,不会重复。Q2: Prometheus主要在于指标监控,如果还需要采集其他的数据例如链路追踪,需要OTel

    2022-09-21归属地:上海
  • 小鱼儿
    如果collector作为中间的传递模块,那前面的遥测数据采集的标准是不是得符合collector 支持的数据类型? 自研的采集sdk遥测数据要能传递到 open telemetry,该做哪些改动?
    2024-03-12归属地:上海
  • 达叔灬
    菜鸟疑问,文中说到otlp上报日志数据通过expoter推送到collector,exporter是collector中的exporter吗?是否存在多个collector间接或直接串行的情况?
    2023-10-07归属地:浙江
收起评论
显示
设置
留言
9
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部