菜单
文档breadcrumb arrow Grafana Alloybreadcrumb arrow 参考breadcrumb arrow 组件breadcrumb arrow otelcolbreadcrumb arrow otelcol.exporter.otlphttp
开源 此页面内容适用于开源版本。

otelcol.exporter.otlphttp

otelcol.exporter.otlphttp 接受来自其他 otelcol 组件的遥测数据,并使用 OTLP HTTP 协议通过网络写入这些数据。

注意

otelcol.exporter.otlphttp 是上游 OpenTelemetry Collector otlphttp exporter 的一个包装。如有必要,错误报告或功能请求将被重定向到上游仓库。

你可以通过为每个 otelcol.exporter.otlphttp 组件赋予不同的标签来指定多个此类组件。

用法

alloy
otelcol.exporter.otlphttp "LABEL" {
  client {
    endpoint = "HOST:PORT"
  }
}

参数

otelcol.exporter.otlphttp 支持以下参数

名称类型描述默认值必需
metrics_endpointstring发送指标的端点。client.endpoint + "/v1/metrics"
logs_endpointstring发送日志的端点。client.endpoint + "/v1/logs"
traces_endpointstring发送追踪的端点。client.endpoint + "/v1/traces"
encodingstring用于消息的编码。应为 "proto""json""proto"

默认值取决于必需的 client 块中设置的 endpoint 字段。如果设置了这些参数,它们将覆盖相应信号的 client.endpoint 字段。

otelcol.exporter.otlphttp 定义中支持以下块

层级描述必需
clientclient配置 HTTP 服务器以发送遥测数据。
client > tlstls配置 HTTP 客户端的 TLS。
client > cookiescookies从服务器响应中存储 cookie 并在后续请求中重复使用。
client > compression_paramscompression_params配置高级压缩选项。
sending_queuesending_queue配置发送数据前的批处理。
retry_on_failureretry_on_failure配置失败请求的重试机制。
debug_metricsdebug_metrics配置此组件生成的用于监控其状态的指标。

> 符号表示更深的嵌套层级。例如,client > tls 指的是在 client 块内部定义的 tls 块。

client 块

client 块配置组件使用的 HTTP 客户端。

支持以下参数

名称类型描述默认值必需
endpointstring发送遥测数据的目标 URL。
proxy_urlstring用于发送请求的 HTTP 代理。
read_buffer_sizestringHTTP 客户端用于读取服务器响应的读取缓冲区大小。0
write_buffer_sizestringHTTP 客户端用于写入请求的写入缓冲区大小。"512KiB"
timeoutduration在将请求标记为失败之前等待的时间。"30s"
headersmap(string)与请求一起发送的额外标头。{}
compressionstring用于请求的压缩机制。"gzip"
max_idle_connsint限制客户端可以保持打开的空闲 HTTP 连接数。100
max_idle_conns_per_hostint限制每个主机可以保持打开的空闲 HTTP 连接数。0
max_conns_per_hostint限制每个主机的总连接数(拨号中、活动和空闲)。0
idle_conn_timeoutduration空闲连接在关闭自身之前等待的时间。"90s"
disable_keep_alivesbool禁用 HTTP keep-alive。false
http2_read_idle_timeoutduration如果连接上没有收到帧,在此超时后将使用 ping 帧执行健康检查。0s
http2_ping_timeoutduration如果未收到 ping 响应,在此超时后连接将关闭。15s
authcapsule(otelcol.Handler)otelcol.auth 组件获取的 Handler,用于验证请求。

设置 headers 时,请注意

  • 某些标头(如 Content-LengthConnection)在需要时会自动写入,headers 中的值可能会被忽略。
  • Host 标头会自动从 endpoint 值派生。但是,可以通过在 headers 中显式设置 Host 标头来覆盖此自动分配。

disable_keep_alives 设置为 true 将导致每个请求建立新的 HTTP 或 HTTPS 连接时产生显著的开销。在启用此选项之前,请考虑更改空闲连接设置是否能达到你的目标。

如果 http2_ping_timeout 未设置或设置为 0s,则默认为 15s

如果 http2_read_idle_timeout 未设置或设置为 0s,则不会执行健康检查。

默认情况下,请求使用 Gzip 压缩。compression 参数控制使用哪种压缩机制。支持的字符串有

  • "gzip"
  • "zlib"
  • "deflate"
  • "snappy"
  • "zstd"

如果将 compression 设置为 "none" 或空字符串 "",则请求将不会被压缩。

cookies 块

cookies 块允许 HTTP 客户端存储来自服务器响应的 cookie 并在后续请求中重复使用它们。

这在负载均衡器依赖 cookie 实现粘性会话并强制最大会话时长等情况下可能很有用。

支持以下参数

名称类型描述默认值必需
enabledbool发送遥测数据的目标 URL。false

compression_params 块

compression_params 块允许配置高级压缩选项。

支持以下参数

名称类型描述默认值必需
levelint配置压缩级别。

关于 client.compressionclient.compression_params.level 的有效组合,请参考上游文档

tls 块

tls 块配置连接到 HTTP 服务器所使用的 TLS 设置。

支持以下参数

名称类型描述默认值必需
ca_filestringCA 文件路径。
ca_pemstring用于验证服务器的 CA PEM 编码文本。
cert_filestringTLS 证书路径。
cert_pemstring用于客户端身份验证的证书 PEM 编码文本。
insecure_skip_verifyboolean忽略不安全的服务器 TLS 证书。
include_system_ca_certs_poolboolean是否在证书颁发机构旁边加载系统证书颁发机构池。false
insecureboolean连接到配置的服务器时禁用 TLS。
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"
server_namestring设置时验证服务器证书的主机名。
curve_preferenceslist(string)握手中使用的椭圆曲线集合。[]

如果服务器不支持 TLS,你必须将 insecure 参数设置为 true

要禁用连接到服务器的 tls,请将 insecure 参数设置为 true

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

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

  • ca_pemca_file
  • cert_pemcert_file
  • key_pemkey_file

如果 cipher_suites 留空,将使用一个安全的默认列表。有关支持的密码套件列表,请参考Go TLS 文档

curve_preferences 参数确定在握手过程中优先使用的椭圆曲线集合,按优先级排序。如果未提供,将使用默认列表。可用的椭圆曲线集合包括 X25519P521P256P384

sending_queue 块

sending_queue 块配置发送数据到 HTTP 服务器之前的批处理内存缓冲区。

支持以下参数

名称类型描述默认值必需
enabledboolean在发送数据到客户端之前启用内存缓冲区。true
num_consumersnumber并行发送写入队列的批处理的读取器数量。10
queue_sizenumber队列中同时允许的最大未写入批处理数量。1000
blockingboolean如果为 true,则阻塞直到队列有空间容纳新请求。false

enabledtrue 时,数据首先被写入内存缓冲区,然后发送到配置的服务器。发送到组件 input 导出字段的批处理将被添加到缓冲区,只要未发送批处理的数量不超过配置的 queue_size

queue_size 决定了对端点中断的容忍时间。假设每秒 100 个请求,默认 queue_size 1000 大约提供 10 秒的中断容忍。要计算正确的 queue_size 值,将每秒平均出站请求数乘以可容忍的中断时间(秒)。值过高可能导致内存不足 (OOM) 终止。

num_consumers 参数控制有多少读取器并行地从缓冲区读取并发送数据。较大的 num_consumers 值允许更快地发送数据,但代价是增加网络流量。

retry_on_failure 块

retry_on_failure 块配置如何重试发送到 HTTP 服务器的失败请求。

支持以下参数

名称类型描述默认值必需
enabledboolean启用重试失败请求。true
initial_intervalduration重试失败请求前初始等待时间。"5s"
max_elapsed_timeduration在丢弃失败批处理之前等待的最长时间。"5m"
max_intervalduration重试之间等待的最长时间。"30s"
multipliernumber重试前增长等待时间的因子。1.5
randomization_factornumber重试前随机化等待时间的因子。0.5

enabledtrue 时,失败的批处理将在给定的间隔后重试。initial_interval 参数指定了第一次重试尝试之前需要等待多长时间。如果请求持续失败,重试前等待的时间会按照 multiplier 参数指定的因子增加,该因子必须大于 1.0max_interval 参数指定了重试之间等待时间上限。

randomization_factor 参数对于在重试的 Alloy 实例之间添加抖动非常有用。如果 randomization_factor 大于 0,重试前的等待时间会乘以一个随机因子,范围为 [ I - randomization_factor * I, I + randomization_factor * I],其中 I 是当前间隔。

如果批处理未成功发送,它将在 max_elapsed_time 指定的时间过去后被丢弃。如果 max_elapsed_time 设置为 "0s",则失败请求将永远重试直到成功。

debug_metrics 块

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

支持以下参数

名称类型描述默认值必需
disable_high_cardinality_metricsboolean是否禁用某些高基数指标。true

disable_high_cardinality_metrics 是 Grafana Alloy 中等同于 OpenTelemetry Collector 中 telemetry.disableHighCardinalityMetrics 功能开关的配置。它移除了可能导致高基数指标的属性。例如,指标中关于 HTTP 和 gRPC 连接的属性中包含 IP 地址和端口号的属性将被移除。

注意

如果配置了 disable_high_cardinality_metrics,它仅适用于 otelcol.exporter.*otelcol.receiver.* 组件。

导出字段

导出以下字段,可供其他组件引用

名称类型描述
inputotelcol.Consumer其他组件可用于发送遥测数据的值。

input 接受任何遥测信号(指标、日志或追踪)的 otelcol.Consumer 数据。

组件健康状态

otelcol.exporter.otlphttp 仅在配置无效时被报告为不健康。

调试信息

otelcol.exporter.otlphttp 不暴露任何组件特定的调试信息。

示例

此示例创建了一个 exporter,用于将数据发送到本地运行的 Grafana Tempo,不使用 TLS

alloy
otelcol.exporter.otlphttp "tempo" {
    client {
        endpoint = "http://tempo:4317"
        tls {
            insecure             = true
            insecure_skip_verify = true
        }
    }
}

兼容组件

otelcol.exporter.otlphttp 具有可供以下组件使用的导出

注意

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