Skip to content

参考:OTel 三支柱、Collector 与生态速查

基于 OpenTelemetry 1.x(2026-05 CNCF 毕业) · 核于 2026-08

速查

  • OpenTelemetry:CNCF 毕业项目(2026-05),统一 Metrics/Logs/Traces 三支柱的可观测性开放标准,埋点一次发任意后端。
  • 三支柱:Metrics(时序数值)、Logs(结构化日志)、Traces(span 树),共享 trace_id 联动。
  • OTLP:统一传输协议(gRPC 4317 / HTTP 4318),protobuf 数据模型,后端无关的根基。
  • 埋点:自动(instrumentation library 零代码改动)+ 手动(OTel API 自定义业务 span/metric)。
  • Collector:接收-处理-导出三段式数据代理,解耦应用与后端。
  • 关系:OTel 是数据生产者,Prometheus/Jaeger/Grafana 是存储/可视化消费者——互补不替代。
  • 采用率:~76%~79%(Grafana 2025),过去 12 个月下载量 26 亿次,71% 同时用 Prometheus + OTel。
  • 历史:OpenTracing + OpenCensus 于 2019 合并成立 OTel,2026-05 毕业。

一、三支柱速查

支柱API数据形态仪器/字段成熟度
MetricsMeter时序数值Counter/UpDownCounter/Histogram/GaugeGA
LogsLogger结构化事件severity/body/attributes/trace_id趋于 GA(2024-2025)
TracesTracerspan 树trace_id/span_id/parent_span_id/name/attributesGA

Metrics 仪器

仪器行为用途
Counter只增不减请求总数、错误总数
UpDownCounter可增可减队列长度、连接数
Histogram分布(桶)延迟 P99、响应大小
Gauge瞬时值CPU、温度、内存

Trace span 关键字段

字段含义
trace_id整条链路 ID(贯穿三支柱)
span_id本段操作 ID
parent_span_id父段 ID(构成 span 树)
name操作名(如 process_order
start_time/end_time起止时间(算耗时)
attributes结构化属性(如 orderId)
statusOK / ERROR
eventsspan 内离散事件

二、OTLP 速查

维度说明
数据模型protobuf 定义 Metrics/Logs/Traces 规范结构
传输OTLP/gRPC(默认)/ OTLP/HTTP(protobuf 或 JSON)
默认端口gRPC: 4317 / HTTP: 4318
后端接入实现接收端 或 用 Collector 转码

三、Collector 组件清单

Receivers(接收)

Receiver接收格式
otlpOTel 标准(主要)
jaegerJaeger 兼容
zipkinZipkin 兼容
prometheusPrometheus exposition(拉取)
statsdStatsD 协议

Processors(处理)

Processor作用
batch批处理(攒批减少请求)
memory_limiter限制内存防 OOM
attributes增删改属性
resource加 Resource 属性
filter过滤数据
tail_sampling尾端采样

Exporters(导出)

Exporter导出目标
otlp另一 Collector 或 OTLP 后端
prometheusPrometheus(/metrics 或 remote_write)
jaeger / tempo追踪后端
loki / elasticsearch日志后端
datadog / honeycomb / newrelic商业 SaaS

四、部署模式对比

模式架构优点缺点适合
无 Collector应用直连后端简单绑死后端、无集中处理小规模验证
Agent本机 Collector本地低延迟、应用不管后端每机一个、资源分散K8s 节点级
Gateway集中 Collector集中管控、易扩容单点风险、跨网延迟中等规模
Agent + Gateway两级兼顾低延迟与集中管控架构复杂大规模生产

五、API vs SDK vs Instrumentation

概念是什么谁依赖
API@opentelemetry/api接口定义(不产生数据)库代码(轻量零依赖)
SDK@opentelemetry/sdk-node实现(产生+导出数据)应用入口配置
Instrumentation自动接入框架的库应用入口加载

六、生态角色速查

角色做什么例子
生产者(OTel)应用里埋点生产数据OTel SDK
传输(OTel)协议+代理OTLP + Collector
存储存遥测数据Prometheus/Loki/Tempo/ES
可视化画图看板Grafana/Jaeger UI/Kibana
告警阈值告警Alertmanager

七、易错点清单

  • 「OpenTelemetry 替代了 Prometheus」:错。OTel 是数据生产者,Prometheus 是存储/查询消费者。OTel SDK 生产 metric → Collector → Prometheus 存。71% 组织同时用两者。
  • 「OpenTelemetry 是个监控后端」:错。OTel 不存数据、不画图、不告警——只生产与传输遥测数据。存储用 Prometheus/Loki/Tempo,可视化用 Grafana。
  • 「Metrics/Logs/Traces 是三套独立系统」:错。OTel 的精髓是三支柱统一——一套 API/SDK/协议(OTLP),且共享 trace_id 联动。
  • 「自动埋点就够了,不用手动」:错。自动埋点只覆盖框架级调用(HTTP/DB),业务语义(如「处理支付」span)要手动埋点补充。
  • 「OTLP 必须用 gRPC」:错。OTLP 支持 gRPC(默认 4317)和 HTTP(4318,protobuf 或 JSON)。不支持 gRPC 的环境(如部分 Serverless)用 HTTP。
  • 「OpenTelemetry 是 Google 的项目」:部分渊源。它由 OpenTracing(CNCF)+ OpenCensus(Google)2019 年合并而来,现在是 CNCF 顶级的独立项目(2026 毕业)。
  • 「OpenTelemetry 毕业 = 完成了」:错。毕业是成熟度里程碑,但项目仍在演进——Logs 信号各语言陆续 GA、Profiling(第四支柱)开发中、eBPF 集成等新方向。
  • 「Collector 必须部署」:不一定。小规模可以让应用直连后端(无 Collector),但生产推荐用 Collector(解耦、扇出、集中处理)。
  • 「trace_id 只是 trace 的事」:错。OTel 的精髓是 trace_id 贯穿三支柱——metric 的 exemplar 关联 trace、log 带 trace_id,三者联动排障。
  • 「Context Propagation 是 OTel 自己发明的」:部分。OTel 默认用 W3C Trace Context(traceparent),这是 W3C 推荐标准,跨厂商跨语言通用。

权威链接