4.4. Exporters


导出器将数据发送到一个或多个后端或目的地。导出器可以基于推送或拉取 (pull)。默认情况下,不会配置导出器。必须配置一个或多个导出器。导出器可以支持一个或多个数据源。导出器可能会与其默认设置一起使用,但许多导出器需要配置来至少指定目标和安全设置。

目前,红帽构建的 OpenTelemetry 提供了以下正式发行(GA)和技术预览导出器:

4.4.1. OTLP Exporter

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

OpenTelemetry Collector 自定义资源带有启用的 OTLP Exporter

# ...
  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]
# ...
Copy to Clipboard Toggle word wrap

1
OTLP gRPC 端点。如果使用 https:// 方案,则启用客户端传输安全性并覆盖 tls 中的 不安全 设置。
2
客户端 TLS 配置。定义 TLS 证书的路径。
3
当设置为 true 时禁用客户端传输安全性。默认值为 false
4
当设置为 true 时跳过验证证书。默认值为 false
5
指定重新载入证书的时间间隔。如果没有设置值,则证书永远不会重新加载。reload_interval 接受包含有效时间单位的字符串,如 nsus (或 unmarshals )、mssmh
6
覆盖请求中的颁发机构的虚拟主机名,如授权标头字段。您可以使用此选项进行测试。
7
为建立的连接期间执行的每个请求发送标头。

4.4.2. OTLP HTTP Exporter

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

OpenTelemetry Collector 自定义资源带有启用的 OTLP Exporter

# ...
  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]
# ...
Copy to Clipboard Toggle word wrap

1
OTLP HTTP 端点。如果使用 https:// 方案,则启用客户端传输安全性并覆盖 tls 中的 不安全 设置。
2
客户端 TLS 配置。定义 TLS 证书的路径。
3
标头会在每个 HTTP 请求中发送。
4
如果为 true,禁用 HTTP keep-alives。它将只对单个 HTTP 请求使用到服务器的连接。

4.4.3. Debug Exporter

Debug Exporter 将 trace 和 metrics 打印到标准输出。

OpenTelemetry Collector 自定义资源带有启用的 Debug Exporter

# ...
  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]
# ...
Copy to Clipboard Toggle word wrap

1
debug 导出的详细程度为:detailednormalbasic。当设置为 detailed 时,管道数据会被详细记录。默认为 normal
2
每秒日志记录的初始消息数。默认值为每秒 2 个消息。
3
在初始消息数后的抽样率,sampling_initial 中的值已被记录。默认禁用,默认值为 1。使用大于 1 的值启用抽样。如需更多信息,请参阅 Go Project 网站上 zapcore 软件包中的 sampler 函数页。
4
当设置为 true 时,为导出器启用 Collector 内部日志记录器的输出。

4.4.4. Load Balancing Exporter

Load Balancing Exporter 根据 routing_key 配置,一致性地导出 span、metrics 和 logs。

重要

Load Balancing Exporter 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

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

OpenTelemetry Collector 自定义资源带有启用的 Load Balancing Exporter

# ...
  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
# ...
Copy to Clipboard Toggle word wrap

1
routing_key: service 将相同服务名称的 span 导出到同一个 Collector 实例,以提供准确的聚合数据。routing_key: traceID 根据 traceID 导出 span。隐式默认为基于 traceID 的路由。
2
OTLP 是唯一支持的负载均衡协议。支持 OTLP 导出器的所有选项。
3
您只能配置一个解析器。
4
静态解析器在列出的端点之间发布负载。
5
您只能将 DNS 解析器与 Kubernetes 无头(headless)服务一起使用。
6
建议使用 Kubernetes 解析器。

4.4.5. Prometheus Exporter

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

重要

Prometheus Exporter 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

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

OpenTelemetry Collector 自定义资源带有启用的 Prometheus Exporter

# ...
  ports:
  - name: promexporter 
1

    port: 8889
    protocol: TCP
  config:
    exporters:
      prometheus:
        endpoint: 0.0.0.0:8889 
2

        tls: 
3

          ca_file: ca.pem
          cert_file: cert.pem
          key_file: key.pem
        namespace: prefix 
4

        const_labels: 
5

          label1: value1
        enable_open_metrics: true 
6

        resource_to_telemetry_conversion: 
7

          enabled: true
        metric_expiration: 180m 
8

        add_metric_suffixes: false 
9

    service:
      pipelines:
        metrics:
          exporters: [prometheus]
# ...
Copy to Clipboard Toggle word wrap

1
从 Collector pod 和服务公开 Prometheus 端口。您可以使用 ServiceMonitorPodMonitor 自定义资源中的端口名称启用 Prometheus 提取指标。
2
公开指标的网络端点。
3
服务器端 TLS 配置。定义 TLS 证书的路径。
4
如果设置,在提供的值下导出指标。无默认值。
5
每个导出的指标应用的键值对标签。无默认值。
6
如果为 true,则使用 OpenMetrics 格式导出指标。Exemplars 仅以 OpenMetrics 格式导出,仅适用于直方和 monotonic 摘要指标,如 counter。默认禁用此选项。
7
如果 enabledtrue,则默认情况下,所有资源属性都会转换为指标标签。默认禁用此选项。
8
定义在没有更新的情况下公开指标的时间。默认值为 5m
9
添加指标类型和单元后缀。如果启用了 Jaeger 控制台中的 monitor 选项卡,则必须禁用。默认值是 true

4.4.6. Prometheus Remote Write Exporter

Prometheus Remote Write Exporter 将指标导出到兼容后端。

重要

Prometheus Remote Write Exporter 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

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

OpenTelemetry Collector 自定义资源带有启用的 Prometheus Remote Write Exporter

# ...
  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]
# ...
Copy to Clipboard Toggle word wrap

1
用于发送指标的端点。
2
服务器端 TLS 配置。定义 TLS 证书的路径。
3
当设置为 true 时,为每个资源指标创建一个 target_info 指标。
4
当设置为 true 时,为 Summary、Histogram 和 Monotonic Sum 指标点导出 _created 的指标。
5
发送到远程写入端点的示例批处理的最大大小。超过这个值会导致批处理分割。默认值为 3000000,它大约为 2.861MB。
警告
  • 此导出器会丢弃 non-cumulative monotonic, histogram, 和 summary OTLP 指标。
  • 您需要在远程 Prometheus 实例上启用 --web.enable-remote-write-receiver 功能标记。如果没有它,则使用此导出器将指标推送到实例会失败。

4.4.7. Kafka Exporter

Kafka Exporter 将日志、指标和追踪导出到 Kafka。此导出器使用同步制作者,用于阻止且不批处理消息。它必须与批处理和排队重试处理器一起使用,以获得更高的吞吐量和弹性。

OpenTelemetry Collector 自定义资源带有启用的 Kafka Exporter

# ...
  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]
# ...
Copy to Clipboard Toggle word wrap

1
Kafka 代理列表。默认值为 localhost:9092
2
Kafka 协议版本。例如,2.0.0。这个为必填字段。
3
要从中读取的 Kafka 主题的名称。以下是默认设置:otlp_spans(用于 traces), otlp_metrics(用于 metrics), otlp_logs(用于 logs)。
4
纯文本形式的身份验证配置。如果省略,则禁用纯文本形式的身份验证。
5
客户端 TLS 配置。定义 TLS 证书的路径。如果省略,则禁用 TLS 身份验证。
6
禁用验证服务器的证书链和主机名。默认值为 false
7
ServerName 表示客户端请求的服务器名称,以支持虚拟主机。

4.4.8. AWS CloudWatch Logs Exporter

AWS CloudWatch Logs Exporter 将日志数据发送到 Amazon CloudWatch Logs 服务,并使用 AWS SDK 为 Go 和默认凭证供应商链签名请求。

重要

AWS CloudWatch Logs Exporter 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

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

OpenTelemetry Collector 自定义资源带有启用的 AWS CloudWatch Logs Exporter

# ...
  config:
    exporters:
      awscloudwatchlogs:
        log_group_name: "<group_name_of_amazon_cloudwatch_logs>" 
1

        log_stream_name: "<log_stream_of_amazon_cloudwatch_logs>" 
2

        region: <aws_region_of_log_stream> 
3

        endpoint: <protocol><service_endpoint_of_amazon_cloudwatch_logs> 
4

        log_retention: <supported_value_in_days> 
5

# ...
Copy to Clipboard Toggle word wrap

1
必需。如果日志组尚不存在,则会自动创建它。
2
必需。如果日志流尚不存在,则会自动创建它。
3
可选。如果 AWS 区域还没有在默认凭证链中设置,您必须指定它。
4
可选。您可以覆盖将请求转发到的默认 Amazon CloudWatch Logs 服务端点。您必须包含协议,如 https://,作为端点值的一部分。有关区域服务端点列表,请参阅 Amazon CloudWatch Logs 端点和配额 (AWS General Reference)。
5
可选。使用这个参数,您可以为新的 Amazon CloudWatch 日志组设置日志保留策略。如果省略此参数或设置为 0,则日志默认不会过期。支持的保留值(以天为单位)是 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, 2192, 2557, 2922, 3288, 或 3653

4.4.9. AWS EMF Exporter

AWS EMF Exporter 将以下 OpenTelemetry 指标数据点转换为 AWS CloudWatch 嵌入式指标格式(EMF):

  • Int64DataPoints
  • DoubleDataPoints
  • SummaryDataPoints

然后,使用 PutLogEvents API 直接发送到 Amazon CloudWatch Logs 服务。

使用此导出器的一个好处是,可以在 Amazon CloudWatch 控制台中查看日志和指标,地址为 https://console.aws.amazon.com/cloudwatch/

重要

AWS EMF Exporter 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

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

OpenTelemetry Collector 自定义资源带有启用的 AWS EMF Exporter

# ...
  config:
    exporters:
      awsemf:
        log_group_name: "<group_name_of_amazon_cloudwatch_logs>" 
1

        log_stream_name: "<log_stream_of_amazon_cloudwatch_logs>" 
2

        resource_to_telemetry_conversion: 
3

          enabled: true
        region: <region> 
4

        endpoint: <protocol><endpoint> 
5

        log_retention: <supported_value_in_days> 
6

        namespace: <custom_namespace> 
7

# ...
Copy to Clipboard Toggle word wrap

1
自定义日志组名称。
2
自定义日志流名称。
3
可选。将资源属性转换为遥测属性,如指标标签。默认禁用此选项。
4
日志流的 AWS 区域。如果默认凭证供应商链中尚未设置区域,您必须指定区域。
5
可选。您可以覆盖将请求转发到的默认 Amazon CloudWatch Logs 服务端点。您必须包含协议,如 https://,作为端点值的一部分。有关区域服务端点列表,请参阅 Amazon CloudWatch Logs 端点和配额 (AWS General Reference)。
6
可选。使用这个参数,您可以为新的 Amazon CloudWatch 日志组设置日志保留策略。如果省略此参数或设置为 0,则日志默认不会过期。支持的保留值(以天为单位)是 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, 2192, 2557, 2922, 3288, 或 3653
7
可选。Amazon CloudWatch 指标的自定义命名空间。
日志组名称

log_group_name 参数允许您自定义日志组名称,并支持默认的 /metrics/default 值或以下占位符:

/aws/metrics/{ClusterName}
此占位符用于搜索指标数据中的 ClusterNameaws.ecs.cluster.name 资源属性,并将其替换为实际集群名称。
{NodeName}
此占位符用于搜索 NodeNamek8s.node.name 资源属性。
{TaskId}
此占位符用于搜索 TaskIdaws.ecs.task.id 资源属性。

如果在资源属性映射中没有找到 resource 属性,则占位符将替换为 undefined 值。

日志流名称

log_stream_name 参数允许您自定义日志流名称,并支持默认的 otel-stream 值或以下占位符:

{ClusterName}
此占位符用于搜索 ClusterNameaws.ecs.cluster.name 资源属性。
{ContainerInstanceId}
此占位符用于搜索 ContainerInstanceIdaws.ecs.container.instance.id 资源属性。此资源属性仅对 AWS ECS EC2 启动类型有效。
{NodeName}
此占位符用于搜索 NodeNamek8s.node.name 资源属性。
{TaskDefinitionFamily}
此占位符用于搜索 TaskDefinitionFamilyaws.ecs.task.family 资源属性。
{TaskId}
此占位符用于搜索指标数据中的 TaskIdaws.ecs.task.id 资源属性,并将其替换为实际任务 ID。

如果在资源属性映射中没有找到 resource 属性,则占位符将替换为 undefined 值。

4.4.10. AWS X-Ray Exporter

AWS X-Ray Exporter 将 OpenTelemetry span 转换为 AWS X-Ray Segment 文档,然后将它们直接发送到 AWS X-Ray 服务。AWS X-Ray Exporter 使用 PutTraceSegments API,并使用 AWS SDK 为 Go 和默认凭证供应商链签名请求。

重要

AWS X-Ray Exporter 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

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

OpenTelemetry Collector 自定义资源带有启用的 AWS X-Ray Exporter

# ...
  config:
    exporters:
      awsxray:
        region: "<region>" 
1

        endpoint: <protocol><endpoint> 
2

        resource_arn: "<aws_resource_arn>" 
3

        role_arn: "<iam_role>" 
4

        indexed_attributes: [ "<indexed_attr_0>", "<indexed_attr_1>" ] 
5

        aws_log_groups: ["<group1>", "<group2>"] 
6

        request_timeout_seconds: 120 
7

# ...
Copy to Clipboard Toggle word wrap

1
发送到 AWS X-Ray 服务的 X-Ray 片段的目标区域。例如,eu-west-1
2
可选。您可以覆盖将请求转发到的默认 Amazon CloudWatch Logs 服务端点。您必须包含协议,如 https://,作为端点值的一部分。有关区域服务端点列表,请参阅 Amazon CloudWatch Logs 端点和配额 (AWS General Reference)。
3
运行 Collector 的 AWS 资源的 Amazon 资源名称 (ARN)。
4
AWS Identity and Access Management (IAM) 角色,将 X-Ray 片段上传到其他帐户。
5
要转换为 X-Ray 注解的属性名称列表。
6
Amazon CloudWatch Logs 的日志组名称列表。
7
请求超时前的持续时间(以秒为单位)。如果省略,则默认值为 30

4.4.11. File Exporter

文件 Exporter 将遥测数据写入持久性存储中的文件,并支持轮转、压缩和写入多个文件等文件操作。使用这个导出器,您还可以使用 resource 属性来控制文件命名。唯一必需的设置是 path,用于指定 persistent-volume 文件系统中遥测文件的目的地路径。

重要

File Exporter 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

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

OpenTelemetry Collector 自定义资源带有启用的文件导出器

# ...
  config: |
    exporters:
      file:
        path: /data/metrics.json 
1

        rotation: 
2

          max_megabytes: 10 
3

          max_days: 3 
4

          max_backups: 3 
5

          localtime: true 
6

        format: proto 
7

        compression: zstd 
8

        flush_interval: 5 
9

# ...
Copy to Clipboard Toggle word wrap

1
要写入数据的文件系统路径。没有默认值。
2
文件轮转是此导出器的可选功能。默认情况下,遥测数据导出到单个文件。添加 rotation 设置以启用文件轮转。
3
max_megabytes 设置是文件被允许访问的最大大小,直到它被轮转为止。默认值为 100
4
max_days 设置用于保留文件的天数,从文件名中的时间戳计数。没有默认值。
5
max_backups 设置用于保留几个较旧的文件。默认为 100
6
localtime 设置指定时间戳的本地时间格式,该格式会在文件轮转时附加到任何扩展名前面的文件名中。默认为协调的通用时间 (UTC)。
7
在将遥测数据写入文件之前,对遥测数据进行编码的格式。默认格式为 json。还支持 proto 格式。
8
文件压缩是可选的,默认情况下不设置。此设置定义导出到文件的数据的压缩算法。目前,只支持 zstd 压缩算法。没有默认值。
9
刷新间隔。没有单位的值被设置为纳秒。当通过 rotation 设置启用文件轮转时,会忽略此设置。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat