×

导出器将数据发送到一个或多个后端或目标。导出器可以是基于推送的或基于拉取的。默认情况下,未配置任何导出器。必须配置一个或多个导出器。导出器可以支持一个或多个数据源。导出器可以使用其默认设置,但许多导出器需要配置才能至少指定目标和安全设置。

OTLP 导出器

OTLP gRPC 导出器使用 OpenTelemetry 协议 (OTLP) 导出跟踪和指标。

启用了 OTLP 导出器的 OpenTelemetry Collector 自定义资源
# ...
  config: |
    exporters:
      otlp:
        endpoint: tempo-ingester:4317 (1)
        tls: (2)
          ca_file: ca.pem
          cert_file: cert.pem
          key_file: key.pem
          insecure: false (3)
          insecure_skip_verify: false # (4)
          reload_interval: 1h (5)
          server_name_override: <name> (6)
        headers: (7)
          X-Scope-OrgID: "dev"
    service:
      pipelines:
        traces:
          exporters: [otlp]
        metrics:
          exporters: [otlp]
# ...
1 OTLP gRPC 端点。如果使用 `https://` 方案,则启用客户端传输安全并覆盖 `tls` 中的 `insecure` 设置。
2 客户端 TLS 配置。定义 TLS 证书的路径。
3 设置为 `true` 时禁用客户端传输安全。默认值为 `false`。
4 设置为 `true` 时跳过证书验证。默认值为 `false`。
5 指定重新加载证书的时间间隔。如果未设置值,则永远不会重新加载证书。`reload_interval` 接受包含有效时间单位的字符串,例如 `ns`、`us`(或 `µs`)、`ms`、`s`、`m`、`h`。
6 覆盖虚拟主机名或授权,例如请求中的授权标头字段。您可以将其用于测试。
7 在已建立连接期间执行的每个请求都会发送标头。

OTLP HTTP 导出器

OTLP HTTP 导出器使用 OpenTelemetry 协议 (OTLP) 导出跟踪和指标。

启用了 OTLP 导出器的 OpenTelemetry Collector 自定义资源
# ...
  config: |
    exporters:
      otlphttp:
        endpoint: http://tempo-ingester:4318 (1)
        tls: (2)
        headers: (3)
          X-Scope-OrgID: "dev"
        disable_keep_alives: false (4)

    service:
      pipelines:
        traces:
          exporters: [otlphttp]
        metrics:
          exporters: [otlphttp]
# ...
1 OTLP HTTP 端点。如果使用 `https://` 方案,则启用客户端传输安全并覆盖 `tls` 中的 `insecure` 设置。
2 客户端 TLS 配置。定义 TLS 证书的路径。
3 每个 HTTP 请求都会发送标头。
4 如果为 true,则禁用 HTTP 保持活动。它将仅将连接到服务器用于单个 HTTP 请求。

调试导出器

调试导出器将跟踪和指标打印到标准输出。

启用了调试导出器的 OpenTelemetry Collector 自定义资源
# ...
  config: |
    exporters:
      debug:
        verbosity: detailed (1)
        sampling_initial: 5 (2)
        sampling_thereafter: 200 (3)
        use_internal_logger: true (4)
    service:
      pipelines:
        traces:
          exporters: [debug]
        metrics:
          exporters: [debug]
# ...
1 调试导出的详细程度:`detailed`、`normal` 或 `basic`。设置为 `detailed` 时,管道数据将被详细记录。默认为 `normal`。
2 每秒记录的初始消息数。默认值为每秒 `2` 条消息。
3 记录初始消息数(`sampling_initial` 中的值)后,采样率。默认值为 `1`,默认情况下禁用采样。大于 `1` 的值启用采样。有关更多信息,请参阅 Go 项目网站上`zapcore` 包中 sampler 函数的页面
4 设置为 `true` 时,启用导出器的 Collector 内部日志程序的输出。

负载均衡导出器

负载均衡导出器根据 `routing_key` 配置一致地导出跨度、指标和日志。

负载均衡导出器仅为技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能提供对即将推出的产品功能的早期访问,使客户能够在开发过程中测试功能并提供反馈。

有关 Red Hat 技术预览功能的支持范围的更多信息,请参阅 技术预览功能支持范围

启用了负载均衡导出器的 OpenTelemetry Collector 自定义资源
# ...
  config: |
    exporters:
      loadbalancing:
        routing_key: "service" (1)
        protocol:
          otlp: (2)
            timeout: 1s
        resolver: (3)
          static: (4)
            hostnames:
            - backend-1:4317
            - backend-2:4317
          dns: (5)
            hostname: otelcol-headless.observability.svc.cluster.local
          k8s: (6)
            service: lb-svc.kube-public
            ports:
              - 15317
              - 16317
# ...
1 `routing_key: service` 将同一服务名称的跨度导出到同一 Collector 实例,以提供准确的聚合。`routing_key: traceID` 根据其 `traceID` 导出跨度。隐式默认值为基于 `traceID` 的路由。
2 OTLP 是唯一支持的负载均衡协议。支持 OTLP 导出器的所有选项。
3 您只能配置一个解析器。
4 静态解析器将负载分配到列出的端点。
5 只有在 Kubernetes 无头服务中才能使用 DNS 解析器。
6 推荐使用 Kubernetes 解析器。

Prometheus 导出器

Prometheus 导出器以 Prometheus 或 OpenMetrics 格式导出指标。

Prometheus 导出器仅为技术预览功能。技术预览功能不受 Red Hat 生产服务等级协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能提供对即将推出的产品功能的早期访问,使客户能够在开发过程中测试功能并提供反馈。

有关 Red Hat 技术预览功能的支持范围的更多信息,请参阅 技术预览功能支持范围

启用 Prometheus 导出器的 OpenTelemetry Collector 自定义资源
# ...
  config: |
    exporters:
      prometheus:
        endpoint: 0.0.0.0:8889 (1)
        tls: (2)
          ca_file: ca.pem
          cert_file: cert.pem
          key_file: key.pem
        namespace: prefix (3)
        const_labels: (4)
          label1: value1
        enable_open_metrics: true (5)
        resource_to_telemetry_conversion: (6)
          enabled: true
        metric_expiration: 180m (7)
        add_metric_suffixes: false (8)
    service:
      pipelines:
        metrics:
          exporters: [prometheus]
# ...
1 公开指标的网络端点。Red Hat 版本的 OpenTelemetry Operator 会自动将endpoint字段中指定的端口公开到<实例名称>-collector服务。
2 服务器端 TLS 配置。定义 TLS 证书的路径。
3 如果设置,则在提供的 value 下导出指标。
4 应用于每个导出指标的键值对标签。
5 如果为true,则使用 OpenMetrics 格式导出指标。示例仅在 OpenMetrics 格式中导出,并且仅适用于直方图和单调总和指标,例如counter。默认情况下禁用。
6 如果enabledtrue,则所有资源属性都将转换为指标标签。默认情况下禁用。
7 定义指标在没有更新的情况下公开的时长。默认为5m
8 添加指标类型和单位后缀。如果启用了 Jaeger 控制台中的监控选项卡,则必须禁用此选项。默认为true

OpenTelemetryCollector自定义资源 (CR) 中的spec.observability.metrics.enableMetrics字段设置为true时,OpenTelemetryCollector CR 会自动创建一个 Prometheus ServiceMonitorPodMonitor CR,以使 Prometheus 能够抓取您的指标。

Prometheus 远程写入导出器

Prometheus 远程写入导出器将指标导出到兼容的后端。

Prometheus 远程写入导出器仅为技术预览功能。技术预览功能不受 Red Hat 生产服务等级协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能提供对即将推出的产品功能的早期访问,使客户能够在开发过程中测试功能并提供反馈。

有关 Red Hat 技术预览功能的支持范围的更多信息,请参阅 技术预览功能支持范围

启用 Prometheus 远程写入导出器的 OpenTelemetry Collector 自定义资源
# ...
  config: |
    exporters:
      prometheusremotewrite:
        endpoint: "https://my-prometheus:7900/api/v1/push" (1)
        tls: (2)
          ca_file: ca.pem
          cert_file: cert.pem
          key_file: key.pem
        target_info: true (3)
        export_created_metric: true (4)
        max_batch_size_bytes: 3000000 (5)
    service:
      pipelines:
        metrics:
          exporters: [prometheusremotewrite]
# ...
1 发送指标的端点。
2 服务器端 TLS 配置。定义 TLS 证书的路径。
3 设置为true时,为每个资源指标创建一个target_info指标。
4 设置为true时,为摘要、直方图和单调总和指标点导出_created指标。
5 发送到远程写入端点的样本批次的最大大小。超过此值会导致批次拆分。默认值为3000000,大约为 2.861 MB。
  • 此导出器会丢弃非累积单调、直方图和摘要 OTLP 指标。

  • 您必须在远程 Prometheus 实例上启用--web.enable-remote-write-receiver功能标志。没有它,使用此导出器将指标推送到实例将失败。

Kafka 导出器

Kafka 导出器将日志、指标和跟踪导出到 Kafka。此导出器使用同步生产者,它会阻塞并且不会批量处理消息。您必须将其与批量和排队重试处理器一起使用,以获得更高的吞吐量和弹性。

Kafka 导出器仅为技术预览功能。技术预览功能不受 Red Hat 生产服务等级协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能提供对即将推出的产品功能的早期访问,使客户能够在开发过程中测试功能并提供反馈。

有关 Red Hat 技术预览功能的支持范围的更多信息,请参阅 技术预览功能支持范围

启用 Kafka 导出器的 OpenTelemetry Collector 自定义资源
# ...
  config: |
    exporters:
      kafka:
        brokers: ["localhost:9092"] (1)
        protocol_version: 2.0.0 (2)
        topic: otlp_spans (3)
        auth:
          plain_text: (4)
            username: example
            password: example
          tls: (5)
            ca_file: ca.pem
            cert_file: cert.pem
            key_file: key.pem
            insecure: false (6)
            server_name_override: kafka.example.corp (7)
    service:
      pipelines:
        traces:
          exporters: [kafka]
# ...
1 Kafka 代理列表。默认为localhost:9092
2 Kafka 协议版本。例如,2.0.0。这是必填字段。
3 要从中读取的 Kafka 主题的名称。以下是默认值:跟踪的otlp_spans、指标的otlp_metrics、日志的otlp_logs
4 纯文本身份验证配置。如果省略,则禁用纯文本身份验证。
5 客户端 TLS 配置。定义 TLS 证书的路径。如果省略,则禁用 TLS 身份验证。
6 禁用验证服务器的证书链和主机名。默认为false
7 ServerName 指示客户端请求的服务器名称以支持虚拟主机。