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
tls:
ca_file: ca.pem
cert_file: cert.pem
key_file: key.pem
insecure: false
insecure_skip_verify: false #
reload_interval: 1h
server_name_override: <name>
headers:
X-Scope-OrgID: "dev"
service:
pipelines:
traces:
exporters: [otlp]
metrics:
exporters: [otlp]
# ...
- 1
- OTLP gRPC 端点。如果使用
https://方案,则启用客户端传输安全性并覆盖tls中的不安全设置。 - 2
- 客户端 TLS 配置。定义 TLS 证书的路径。
- 3
- 当设置为
true时禁用客户端传输安全性。默认值为false。 - 4
- 当设置为
true时跳过验证证书。默认值为false。 - 5
- 指定重新载入证书的时间间隔。如果没有设置值,则证书永远不会重新加载。
reload_interval接受包含有效时间单位的字符串,如ns、us或 rhacms、ms、、sm、h。 - 6
- 覆盖授权的虚拟主机名,如请求中的 authority 标头字段。您可以使用此选项进行测试。
- 7
- 为建立的连接期间执行的每个请求发送标头。
4.4.2. OTLP HTTP Exporter 复制链接链接已复制到粘贴板!
OTLP HTTP Exporter 使用 OpenTelemetry 协议 (OTLP) 导出追踪和指标。
OpenTelemetry Collector 自定义资源带有启用的 OTLP Exporter
# ...
config:
exporters:
otlphttp:
endpoint: http://tempo-ingester:4318
tls:
headers:
X-Scope-OrgID: "dev"
disable_keep_alives: false
service:
pipelines:
traces:
exporters: [otlphttp]
metrics:
exporters: [otlphttp]
# ...
4.4.3. Debug Exporter 复制链接链接已复制到粘贴板!
Debug Exporter 将 trace 和 metrics 打印到标准输出。
OpenTelemetry Collector 自定义资源带有启用的 Debug Exporter
# ...
config:
exporters:
debug:
verbosity: detailed
sampling_initial: 5
sampling_thereafter: 200
use_internal_logger: true
service:
pipelines:
traces:
exporters: [debug]
metrics:
exporters: [debug]
# ...
- 1
- debug 导出的详细程度为:
detailed或normal或basic。当设置为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"
protocol:
otlp:
timeout: 1s
resolver:
static:
hostnames:
- backend-1:4317
- backend-2:4317
dns:
hostname: otelcol-headless.observability.svc.cluster.local
k8s:
service: lb-svc.kube-public
ports:
- 15317
- 16317
# ...
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
tls:
ca_file: ca.pem
cert_file: cert.pem
key_file: key.pem
namespace: prefix
const_labels:
label1: value1
enable_open_metrics: true
resource_to_telemetry_conversion:
enabled: true
metric_expiration: 180m
add_metric_suffixes: false
service:
pipelines:
metrics:
exporters: [prometheus]
# ...
- 1
- 公开指标的网络端点。Red Hat build of OpenTelemetry Operator 会自动公开
endpoint字段中指定的端口,到<instance_name>-collector服务。 - 2
- 服务器端 TLS 配置。定义 TLS 证书的路径。
- 3
- 如果设置,在提供的值下导出指标。
- 4
- 每个导出的指标应用的键值对标签。
- 5
- 如果为
true,则使用 OpenMetrics 格式导出指标。Exemplars 仅以 OpenMetrics 格式导出,仅适用于直方和 monotonic 摘要指标,如counter。默认禁用此选项。 - 6
- 如果
enabled是true,所有资源属性都会转换为指标标签。默认禁用此选项。 - 7
- 定义在没有更新的情况下公开指标的时间。默认值为
5m。 - 8
- 添加指标类型和单元后缀。如果启用了 Jaeger 控制台中的 monitor 选项卡,则必须禁用。默认值是
true。
当 OpenTelemetryCollector 自定义资源 (CR) 中的 spec.observability.metrics.enableMetrics 字段设置为 true 时,OpenTelemetryCollector CR 会自动创建一个 Prometheus ServiceMonitor 或 PodMonitor 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"
tls:
ca_file: ca.pem
cert_file: cert.pem
key_file: key.pem
target_info: true
export_created_metric: true
max_batch_size_bytes: 3000000
service:
pipelines:
metrics:
exporters: [prometheusremotewrite]
# ...
- 此导出器会丢弃 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"]
protocol_version: 2.0.0
topic: otlp_spans
auth:
plain_text:
username: example
password: example
tls:
ca_file: ca.pem
cert_file: cert.pem
key_file: key.pem
insecure: false
server_name_override: kafka.example.corp
service:
pipelines:
traces:
exporters: [kafka]
# ...
- 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>"
log_stream_name: "<log_stream_of_amazon_cloudwatch_logs>"
region: <aws_region_of_log_stream>
endpoint: <protocol><service_endpoint_of_amazon_cloudwatch_logs>
log_retention: <supported_value_in_days>
role_arn: "<iam_role>"
# ...
- 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,255,72922,3288, 或3653。 - 6
- 可选。AWS Identity and Access Management (IAM)角色,将日志片段上传到其他帐户。
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>"
log_stream_name: "<log_stream_of_amazon_cloudwatch_logs>"
resource_to_telemetry_conversion:
enabled: true
region: <region>
endpoint: <protocol><endpoint>
log_retention: <supported_value_in_days>
namespace: <custom_namespace>
role_arn: "<iam_role>"
# ...
- 1
- 您可以使用
log_group_name参数自定义日志组名称,或者设置默认/metrics/default值或以下占位符:/aws/metrics/{ClusterName}占位符用于搜索指标数据中的ClusterName或aws.ecs.cluster.name资源属性,并将其替换为实际集群名称。{NodeName}占位符用于搜索NodeName或k8s.node.name资源属性。{TaskId}占位符用于搜索TaskId或aws.ecs.task.id资源属性。如果在资源属性映射中没有找到 resource 属性,则占位符将替换为
undefined值。 - 2
- 您可以使用
log_stream_name参数自定义日志流名称,或者设置默认的otel-stream值或以下占位符:{ClusterName}占位符用于搜索ClusterName或aws.ecs.cluster.name资源属性。{ContainerInstanceId}占位符用于搜索ContainerInstanceId或aws.ecs.container.instance.id资源属性。此资源属性仅对 AWS ECS EC2 启动类型有效。{NodeName}占位符用于搜索NodeName或k8s.node.name资源属性。{TaskDefinitionFamily}占位符用于搜索TaskDefinitionFamily或aws.ecs.task.family资源属性。{TaskId}占位符用于搜索指标数据中的TaskId或aws.ecs.task.id资源属性,并将其替换为实际任务 ID。如果在资源属性映射中没有找到 resource 属性,则占位符将替换为
undefined值。 - 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,255,72922,3288, 或3653。 - 7
- 可选。Amazon CloudWatch 指标的自定义命名空间。
- 8
- 可选。AWS Identity and Access Management (IAM)角色,将指标片段上传到其他帐户。
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>"
endpoint: <protocol><endpoint>
resource_arn: "<aws_resource_arn>"
role_arn: "<iam_role>"
indexed_attributes: [ "<indexed_attr_0>", "<indexed_attr_1>" ]
aws_log_groups: ["<group1>", "<group2>"]
request_timeout_seconds: 120
# ...
- 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
rotation:
max_megabytes: 10
max_days: 3
max_backups: 3
localtime: true
format: proto
compression: zstd
flush_interval: 5
# ...
- 1
- 要写入数据的文件系统路径。没有默认值。
- 2
- 文件轮转是此导出器的可选功能。默认情况下,遥测数据导出到单个文件。添加
轮转设置以启用文件轮转。 - 3
max_megabytes设置是文件被允许访问的最大大小,直到轮转为止。默认值为100。- 4
max_days设置用于保留文件的天数,从文件名中的时间戳计数。没有默认值。- 5
max_backups设置用于保留几个较旧的文件。默认值为100。- 6
localtime设置指定时间戳的本地时间格式,该格式会在文件轮转时附加到任何扩展名前面的文件名中。默认为协调的通用时间(UTC)。- 7
- 在将遥测数据写入文件之前,对遥测数据进行编码的格式。默认格式为
json。还支持proto格式。 - 8
- 文件压缩是可选的,默认情况下不设置。此设置定义导出到文件的数据的压缩算法。目前,只支持
zstd压缩算法。没有默认值。 - 9
- 刷新间隔。没有单位的值被设置为纳秒。当通过轮转设置启用文件轮转时,会忽略此设置。
4.4.12. Google Cloud Exporter 复制链接链接已复制到粘贴板!
Google Cloud Exporter 将遥测数据发送到 Google Cloud Operations Suite。使用 Google Cloud Exporter,您可以将指标导出到 Google Cloud Monitoring,登录到 Google Cloud Logging,并将 trace 导出到 Google Cloud Trace。
Google Cloud Exporter 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
OpenTelemetry Collector 自定义资源带有启用的 Google Cloud Exporter
# ...
env:
- name: GOOGLE_APPLICATION_CREDENTIALS
value: /var/secrets/google/key.json
volumeMounts:
- name: google-application-credentials
mountPath: /var/secrets/google
readOnly: true
volumes:
- name: google-application-credentials
secret:
secretName: google-application-credentials
config:
exporters:
googlecloud:
project:
# ...
- 1
GOOGLE_APPLICATION_CREDENTIALS环境变量,指向身份验证key.json文件。key.json文件作为 secret 卷挂载到 OpenTelemetry Collector。- 2
- 可选。项目标识符。如果没有指定,则项目会自动从凭证决定。
默认情况下,导出器将遥测数据发送到导出器配置的
project字段中指定的项目。您可以使用gcp.project.id资源属性在每个指标上设置覆盖。例如,如果指标具有标签项目,您可以使用 Group-by-Attributes Processor 将它提升到资源标签,然后使用 Resource Processor 将属性从项目重命名为gcp.project.id。