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

otelcol.exporter.otlp

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

注意otelcol.exporter.otlp 是上游 OpenTelemetry Collector otlp 导出器的包装器。如果需要,错误报告或功能请求将被重定向到上游存储库。

可以通过不同的标签指定多个 otelcol.exporter.otlp 组件。

用法

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

参数

otelcol.exporter.otlp 支持以下参数

名称类型描述默认值必需
timeoutduration在标记请求为失败之前等待的时间。"5s"no

以下块支持在 otelcol.exporter.otlp 定义内使用

层次结构描述必需
clientclient配置要向其发送遥测数据的 gRPC 服务器。yes
client > tlstls配置 gRPC 客户端使用的 TLS。no
client > keepalivekeepalive配置 gRPC 客户端的 keepalive 设置。no
sending_queuesending_queue配置发送前的数据批量处理。no
retry_on_failureretry_on_failure配置失败的请求的重试机制。no
debug_metricsdebug_metrics配置此组件生成的用于监控系统状态的指标。no

The > symbol indicates deeper levels of nesting. For example, client > tls refers to a tls block defined inside a client block.

client block

配置组件使用的 gRPC 客户端。

以下参数是受支持的

名称类型描述默认值必需
endpointstringhost:port 发送遥测数据到。yes
compressionstring用于请求的压缩机制。"gzip"no
read_buffer_sizestringgRPC 客户端用于读取服务器响应的读取缓冲区大小。no
write_buffer_sizestringgRPC 客户端用于写入请求的写入缓冲区大小。"512KiB"no
wait_for_readyboolean在发送数据之前等待 gRPC 连接处于 READY 状态。falseno
headersmap(string)将附加到请求中的额外标头。{}no
balancer_namestring用于请求的哪个 gRPC 客户端端负载均衡器。round_robinno
权限string覆盖gRPC客户端请求中的默认:authority头。no
认证胶囊(otelcol.Handler)用于认证请求的来自otelcol.auth组件的处理程序。no

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

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

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

balancer_name的支持值列在gRPC文档中,详见负载均衡

  • pick_first:尝试连接到第一个地址,如果连接成功,则使用该地址进行所有RPC,如果失败,则尝试下一个地址(并继续这样做,直到成功建立连接)。因此,所有RPC都将发送到同一后端。
  • round_robin:连接到所有看到的地址,并按顺序逐一将RPC发送给每一个后端。例如,第一个RPC发送到后端-1,第二个RPC发送到后端-2,第三个RPC发送到后端-1。

gRPC中的:authority头指定了请求发送到的主机。它与HTTP请求中的Host类似。默认情况下,:authority的值从用于gRPC调用的端点URL中派生。覆盖:authority在通过像Envoy这样的代理路由流量时可能很有用,该代理根据:authority头的值进行路由决策

可以通过以下环境变量配置HTTP代理:

  • HTTPS_PROXY
  • NO_PROXY

HTTPS_PROXY环境变量指定用于代理请求的URL。通过HTTP CONNECT方法建立到代理的连接。

NO_PROXY环境变量是可选的,由逗号分隔的主机名列表,表示HTTPS代理不应该使用。每个主机名可以是IP地址(1.2.3.4)、CIDR表示法中的IP地址(1.2.3.4/8)、域名(example.com)或*。域名匹配该域名及其所有子域名。以“.”开头(例如,.example.com)的域名只匹配子域名。《NO_PROXY》只有当设置了《HTTPS_PROXY》时才读取。

由于otelcol.exporter.otlp使用gRPC,因此配置的代理服务器必须能够处理和代理HTTP/2流量。

tls块

tls块配置了用于连接到gRPC服务器的TLS设置。

以下参数是受支持的

名称类型描述默认值必需
ca_filestringCA文件路径。no
ca_pemstring用于验证服务器使用的CA PEM编码文本。no
cert_filestringTLS证书路径。no
cert_pemstring用于客户端认证的证书PEM编码文本。no
insecure_skip_verifyboolean忽略不安全的服务器TLS证书。no
include_system_ca_certs_poolboolean是否加载与证书权威机构一起的系统证书当局池。falseno
insecureboolean在连接到配置的服务器时禁用TLS。no
key_filestringTLS密钥路径。no
key_pemsecret用于客户端认证的密钥PEM编码文本。no
max_versionstring连接可以接受的TLS版本的最大值。"TLS 1.3"no
min_versionstring连接可以接受的TLS版本的最小值。"TLS 1.2"no
cipher_suiteslist(string)TLS传输可以使用的一组TLS加密套件。[]no
reload_intervalduration证书重新加载的持续时间。"0s"no
server_namestring设置时验证服务器证书的主机名。no

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

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

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

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

  • ca_pemca_file
  • cert_pemcert_file
  • key_pemkey_file

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

注意

otelcol.exporter.otlp使用gRPC,不允许在不安全通道上发送敏感凭据(如auth)。可以通过非gRPC导出器(如otelcol.exporter.otlphttp)在不安全非TLS连接上发送敏感凭据。

keepalive块

keepalive块配置gRPC客户端连接的keepalive设置。

以下参数是受支持的

名称类型描述默认值必需
ping_waitduration没有活动后多久ping服务器。no
ping_response_timeoutduration如果服务器未对ping做出响应,则在关闭空闲连接之前等待的时间。no
ping_without_streamboolean即使在没有活动流请求的情况下,也发送ping。no

sending_queue块

sending_queue块配置在向gRPC服务器发送数据之前的数据批次的内存缓冲区。

以下参数是受支持的

名称类型描述默认值必需
enabledboolean启用在向客户端发送数据之前的数据内存缓冲区。trueno
num_consumers数量并行发送写入队列的批次的读取器数量。10no
queue_size数量在同一时间允许队列中未写入的批次数量的最大值。1000no

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

queue_size决定了容忍一段时间的服务器中断。假设每秒100个请求,默认的队列大小1000提供大约10秒的中断容忍时间。要计算正确的queue_size值,请将每秒平均请求数量乘以允许中断的时间(以秒为单位)。一个非常高的值可能导致内存不足(OOM)杀进程。

num_consumers参数控制有多少读取器从缓冲区读取并发送数据。较大的num_consumers值可以更快地发送数据,但会增加网络流量。

retry_on_failure块

retry_on_failure块配置对gRPC服务器失败请求的重试方式。

以下参数是受支持的

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

enabledtrue时,失败批次在给定间隔后重试。如果请求继续失败,则在重试之前等待的时间会增加由multiplier参数指定的因子,该因子必须大于1.0。由max_interval参数指定重试之间等待时间的上限。

|

|

|

|

以下参数是受支持的

名称类型描述默认值必需
|boolean|trueno
|string||no

|

注意

|

|

|

|

名称类型描述
|||

|

|

|

|

|

|

  • |
  • |
  • |
  • |
  • |
  • |
  • |
  • |
  • |

|

|

|

|

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

|

|

alloy
otelcol.exporter.otlp "grafana_cloud_traces" {
    client {
        endpoint = "tempo-xxx.grafana.net/tempo:443"
        auth     = otelcol.auth.basic.grafana_cloud_traces.handler
    }
}
otelcol.auth.basic "grafana_cloud_traces" {
    username = env("TEMPO_USERNAME")
    password = env("GRAFANA_CLOUD_API_KEY")
}

兼容组件

|

  • |

注意

|