菜单
文档目录箭头 Grafana Alloy目录箭头 参考目录箭头 组件目录箭头 otelcol目录箭头 otelcol.receiver.otlp
开源

otelcol.receiver.otlp

otelcol.receiver.otlp通过网络接收OTLP格式的数据,并将其转发到其他otelcol.*组件。

注意otelcol.receiver.otlp是上游OpenTelemetry Collector otlp接收器的封装。如果必需,错误报告或功能请求将被转至上游存储库。

可以通过提供不同的标签来指定多个otelcol.receiver.otlp组件。

用法

alloy
otelcol.receiver.otlp "LABEL" {
  grpc { ... }
  http { ... }

  output {
    metrics = [...]
    logs    = [...]
    traces  = [...]
  }
}

参数

otelcol.receiver.otlp不支持任何参数,完全通过内部块进行配置。

以下块在定义otelcol.receiver.otlp时受支持

层次结构描述必需
grpcgrpc配置用于接收遥测数据的gRPC服务器。
grpc > tlstls为gRPC服务器配置TLS。
grpc > keepalivekeepalive配置配置服务器的作用域设置。
grpc > keepalive > server_parametersserver_parameters用于配置作用域设置的服务器参数。
grpc > keepalive > enforcement_policyenforcement_policy适用作用域设置的作用域策略。
httphttp配置用于接收遥测数据的HTTP服务器。
http > tlstls为HTTP服务器配置TLS。
http > corscors为HTTP服务器配置CORS。
调试指标调试指标配置组件生成以监控其状态的指标。
输出输出配置发送接收到的遥测数据的位置。

“>”符号表示更深层次的嵌套。例如,“ grpc > tls”指的是在“ grpc”块中定义的“ tls”块。

grpc块

如果提供了“grpc”块,“grpc”块则配置组件使用的gRPC服务器。如果未提供“grpc”块,则不会启动gRPC服务器。

以下参数受支持

名称类型描述默认必需
endpointstringhost:port用于监听流量。"0.0.0.0:4317"
transportstring用于gRPC服务器的传输。"tcp"
max_recv_msg_sizestring服务器将接受的消息的最大大小。"4MiB"
max_concurrent_streamsnumber限制并发流式RPC调用的数量。
read_buffer_sizestringgRPC 服务器用于从客户端读取时使用的读取缓冲区的大小。"512KiB"
write_buffer_sizestringgRPC 服务器用于写入客户端时的写入缓冲区的大小。
include_metadata布尔值将传入的连接元数据传递给下游消费者。

tls块

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

以下参数受支持

名称类型描述默认必需
ca_filestringCA 文件的路径。
ca_pemstring用于验证服务器的 CA PEM 编码文本。
cert_filestringTLS 证书的路径。
cert_pemstring用于客户端验证的证书 PEM 编码文本。
include_system_ca_certs_pool布尔值是否在证书颁发机构旁边加载系统证书颁发机构池。false
key_filestringTLS 证书私钥的路径。
key_pem秘密用于客户端验证的密钥 PEM 编码文本。
max_versionstring接受的最大 TLS 版本。"TLS 1.3"
min_versionstring接受的最小 TLS 版本。"TLS 1.2"
cipher_suites列表(字符串)TLS 传输可以使用的一系列 TLS 密码套件。[]
reload_interval持续时间证书重新加载的时间间隔。"0s"
client_ca_filestring服务器用于验证客户端证书的 TLS 证书路径。

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

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

  • ca_pemca_file
  • cert_pemcert_file
  • key_pemkey_file

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

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

keepalive块

keepalive 块配置到 gRPC 服务器的连接的保活设置。

keepalive 不支持任何参数,并且完全通过内嵌块进行配置。

server_parameters块

server_parameters 块控制 gRPC 服务器的保活和最大年龄设置。

以下参数受支持

名称类型描述默认必需
max_connection_idle持续时间空闲连接的最大年龄。"infinity"
max_connection_age持续时间非空闲连接的最大年龄。"infinity"
max_connection_age_grace持续时间在强制关闭连接之前等待的时间。"infinity"
时间持续时间检查客户端存活性的频率。"2h"
超时持续时间在关闭未响应存活性检查的空闲客户端之前等待的时间。"20s"

enforcement_policy块

enforcement_policy 块配置 gRPC 服务器的保活执行策略。服务器将关闭违反配置策略的客户端连接。

以下参数受支持

名称类型描述默认必需
min_time持续时间客户端应在发送保活 ping 前等待的最短时间。"5m"
permit_without_stream布尔值允许客户端在没有活动流的情况下发送保活 ping。false

http块

http 块配置组件使用的 HTTP 服务器。如果有提供 http 块,则不会启动 HTTP 服务器。

以下参数受支持

名称类型描述默认必需
endpointstringhost:port用于监听流量。"0.0.0.0:4318"
max_request_body_sizestring服务器允许的最大请求体大小。20MiB
include_metadata布尔值将传入的连接元数据传递给下游消费者。
traces_url_pathstring接收跟踪的 URL 路径。"/v1/traces"
metrics_url_pathstring接收指标数据的 URL 路径。"/v1/metrics"
logs_url_pathstring接收日志的 URL 路径。"/v1/logs"
压缩算法列表(字符串)服务器可以接受的压缩算法列表。["", "gzip", "zstd", "zlib", "snappy", "deflate"]

要使用HTTP/JSON向otelcol.receiver.otlp发送遥测信号,请POST到

  • [endpoint][traces_url_path]以发送跟踪信息。
  • [endpoint][metrics_url_path]以发送度量信息。
  • [endpoint][logs_url_path]以发送日志信息。

CORS阻止

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

以下参数受支持

名称类型描述默认必需
allowed_origins列表(字符串)Origin头的允许值。
allowed_headers列表(字符串)接受来自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_metrics布尔值是否禁用某些高基数指标。true
levelstring控制封装收集器发出的指标的详细程度。"detailed"

disable_high_cardinality_metrics是Grafana Alloy在OpenTelemetry Collector中对应于telemetry.disableHighCardinalityMetrics功能门的等价物。它移除了可能导致高基数指标的属性。例如,从HTTP和gRPC连接的度量信息中移除包含IP地址和端口号的属性。

注意

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

level是OpenTelemetry Collector中telemetry.metrics.level功能门的Grafana Alloy等价物。可能的值有"none""basic""normal""detailed"

output块

output块配置了一组组件以将结果遥测数据转发到。

以下参数受支持

名称类型描述默认必需
logslist(otelcol.Consumer)要发送日志的目标消费者列表。[]
metricslist(otelcol.Consumer)要发送度量的目标消费者列表。[]
traceslist(otelcol.Consumer)要发送跟踪信息的目标消费者列表。[]

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

导出的字段

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

组件健康

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

调试信息

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

调试指标

  • receiver_accepted_spans_ratio_total(计数器):成功推送到管道的_spans的数量。
  • receiver_refused_spans_ratio_total(计数器):不能推送到管道的_spans的数量。
  • rpc_server_duration_milliseconds(直方图):从gRPC服务器发出的RPC请求持续时间。
  • rpc_server_request_size_bytes(直方图):测量RPC请求消息的大小(未压缩)。
  • rpc_server_requests_per_rpc(直方图):测量每个RPC收到的消息数。对于所有非流式RPC,应等于1。
  • rpc_server_response_size_bytes(直方图):测量RPC响应消息的大小(未压缩)。
  • rpc_server_responses_per_rpc(直方图):测量每个RPC收到的消息数。对于所有非流式RPC,应等于1。

示例

此示例在最后将接收到的遥测数据发送到OTLP端点之前,通过批量处理器转发数据。

alloy
otelcol.receiver.otlp "default" {
  http {}
  grpc {}

  output {
    metrics = [otelcol.processor.batch.default.input]
    logs    = [otelcol.processor.batch.default.input]
    traces  = [otelcol.processor.batch.default.input]
  }
}

otelcol.processor.batch "default" {
  output {
    metrics = [otelcol.exporter.otlp.default.input]
    logs    = [otelcol.exporter.otlp.default.input]
    traces  = [otelcol.exporter.otlp.default.input]
  }
}

otelcol.exporter.otlp "default" {
  client {
    endpoint = env("OTLP_ENDPOINT")
  }
}

技术细节

otelcol.receiver.otlp支持gzip压缩。

兼容组件

otelcol.receiver.otlp可以接受以下组件的参数

注意

连接某些组件可能不合理,或者组件可能需要进一步配置才能使连接正确工作。请参阅链接文档了解更多详情。