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

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

1
公开指标的网络端点。Red Hat build of OpenTelemetry Operator 会自动公开 endpoint 字段中指定的端口,到 <instance_name>-collector 服务。
2
服务器端 TLS 配置。定义 TLS 证书的路径。
3
如果设置,在提供的值下导出指标。
4
每个导出的指标应用的键值对标签。
5
如果为 true,则使用 OpenMetrics 格式导出指标。Exemplars 仅以 OpenMetrics 格式导出,仅适用于直方和 monotonic 摘要指标,如 counter。默认禁用此选项。
6
如果 enabledtrue,所有资源属性都会转换为指标标签。默认禁用此选项。
7
定义在没有更新的情况下公开指标的时间。默认值为 5m
8
添加指标类型和单元后缀。如果启用了 Jaeger 控制台中的 monitor 选项卡,则必须禁用。默认值是 true
注意

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

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, 365 ,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, 365 ,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. 文件 Exporter

文件 Exporter 将遥测数据写入持久性存储中的文件,并支持轮转、压缩和写入多个文件等文件操作。使用这个导出器,您还可以使用 resource 属性来控制文件命名。唯一必需的设置是 路径,用于指定 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
文件轮转是此导出器的可选功能。默认情况下,遥测数据导出到单个文件。添加 轮转 设置以启用文件轮转。
3
max_megabytes 设置是文件被允许访问的最大大小,直到轮转为止。默认值为 100
4
max_days 设置用于保留文件的天数,从文件名中的时间戳计数。没有默认值。
5
max_backups 设置用于保留几个较旧的文件。defalt 为 100
6
localtime 设置指定时间戳的本地时间格式,该格式会在文件轮转时附加到任何扩展名前面的文件名中。默认为协调的通用时间(UTC)。
7
在将遥测数据写入文件之前,对遥测数据进行编码的格式。默认格式为 json。还支持 proto 格式。
8
文件压缩是可选的,默认情况下不设置。此设置定义导出到文件的数据的压缩算法。目前,只支持 zstd 压缩算法。没有默认值。
9
刷新间隔。没有单位的值被设置为纳秒。当通过轮转设置启用文件轮转时,会忽略此设置。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat