otelcol.receiver.otlp
otelcol.receiver.otlp
通过网络接收OTLP格式的数据,并将其转发到其他otelcol.*
组件。
注意:
otelcol.receiver.otlp
是上游OpenTelemetry Collectorotlp
接收器的封装。如果必需,错误报告或功能请求将被转至上游存储库。
可以通过提供不同的标签来指定多个otelcol.receiver.otlp
组件。
用法
otelcol.receiver.otlp "LABEL" {
grpc { ... }
http { ... }
output {
metrics = [...]
logs = [...]
traces = [...]
}
}
参数
otelcol.receiver.otlp
不支持任何参数,完全通过内部块进行配置。
块
以下块在定义otelcol.receiver.otlp
时受支持
层次结构 | 块 | 描述 | 必需 |
---|---|---|---|
grpc | grpc | 配置用于接收遥测数据的gRPC服务器。 | 否 |
grpc > tls | tls | 为gRPC服务器配置TLS。 | 否 |
grpc > keepalive | keepalive | 配置配置服务器的作用域设置。 | 否 |
grpc > keepalive > server_parameters | server_parameters | 用于配置作用域设置的服务器参数。 | 否 |
grpc > keepalive > enforcement_policy | enforcement_policy | 适用作用域设置的作用域策略。 | 否 |
http | http | 配置用于接收遥测数据的HTTP服务器。 | 否 |
http > tls | tls | 为HTTP服务器配置TLS。 | 否 |
http > cors | cors | 为HTTP服务器配置CORS。 | 否 |
调试指标 | 调试指标 | 配置组件生成以监控其状态的指标。 | 否 |
输出 | 输出 | 配置发送接收到的遥测数据的位置。 | 是 |
“>”符号表示更深层次的嵌套。例如,“ grpc > tls”指的是在“ grpc”块中定义的“ tls”块。
grpc块
如果提供了“grpc”块,“grpc”块则配置组件使用的gRPC服务器。如果未提供“grpc”块,则不会启动gRPC服务器。
以下参数受支持
名称 | 类型 | 描述 | 默认 | 必需 |
---|---|---|---|---|
endpoint | string | host:port 用于监听流量。 | "0.0.0.0:4317" | 否 |
transport | string | 用于gRPC服务器的传输。 | "tcp" | 否 |
max_recv_msg_size | string | 服务器将接受的消息的最大大小。 | "4MiB " | 否 |
max_concurrent_streams | number | 限制并发流式RPC调用的数量。 | 否 | |
read_buffer_size | string | gRPC 服务器用于从客户端读取时使用的读取缓冲区的大小。 | "512KiB" | 否 |
write_buffer_size | string | gRPC 服务器用于写入客户端时的写入缓冲区的大小。 | 否 | |
include_metadata | 布尔值 | 将传入的连接元数据传递给下游消费者。 | 否 |
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 | 布尔值 | 是否在证书颁发机构旁边加载系统证书颁发机构池。 | false | 否 |
key_file | string | TLS 证书私钥的路径。 | 否 | |
key_pem | 秘密 | 用于客户端验证的密钥 PEM 编码文本。 | 否 | |
max_version | string | 接受的最大 TLS 版本。 | "TLS 1.3" | 否 |
min_version | string | 接受的最小 TLS 版本。 | "TLS 1.2" | 否 |
cipher_suites | 列表(字符串) | TLS 传输可以使用的一系列 TLS 密码套件。 | [] | 否 |
reload_interval | 持续时间 | 证书重新加载的时间间隔。 | "0s" | 否 |
client_ca_file | string | 服务器用于验证客户端证书的 TLS 证书路径。 | 否 |
如果将 reload_interval
设置为 "0s"
,则证书永远不会重新加载。
以下参数对是互斥的,不能同时设置
ca_pem
和ca_file
cert_pem
和cert_file
key_pem
和key_file
如果留空 cipher_suites
,则使用安全默认列表。有关支持的密码套件的列表,请参阅Go 密码套件文档。
client_ca_file
将 TLSConfig
中的 ClientCA
和 ClientAuth
设置为 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 服务器。
以下参数受支持
名称 | 类型 | 描述 | 默认 | 必需 |
---|---|---|---|---|
endpoint | string | host:port 用于监听流量。 | "0.0.0.0:4318" | 否 |
max_request_body_size | string | 服务器允许的最大请求体大小。 | 20MiB | 否 |
include_metadata | 布尔值 | 将传入的连接元数据传递给下游消费者。 | 否 | |
traces_url_path | string | 接收跟踪的 URL 路径。 | "/v1/traces" | 否 |
metrics_url_path | string | 接收指标数据的 URL 路径。 | "/v1/metrics" | 否 |
logs_url_path | string | 接收日志的 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_age | number | 配置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 | 否 |
level | string | 控制封装收集器发出的指标的详细程度。 | "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
块配置了一组组件以将结果遥测数据转发到。
以下参数受支持
名称 | 类型 | 描述 | 默认 | 必需 |
---|---|---|---|---|
logs | list(otelcol.Consumer) | 要发送日志的目标消费者列表。 | [] | 否 |
metrics | list(otelcol.Consumer) | 要发送度量的目标消费者列表。 | [] | 否 |
traces | list(otelcol.Consumer) | 要发送跟踪信息的目标消费者列表。 | [] | 否 |
您必须指定output
块,但所有其参数都是可选的。默认情况下,遥测数据会被丢弃。根据需要配置metrics
、logs
和traces
参数,以将遥测数据发送到其他组件。
导出的字段
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端点之前,通过批量处理器转发数据。
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
可以接受以下组件的参数
注意
连接某些组件可能不合理,或者组件可能需要进一步配置才能使连接正确工作。请参阅链接文档了解更多详情。