迁移 OpenTelemetry Collector 中的 Jaeger Exporter

博客文章在发布后不会更新。这篇文章已经发布一年多了,其内容可能已过时,部分链接可能无效。在依赖任何信息之前,请务必核实。

OpenTelemetry Collector 的最新二进制版本不再包含原生 Jaeger 格式的 exporter。此更改是因为 Jaeger 内置支持 OTLP。如果您是 Jaeger 或 Jaeger Thrift exporter 的当前用户,在升级到最新 Collector 时,您有几个选项可供选择。

切换到 OTLP Exporter

推荐的选项是切换到 OpenTelemetry Protocol (OTLP) exporter。此 exporter 包含在社区支持的所有官方发行版中。要进行切换,您需要更新 collector 配置。找到以下 Jaeger exporter 配置

exporters:
  jaeger:
    endpoint: https://jaeger.example.com:14250

service:
  pipelines:
    exporters: [jaeger]

并将其替换为 OTLP 配置

exporters:
  otlp/jaeger: # Jaeger supports OTLP directly. The default port for OTLP/gRPC is 4317
    endpoint: https://jaeger.example.com:4317

service:
  pipelines:
    exporters: [otlp/jaeger]

Jaeger 版本直到 v1.46.0,需要设置以下环境变量 COLLECTOR_OTLP_ENABLED=true

构建自定义 Collector

如果切换到 OTLP exporter 不是一个选项,那么另一种方法是构建一个包含 Jaeger exporter 的自定义 Collector。请参阅构建自定义 Collector。您的 manifest 文件需要包含以下行来添加 Jaeger exporter

exporters:
  - gomod: go.opentelemetry.io/collector/exporter/jaegerexporter v0.85.0
  - gomod:
      go.opentelemetry.io/collector/exporter/jaegerthrifthttpexporter v0.85.0

有关现有 Collector 发行版的 manifest 文件的更多示例,请参阅 opentelemetry-collector-releases 仓库。

如果以上任何选项都不适用于您的用例,请通过 CNCF Slack 联系 #otel-collector 社区,或在 repository 中打开一个 issue。