调试导出器

调试导出器是一种专用于故障排查的导出器,它会将收集到的遥测数据输出到标准输出(stdout),使你可以直接查看 Collector 接收到并处理的数据内容。

概述

调试导出器主要用于以下场景:

  • 验证 Collector 是否正确接收遥测数据
  • 检查数据格式和内容是否符合预期
  • 排查数据处理管道问题
  • 在开发和测试环境中快速查看数据
WARNING

调试导出器会将所有数据输出到日志中,这可能会产生大量日志量。不建议在生产环境中长期使用。

配置调试导出器

你可以在 OpenTelemetryCollector 自定义资源中配置调试导出器:

config:
  exporters:
    debug:
      verbosity: detailed
  service:
    pipelines:
      traces:
        exporters: [debug]
      metrics:
        exporters: [debug]
      logs:
        exporters: [debug]

配置参数

  • verbosity:输出详细级别,可选值:
    • basic:基本信息(默认)
    • normal:标准信息
    • detailed:详细信息,包括完整的数据内容

查看导出的数据

配置调试导出器后,导出的数据会出现在 Collector pod 的日志中。使用以下命令查看:

kubectl logs <collector-pod-name> -n <namespace> -f

示例输出

2025-04-17T10:40:44.559+0200    info    Traces  {"otelcol.component.id": "debug/basic", "otelcol.component.kind": "Exporter", "otelcol.signal": "traces", "resource spans": 1, "spans": 2}

将调试导出器与其他导出器一起使用

调试导出器可以与其他导出器同时使用,从而在将数据发送到后端系统的同时,查看日志中的数据内容:

config:
  exporters:
    debug:
      verbosity: detailed
    otlp_grpc:
      endpoint: jaeger-collector:4317
      tls:
        insecure: true
  service:
    pipelines:
      traces:
        receivers: [otlp]
        processors: [batch]
        exporters: [debug, otlp_grpc]

在此配置中,traces 数据会同时发送到调试导出器和 OTLP exporter。