OpenTelemetry 入门:云原生可观测性标准

图片

OpenTelemetry 是 CNCF 主导的开源可观测性标准,GitHub 星标超过 4.3k,现在是云原生时代统一的观测数据采集标准,把追踪、指标、日志三个都统一了,越来越多大厂在用。

我在项目里用过 OpenTelemetry 采集指标和链路,确实标准化了,不用给每个服务接不同的 SDK,省心。今天聊聊它好在哪,到底值得学吗。

OpenTelemetry 解决了什么问题

以前可观测性这块,各个厂商各个工具都有自己的 SDK,你要输出指标给 Prometheus,得接 Prometheus SDK,要输出链路给 Jaeger,又要接 Jaeger SDK,每个服务都要接好几套 SDK,麻烦。

不同工具数据格式不统一,你要对起来很难,麻烦。OpenTelemetry 就是解决这个,统一一套标准,一套 SDK 搞定指标、链路、日志,采集完了可以导出给任何后端工具,Prometheus、Jaeger、Zipkin 都支持,不用改应用代码,换后端就行。

标准化就是它最大的好处,现在云原生可观测性基本上就是这个标准了。

基础例子看一下

用 OpenTelemetry Collector 采集数据,Docker 启动:

receivers:
  prometheus:
    config:
      scrape_configs:
        - job_name: 'otel-collector'
          scrape_interval: 10s
          static_configs:
            - targets: ['localhost:8888']

exporters:
  prometheus:
    endpoint: "0.0.0.0:8889"

service:
  pipelines:
    metrics:
      receivers: [prometheus]
      exporters: [prometheus]
docker run -p 4317:4317 -p 8889:8889 \
  -v ./config.yml:/etc/otelcol/config.yml \
  otel/opentelemetry-collector:latest

应用端接入,Go 语言大概这样:

import "go.opentelemetry.io/otel"

初始化 tracer 和 meter,创建 span 记录链路,指标自动采集,一套代码搞定,采集完发给 Collector,再导出到你要的后端,就是这么简单。

核心好用的特性

统一标准

指标、链路、日志三套数据统一一套标准,一套 SDK,不用接好多套,应用接入一次就好,不用改代码换后端,方便。

不绑定后端

你采集完可以导出给 Prometheus 存指标,Jaeger 存链路,Elasticsearch 存日志,随便组合,想用哪个后端用哪个,不锁死你。

自动 instrumentation

很多框架支持自动注入,不用你改业务代码,启动的时候注入一下,自动采集链路和指标,省事好多,接入成本极低。

提供商中立

CNCF 项目,不是哪家厂商的,谁都能用,社区一大堆公司贡献,发展快,标准统一,不用担心被绑定。

支持多种部署

可以每个 Pod 边车部署,也可以每个节点一个 Agent,还可以集中部署 Collector,各种架构都支持,你想怎么部署就怎么部署,灵活。

哪些场景用 OpenTelemetry

云原生微服务架构,可观测性需要统一采集,肯定要用 OpenTelemetry,标准化了,省心。多个团队不同服务,统一用一套 SDK,数据格式一致,对起来方便。想要灵活组合不同后端工具,比如指标给 Prometheus,链路给 Jaeger,日志给 Loki,OpenTelemetry 帮你采集分发,完美。

现在新建项目,可观测性直接上 OpenTelemetry 准没错,未来趋势就是这个。

OpenTelemetry 有哪些优缺点

优点就是统一标准,一套搞定所有观测数据,不用接好多 SDK,应用代码干净,后端可以随便换,灵活。社区活跃,各大厂商都支持,方向肯定对。

缺点,项目挺大,模块多,新手一开始概念有点多,要理解清楚 pipeline、receivers、exporters 这些概念,得花点时间。还是在快速发展,API 偶尔有点变化,不过核心已经稳定能用了。

现在 OpenTelemetry 发展得怎么样

CNCF 孵化,现在越来越火,各大厂商都已经支持,Grafana、Jaeger、Prometheus 都接好了,用户增长很快,现在云原生可观测性基本上就是这个标准,趋势很明显,越来越多人用。

现在学 OpenTelemetry 值得吗

做云原生开发运维,肯定值得学。未来可观测性就是这个标准,早点学会早点用上,项目接入真的省心很多,不用接一堆不同 SDK,统一一套,维护方便。

概念虽然多,常用其实就是那几个,照着例子配置,半天就能跑通,慢慢深入就行。现在工作找工作,懂可观测性懂 OpenTelemetry 也是加分项,肯定值得学。

项目地址:https://github.com/open-telemetry/opentelemetry

posted @ 2026-05-08 13:07  webwizard9  阅读(2)  评论(0)    收藏  举报