otelcol.receiver.influxdb
otelcol.receiver.influxdb 接收 InfluxDB 指标,将其转换为 OpenTelemetry (OTEL) 格式,并通过网络转发给其他 otelcol.* 组件。
您可以通过为每个 otelcol.receiver.influxdb 组件指定不同的标签来定义多个此类组件。
用法
otelcol.receiver.influxdb "influxdb_metrics" {
endpoint = "localhost:8086" // InfluxDB metrics ingestion endpoint
output {
metrics = [...]
}
}参数
otelcol.receiver.influxdb 支持以下参数
| 名称 | 类型 | 描述 | 默认值 | 必需 |
|---|---|---|---|---|
endpoint | string | 监听流量的 host:port 地址。 | "localhost:8086" | 否 |
max_request_body_size | string | 服务器允许的最大请求体大小。 | 20MiB | 否 |
include_metadata | boolean | 将传入连接元数据传播到下游消费者。 | 否 | |
compression_algorithms | list(string) | 服务器可以接受的压缩算法列表。 | ["", "gzip", "zstd", "zlib", "snappy", "deflate", "lz4"] | 否 |
auth | | 用于认证请求的 otelcol.auth 组件的处理程序。 | 否 |
默认情况下,otelcol.receiver.influxdb 在 localhost 上监听 HTTP 连接。要将 HTTP 服务器暴露给网络上的其他机器,请将 endpoint 配置为监听的 IP 地址,或配置为 0.0.0.0:8086 以监听所有网络接口。
块
otelcol.receiver.influxdb 的定义中支持以下块
| 层级 | 块 | 描述 | 必需 |
|---|---|---|---|
| tls | tls | 配置 HTTP 服务器的 TLS。 | 否 |
| cors | cors | 配置 HTTP 服务器的 CORS。 | 否 |
| debug_metrics | debug_metrics | 配置此组件生成的指标。 | 否 |
| output | output | 配置接收到的指标发送到何处。 | 是 |
tls 块
tls 块配置用于服务器的 TLS 设置。如果未提供 tls 块,则不会为服务器连接使用 TLS。
支持以下参数
| 名称 | 类型 | 描述 | 默认值 | 必需 |
|---|---|---|---|---|
ca_file | string | CA 文件的路径。 | 否 | |
ca_pem | string | 用于验证服务器的 CA PEM 编码文本。 | 否 | |
cert_file | string | TLS 证书的路径。 | 否 | |
cert_pem | string | 用于客户端身份验证的证书 PEM 编码文本。 | 否 | |
include_system_ca_certs_pool | boolean | 是否在证书颁发机构之外加载系统证书颁发机构池。 | false | 否 |
key_file | string | TLS 证书密钥的路径。 | 否 | |
key_pem | secret | 用于客户端身份验证的密钥 PEM 编码文本。 | 否 | |
max_version | string | 连接允许的最大 TLS 版本。 | "TLS 1.3" | 否 |
min_version | string | 连接允许的最小 TLS 版本。 | "TLS 1.2" | 否 |
cipher_suites | list(string) | TLS 传输层可以使用的 TLS 密码套件列表。 | [] | 否 |
reload_interval | duration | 证书重新加载的间隔时长。 | "0s" | 否 |
client_ca_file | string | 服务器用于验证客户端证书的 TLS 证书路径。 | 否 | |
curve_preferences | list(string) | 握手过程中使用的椭圆曲线集合。 | [] | 否 |
如果 reload_interval 设置为 "0s",则证书永远不会重新加载。
以下参数对是互斥的,不能同时设置
ca_pem和ca_filecert_pem和cert_filekey_pem和key_file
如果 cipher_suites 留空,将使用安全的默认列表。请参阅 Go 密码套件文档以获取支持的密码套件列表。
client_ca_file 在 TLSConfig 中将 ClientCA 和 ClientAuth 设置为 RequireAndVerifyClientCert。有关更多信息,请参阅 Go TLS 文档。
curve_preferences 参数决定了在握手期间按优先顺序使用的椭圆曲线集合。如果未提供,则使用默认列表。可用的椭圆曲线集合包括 X25519、P521、P256 和 P384。
cors 块
cors 块配置 HTTP 服务器的 CORS 设置。
支持以下参数
| 名称 | 类型 | 描述 | 默认值 | 必需 |
|---|---|---|---|---|
allowed_origins | list(string) | 允许的 Origin 头部值。 | 否 | |
allowed_headers | list(string) | CORS 请求接受的头部。 | ["X-Requested-With"] | 否 |
max_age | number | 配置 Access-Control-Max-Age。 | 否 |
allowed_headers 参数指定了 CORS 请求中哪些头部是可接受的。以下头部总是隐式允许的
AcceptAccept-LanguageContent-TypeContent-Language
如果 allowed_headers 包含 "*",则允许所有头部。
debug_metrics 块
debug_metrics 块配置此组件生成的用于监控其状态的指标。
支持以下参数
| 名称 | 类型 | 描述 | 默认值 | 必需 |
|---|---|---|---|---|
disable_high_cardinality_metrics | boolean | 是否禁用某些高基数指标。 | true | 否 |
disable_high_cardinality_metrics 是 Grafana Alloy 中等同于 OpenTelemetry Collector 中 telemetry.disableHighCardinalityMetrics 功能开关的参数。它移除了可能导致高基数指标的属性。例如,HTTP 和 gRPC 连接指标中包含 IP 地址和端口号的属性会被移除。
注意
如果配置了
disable_high_cardinality_metrics,它仅适用于otelcol.exporter.*和otelcol.receiver.*组件。
output 块
output 块配置一组组件来转发产生的遥测数据。
支持以下参数
| 名称 | 类型 | 描述 | 默认值 | 必需 |
|---|---|---|---|---|
logs | | 发送日志的消费者列表。 | [] | 否 |
metrics | | 发送指标的消费者列表。 | [] | 否 |
traces | | 发送跟踪的消费者列表。 | [] | 否 |
您必须指定 output 块,但其所有参数都是可选的。默认情况下,遥测数据会被丢弃。请相应地配置 metrics、logs 和 traces 参数,以将遥测数据发送到其他组件。
导出的字段
otelcol.receiver.influxdb 不导出任何字段。
组件健康状态
仅当配置无效时,otelcol.receiver.influxdb 才会被报告为不健康。
调试信息
otelcol.receiver.influxdb 不公开任何特定于组件的调试信息。
示例
此示例将接收到的遥测数据通过批处理器转发,最后发送到支持 OTLP 的端点
otelcol.receiver.influxdb "influxdb_metrics" {
output {
metrics = [otelcol.processor.batch.default.input]
}
}
otelcol.processor.batch "default" {
output {
metrics = [otelcol.exporter.otlp.default.input]
}
}
otelcol.exporter.otlp "default" {
client {
endpoint = sys.env("OTLP_ENDPOINT")
}
}此示例将接收到的遥测数据转发到 Prometheus Remote Write (Mimir)
otelcol.receiver.influxdb "influxdb_metrics" {
output {
metrics = [otelcol.exporter.prometheus.influx_output.input] // Forward metrics to Prometheus exporter
}
}
otelcol.exporter.prometheus "influx_output" {
forward_to = [prometheus.remote_write.mimir.receiver] // Forward metrics to Prometheus remote write (Mimir)
}
prometheus.remote_write "mimir" {
endpoint {
url = "https://prometheus-xxx.grafana.net/api/prom/push"
basic_auth {
username = "xxxxx"
password = "xxxx=="
}
}
}启用认证
您可以创建一个要求对请求进行身份验证的 otelcol.receiver.influxdb 组件。这对于限制谁可以将数据推送到服务器非常有用。
注意
并非所有 OpenTelemetry Collector 身份验证插件都支持接收器身份验证。请参阅每个
otelcol.auth.*组件的文档以确定其兼容性。
otelcol.receiver.influxdb "influxdb_metrics" {
output {
metrics = [...]
}
auth = otelcol.auth.basic.creds.handler
}
otelcol.auth.basic "creds" {
username = sys.env("USERNAME")
password = sys.env("PASSWORD")
}兼容组件
otelcol.receiver.influxdb 可以接受来自以下组件的参数
- 导出 OpenTelemetry
otelcol.Consumer的组件
注意
连接某些组件可能不合理,或者组件可能需要进一步配置才能使连接正常工作。有关更多详细信息,请参阅链接的文档。



