选型

OpenTelemetry

你可能会说

日志、指标、链路三套 SDK,接入一遍要改三次代码?

可观测性的统一标准与 SDK一套 API 采集 traces / metrics / logs,导出到任意后端(Jaeger、Tempo、Prometheus);标准统一,后端可换。
也常被叫作OTel可观测性标准
先问一句多语言服务要统一埋点?
默认OpenTelemetry→擅长一套 SDK 三件套→别用只用单一托管 APM
成熟度采用

什么时候选它

  • 多语言服务统一埋点
  • 想避免被单一可观测厂商锁定
  • 需要 trace 串起跨服务调用

什么时候别选

  • 只用一家全托管 APM 且不想自建
  • 极小项目(日志就够)
  • 团队没有采集后端和存储
容易混在一起 · 怎么分
OpenTelemetry≠厂商 SDK

OTel 标准中立、可换后端;厂商 SDK 接入快但迁移时埋点全部重写。

Q面试会问什么

  • 问:trace 和 span 是什么?
    答:一次请求是一个 trace,内部每段操作是一个 span,靠 traceId 串联,父子关系表达调用链。
  • 问:和 Prometheus 的区别?
    答:OTel 是采集标准和 SDK;Prometheus 是指标存储查询系统,也可作为 OTel 的指标后端。
延伸阅读 · 权威出处