菜单
文档breadcrumb arrow Grafana Alloybreadcrumb arrow 参考breadcrumb arrow 组件breadcrumb arrow otelcolbreadcrumb arrow otelcol.receiver.influxdb
开源

otelcol.receiver.influxdb

otelcol.receiver.influxdb 接收 InfluxDB 指标,将其转换为 OpenTelemetry (OTEL) 格式,并通过网络将其转发到其他 otelcol.* 组件。

您可以通过为多个 otelcol.receiver.influxdb 组件赋予不同的标签来指定它们。

用法

alloy
otelcol.receiver.influxdb "influxdb_metrics" {
  endpoint = "localhost:8086"  // InfluxDB metrics ingestion endpoint

  output {
    metrics = [...]
  }
}

参数

otelcol.receiver.influxdb 支持以下参数

名称类型描述默认值必需
endpointstringhost:port,用于监听流量的地址和端口。"localhost:8086"
max_request_body_sizestring服务器允许的最大请求体大小。20MiB
include_metadataboolean将传入连接元数据传播到下游消费者。
compression_algorithmslist(string)服务器可以接受的压缩算法列表。["", "gzip", "zstd", "zlib", "snappy", "deflate", "lz4"]
authcapsule(otelcol.Handler)来自 otelcol.auth 组件的处理程序,用于请求身份验证。

默认情况下,otelcol.receiver.influxdb 监听 localhost 上的 HTTP 连接。要将 HTTP 服务器暴露给网络上的其他机器,请使用要监听的 IP 地址配置 endpoint,或使用 0.0.0.0:8086 监听所有网络接口。

otelcol.receiver.influxdb 的定义中支持以下块

层级结构描述必需
tlstls配置 HTTP 服务器的 TLS。
corscors配置 HTTP 服务器的 CORS。
debug_metricsdebug_metrics配置此组件生成的指标。
outputoutput配置将接收到的指标发送到哪里。

tls 块

tls 块配置用于服务器的 TLS 设置。如果未提供 tls 块,则不会对服务器的连接使用 TLS。

支持以下参数

名称类型描述默认值必需
ca_filestringCA 文件路径。
ca_pemstring用于验证服务器的 CA PEM 编码文本。
cert_filestringTLS 证书路径。
cert_pemstring用于客户端身份验证的证书 PEM 编码文本。
include_system_ca_certs_poolboolean是否将系统证书颁发机构池与证书颁发机构一起加载。false
key_filestringTLS 证书密钥路径。
key_pemsecret用于客户端身份验证的密钥 PEM 编码文本。
max_versionstring连接可接受的最大 TLS 版本。"TLS 1.3"
min_versionstring连接可接受的最小 TLS 版本。"TLS 1.2"
cipher_suiteslist(string)TLS 传输可以使用的 TLS 密码套件列表。[]
reload_intervalduration重新加载证书的持续时间。"0s"
client_ca_filestring服务器用于验证客户端证书的 TLS 证书路径。

如果 reload_interval 设置为 "0s",则证书永远不会重新加载。

以下参数对互斥,不能同时设置

  • ca_pemca_file
  • cert_pemcert_file
  • key_pemkey_file

如果 cipher_suites 留空,则使用安全的默认列表。有关支持的密码套件列表,请参阅 Go Cipher Suites 文档

client_ca_fileTLSConfig 中的 ClientCAClientAuth 设置为 RequireAndVerifyClientCert。有关更多信息,请参阅 Go TLS 文档

cors 块

cors 块配置 HTTP 服务器的 CORS 设置。

支持以下参数

名称类型描述默认值必需
allowed_originslist(string)Origin 标头的允许值。
allowed_headerslist(string)CORS 请求中接受的标头。["X-Requested-With"]
max_agenumber配置 Access-Control-Max-Age

allowed_headers 参数指定从 CORS 请求中可以接受哪些标头。以下标头始终是隐式允许的

  • Accept
  • Accept-Language
  • Content-Type
  • Content-Language

如果 allowed_headers 包含 "*",则允许所有标头。

debug_metrics 块

debug_metrics 块配置此组件生成的用于监控其状态的指标。

支持以下参数

名称类型描述默认值必需
disable_high_cardinality_metricsboolean是否禁用某些高基数指标。true
levelstring控制包装的收集器发出的指标的详细程度。"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 块配置一组组件,用于将生成的遥测数据转发到这些组件。

支持以下参数

名称类型描述默认值必需
logslist(otelcol.Consumer)要将日志发送到的消费者列表。[]
metricslist(otelcol.Consumer)要将指标发送到的消费者列表。[]
traceslist(otelcol.Consumer)要将链路追踪发送到的消费者列表。[]

您必须指定 output 块,但其所有参数都是可选的。默认情况下,遥测数据将被丢弃。请相应地配置 metricslogstraces 参数,以便将遥测数据发送到其他组件。

导出的字段

otelcol.receiver.influxdb 不导出任何字段。

组件健康状况

仅当 otelcol.receiver.influxdb 配置无效时,才会被报告为不健康。

调试信息

otelcol.receiver.influxdb 不公开任何组件特定的调试信息。

示例

此示例将接收到的遥测数据通过批处理器转发,然后最终将其发送到支持 OTLP 的端点

alloy
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)

alloy
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.* 组件的兼容性,请参阅文档

alloy
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 可以接受来自以下组件的参数

注意

连接某些组件可能不合理,或者组件可能需要进一步配置才能使连接正常工作。有关更多详细信息,请参阅链接的文档。