实验性
otelcol.receiver.datadog
实验性:这是一个 实验性 组件。实验性组件可能会频繁进行重大更改,并且可能会被移除,而不会有等效的替代品。必须将
stability.level
标志设置为experimental
才能使用此组件。
otelcol.receiver.datadog
接收通过网络传输的 Datadog 指标和追踪,并将其转发到其他 otelcol.*
组件。
您可以指定多个 otelcol.receiver.datadog
组件,只需为它们提供不同的标签即可。
用法
otelcol.receiver.datadog "LABEL" {
output {
metrics = [...]
traces = [...]
}
}
参数
otelcol.receiver.datadog
支持以下参数
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
endpoint | 字符串 | 监听流量的 host:port 。 | "localhost:8126" | 否 |
max_request_body_size | 字符串 | 服务器将允许的最大请求体大小。 | 20MiB | 否 |
include_metadata | 布尔值 | 将传入连接元数据传播到下游消费者。 | false | 否 |
read_timeout | 持续时间 | HTTP 服务器请求的读取超时时间。 | "60s" | 否 |
compression_algorithms | list(string) | 服务器可以接受的压缩算法列表。 | ["", "gzip", "zstd", "zlib", "snappy", "deflate", "lz4"] | 否 |
auth | capsule(otelcol.Handler) | 来自 otelcol.auth 组件的处理程序,用于对请求进行身份验证。 | 否 |
默认情况下,otelcol.receiver.datadog
监听 localhost
上的 HTTP 连接。要将 HTTP 服务器暴露给网络上的其他机器,请使用要监听的 IP 地址配置 endpoint
,或使用 0.0.0.0:8126
监听所有网络接口。
块
在 otelcol.receiver.datadog
的定义中支持以下块
层级结构 | 块 | 描述 | 必需 |
---|---|---|---|
tls | tls | 配置 HTTP 服务器的 TLS。 | 否 |
cors | cors | 配置 HTTP 服务器的 CORS。 | 否 |
debug_metrics | debug_metrics | 配置此组件生成的用于监控其状态的指标。 | 否 |
output | output | 配置将接收到的追踪发送到何处。 | 是 |
tls 块
tls
块配置用于服务器的 TLS 设置。如果未提供 tls
块,则不会对服务器的连接使用 TLS。
支持以下参数
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
ca_file | 字符串 | CA 文件的路径。 | 否 | |
ca_pem | 字符串 | 用于验证服务器的 CA PEM 编码文本。 | 否 | |
cert_file | 字符串 | TLS 证书的路径。 | 否 | |
cert_pem | 字符串 | 用于客户端身份验证的证书 PEM 编码文本。 | 否 | |
include_system_ca_certs_pool | 布尔值 | 是否加载系统证书颁发机构池以及证书颁发机构。 | false | 否 |
key_file | 字符串 | TLS 证书密钥的路径。 | 否 | |
key_pem | secret | 用于客户端身份验证的密钥 PEM 编码文本。 | 否 | |
max_version | 字符串 | 连接可接受的最大 TLS 版本。 | "TLS 1.3" | 否 |
min_version | 字符串 | 连接可接受的最小 TLS 版本。 | "TLS 1.2" | 否 |
cipher_suites | list(string) | TLS 传输可以使用的 TLS 密码套件列表。 | [] | 否 |
reload_interval | 持续时间 | 重新加载证书的时间间隔。 | "0s" | 否 |
client_ca_file | 字符串 | 服务器用于验证客户端证书的 TLS 证书的路径。 | 否 |
如果 reload_interval
设置为 "0s"
,则永远不会重新加载证书。
以下参数对是互斥的,不能同时设置
ca_pem
和ca_file
cert_pem
和cert_file
key_pem
和key_file
如果 cipher_suites
留空,则使用安全的默认列表。有关支持的密码套件列表,请参阅 Go 密码套件文档。
client_ca_file
将 TLSConfig
中的 ClientCA
和 ClientAuth
设置为 RequireAndVerifyClientCert
。有关更多信息,请参阅 Go TLS 文档。
cors 块
cors
块配置 HTTP 服务器的 CORS 设置。
支持以下参数
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
allowed_origins | list(string) | Origin 标头的允许值。 | [] | 否 |
allowed_headers | list(string) | 从 CORS 请求接受的标头。 | ["X-Requested-With"] | 否 |
max_age | 数字 | 配置 Access-Control-Max-Age 响应标头。 | 0 | 否 |
allowed_headers
参数指定从 CORS 请求中可以接受哪些标头。以下标头始终是隐式允许的
Accept
Accept-Language
Content-Type
Content-Language
如果 allowed_headers
包含 "*"
,则允许所有标头。
debug_metrics 块
debug_metrics
块配置此组件生成的用于监控其状态的指标。
支持以下参数
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
disable_high_cardinality_metrics | 布尔值 | 是否禁用某些高基数指标。 | true | 否 |
level | 字符串 | 控制包装的收集器发出的指标的详细程度级别。 | "detailed" | 否 |
disable_high_cardinality_metrics
是 Grafana Alloy 中 telemetry.disableHighCardinalityMetrics
功能门控的等效项。它会删除可能导致高基数指标的属性。例如,HTTP 和 gRPC 连接的指标中包含 IP 地址和端口号的属性将被删除。
注意
如果配置了
disable_high_cardinality_metrics
,则仅适用于otelcol.exporter.*
和otelcol.receiver.*
组件。
level
是 Alloy 中 telemetry.metrics.level
功能门控的等效项。可能的值为 "none"
、"basic"
、"normal"
和 "detailed"
。
output 块
output
块配置一组组件,用于将生成的遥测数据转发到这些组件。
支持以下参数
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
logs | list(otelcol.Consumer) | 要将日志发送到的消费者列表。 | [] | 否 |
metrics | list(otelcol.Consumer) | 要将指标发送到的消费者列表。 | [] | 否 |
traces | list(otelcol.Consumer) | 要将追踪发送到的消费者列表。 | [] | 否 |
您必须指定 output
块,但其所有参数都是可选的。默认情况下,遥测数据将被丢弃。相应地配置 metrics
、logs
和 traces
参数,以将遥测数据发送到其他组件。
导出的字段
otelcol.receiver.datadog
不导出任何字段。
组件健康状况
仅当 otelcol.receiver.datadog
的配置无效时,才会被报告为不健康。
调试信息
otelcol.receiver.datadog
不会公开任何组件特定的调试信息。
示例
此示例在最终将其发送到支持 OTLP 的端点之前,通过批处理器转发接收到的遥测数据
otelcol.receiver.datadog "default" {
output {
metrics = [otelcol.processor.batch.default.input]
traces = [otelcol.processor.batch.default.input]
}
}
otelcol.processor.batch "default" {
output {
metrics = [otelcol.exporter.otlp.default.input]
traces = [otelcol.exporter.otlp.default.input]
}
}
otelcol.exporter.otlp "default" {
client {
endpoint = sys.env("OTLP_ENDPOINT")
}
}
启用身份验证
您可以创建一个 otelcol.receiver.datadog
组件,该组件要求对请求进行身份验证。这对于限制谁可以将数据推送到服务器非常有用。
注意
并非所有 OpenTelemetry Collector 身份验证插件都支持接收器身份验证。有关每个
otelcol.auth.*
组件的兼容性,请参阅文档。
otelcol.receiver.datadog "default" {
output {
metrics = [otelcol.processor.batch.default.input]
traces = [otelcol.processor.batch.default.input]
}
auth = otelcol.auth.basic.creds.handler
}
otelcol.auth.basic "creds" {
username = sys.env("USERNAME")
password = sys.env("PASSWORD")
}
兼容组件
otelcol.receiver.datadog
可以接受来自以下组件的参数
注意
连接某些组件可能不合理,或者组件可能需要进一步配置才能使连接正常工作。有关更多详细信息,请参阅链接的文档。