otelcol.receiver.opencensus
otelcol.receiver.opencensus
接收通过 gRPC 或 HTTP 使用 OpenCensus 格式的遥测数据,并将其转发到其他 otelcol.*
组件。
注意:
otelcol.receiver.opencensus
是对来自otelcol-contrib
发行版的上游 OpenTelemetry Collectoropencensus
接收器的封装。错误报告或功能请求将在必要时重定向到上游仓库。
可以通过为多个 otelcol.receiver.opencensus
组件指定不同的标签来定义它们。
用法
otelcol.receiver.opencensus "LABEL" {
output {
metrics = [...]
logs = [...]
traces = [...]
}
}
参数
otelcol.receiver.opencensus
支持以下参数
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
cors_allowed_origins | list(string) | 允许跨域资源共享 (CORS) 源的列表。 | 否 | |
endpoint | string | 监听流量的 host:port 。 | "0.0.0.0:55678" | 否 |
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 | boolean | 将传入连接元数据传播到下游消费者。 | 否 | |
auth | capsule(otelcol.Handler) | 来自 otelcol.auth 组件的处理程序,用于对请求进行身份验证。 | 否 |
cors_allowed_origins
是允许的 HTTP/JSON 请求的 CORS 源。空列表表示完全禁用 CORS。通配符 (*) 可用于匹配任何源或源的一个或多个字符。
“endpoint” 参数对于 gRPC 和 HTTP/JSON 都是相同的,因为协议会被识别并进行相应的处理。
要使用 HTTP/JSON 写入链路追踪,请 POST
到 [address]/v1/trace
。JSON 消息格式与 gRPC protobuf 格式并行。有关详细信息,请参阅其 OpenApi 规范。
请注意,max_recv_msg_size
、read_buffer_size
和 write_buffer_size
的格式中包含了单位,例如 “512KiB” 或 “1024KB”。
块
otelcol.receiver.opencensus
的定义内部支持以下块
层级结构 | 块 | 描述 | 必需 |
---|---|---|---|
tls | tls | 配置 gRPC 服务器的 TLS。 | 否 |
keepalive | keepalive | 配置已配置服务器的 Keepalive 设置。 | 否 |
keepalive > server_parameters | server_parameters | 用于配置 Keepalive 设置的服务器参数。 | 否 |
keepalive > enforcement_policy | enforcement_policy | Keepalive 设置的强制策略。 | 否 |
debug_metrics | debug_metrics | 配置此组件生成的用于监控其状态的指标。 | 否 |
output | output | 配置将接收到的遥测数据发送到哪里。 | 是 |
>
符号表示更深层次的嵌套。例如,grpc > tls
指的是在 grpc
块内定义的 tls
块。
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 | boolean | 是否在证书颁发机构旁边加载系统证书颁发机构池。 | false | 否 |
key_file | string | TLS 证书密钥的路径。 | 否 | |
key_pem | secret | 用于客户端身份验证的密钥 PEM 编码文本。 | 否 | |
max_version | string | 连接可接受的最大 TLS 版本。 | "TLS 1.3" | 否 |
min_version | string | 连接可接受的最小 TLS 版本。 | "TLS 1.2" | 否 |
cipher_suites | list(string) | TLS 传输可以使用的 TLS 密码套件列表。 | [] | 否 |
reload_interval | duration | 重新加载证书的持续时间。 | "0s" | 否 |
client_ca_file | string | 服务器用于验证客户端证书的 TLS 证书路径。 | 否 |
如果 reload_interval
设置为 "0s"
,则证书永远不会重新加载。
以下参数对是互斥的,不能同时设置
ca_pem
和ca_file
cert_pem
和cert_file
key_pem
和key_file
如果 cipher_suites
留空,则使用安全的默认列表。有关支持的密码套件列表,请参阅 Go Cipher Suites 文档。
client_ca_file
将 ClientCA
和 ClientAuth
设置为 TLSConfig
中的 RequireAndVerifyClientCert
。有关更多信息,请参阅 Go TLS 文档。
keepalive 块
keepalive
块配置与 gRPC 服务器连接的 Keepalive 设置。
keepalive
不支持任何参数,并且完全通过内部块进行配置。
server_parameters 块
server_parameters
块控制 gRPC 服务器的 Keepalive 和最大生存期设置。
支持以下参数
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
max_connection_idle | duration | 空闲连接的最大生存期。 | "infinity" | 否 |
max_connection_age | duration | 非空闲连接的最大生存期。 | "infinity" | 否 |
max_connection_age_grace | duration | 强制关闭连接前等待的时间。 | "infinity" | 否 |
time | duration | 多久 ping 一次不活跃的客户端以检查活跃度。 | "2h" | 否 |
timeout | duration | 关闭不响应活跃度检查的不活跃客户端之前等待的时间。 | "20s" | 否 |
enforcement_policy 块
enforcement_policy
块配置 gRPC 服务器的 Keepalive 强制策略。服务器将关闭来自违反配置策略的客户端的连接。
支持以下参数
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
min_time | duration | 客户端在发送 Keepalive ping 之前应等待的最短时间。 | "5m" | 否 |
permit_without_stream | boolean | 允许客户端在没有活动流时发送 Keepalive ping。 | false | 否 |
debug_metrics 块
debug_metrics
块配置此组件生成的用于监控其状态的指标。
支持以下参数
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
disable_high_cardinality_metrics | boolean | 是否禁用某些高基数指标。 | 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
是 Alloy 等效于 OpenTelemetry Collector 中的 telemetry.metrics.level
功能门。可能的值为 "none"
、"basic"
、"normal"
和 "detailed"
。
output 块
output
块配置一组组件,用于将生成的遥测数据转发到这些组件。
支持以下参数
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
logs | list(otelcol.Consumer) | 要将日志发送到的消费者列表。 | [] | 否 |
metrics | list(otelcol.Consumer) | 要将指标发送到的消费者列表。 | [] | 否 |
traces | list(otelcol.Consumer) | 要将链路追踪发送到的消费者列表。 | [] | 否 |
您必须指定 output
块,但其所有参数都是可选的。默认情况下,遥测数据将被丢弃。相应地配置 metrics
、logs
和 traces
参数,以将遥测数据发送到其他组件。
导出的字段
otelcol.receiver.opencensus
不导出任何字段。
组件健康状况
仅当 otelcol.receiver.opencensus
被赋予无效配置时,才会被报告为不健康。
调试信息
otelcol.receiver.opencensus
不公开任何组件特定的调试信息。
示例
此示例通过批处理器转发接收到的遥测数据,然后最终将其发送到支持 OTLP 的端点
otelcol.receiver.opencensus "default" {
cors_allowed_origins = ["https://*.test.com", "https://test.com"]
endpoint = "0.0.0.0:9090"
transport = "tcp"
max_recv_msg_size = "32KB"
max_concurrent_streams = "16"
read_buffer_size = "1024KB"
write_buffer_size = "1024KB"
include_metadata = true
tls {
cert_file = "test.crt"
key_file = "test.key"
}
keepalive {
server_parameters {
max_connection_idle = "11s"
max_connection_age = "12s"
max_connection_age_grace = "13s"
time = "30s"
timeout = "5s"
}
enforcement_policy {
min_time = "10s"
permit_without_stream = true
}
}
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 = sys.env("OTLP_ENDPOINT")
}
}
启用身份验证
您可以创建一个 otelcol.receiver.opencensus
组件,该组件要求对请求进行身份验证。这对于限制谁可以将数据推送到服务器非常有用。
注意
并非所有 OpenTelemetry Collector 身份验证插件都支持接收器身份验证。有关每个
otelcol.auth.*
组件的兼容性,请参阅文档。
otelcol.receiver.opencensus "default" {
auth = otelcol.auth.basic.creds.handler
}
otelcol.auth.basic "creds" {
username = sys.env("USERNAME")
password = sys.env("PASSWORD")
}
兼容组件
otelcol.receiver.opencensus
可以接受来自以下组件的参数
注意
连接某些组件可能不合理,或者组件可能需要进一步配置才能使连接正常工作。有关更多详细信息,请参阅链接的文档。