otelcol.receiver.opencensus
otelcol.receiver.opencensus 使用 OpenCensus 格式通过 gRPC 或 HTTP 接收遥测数据,并将其转发到其他 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 写入追踪,请向 [address]/v1/trace 发送 POST 请求。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 证书路径。 | 否 | |
| curve_preferences | list(string) | 握手时使用的一组椭圆曲线。 | [] | 否 | 
如果 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 文档。
curve_preferences 参数以优先顺序确定握手时优先使用的一组椭圆曲线。如果未提供,则使用默认列表。可用的椭圆曲线集包括 X25519、P521、P256 和 P384。
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 | 否 | 
disable_high_cardinality_metrics 是 Grafana Alloy 中相当于 OpenTelemetry Collector 中 telemetry.disableHighCardinalityMetrics 特性门控的功能。它会移除可能导致高基数指标的属性。例如,关于 HTTP 和 gRPC 连接的指标中的 IP 地址和端口号属性将被移除。
注意
如果配置了
disable_high_cardinality_metrics,它仅适用于otelcol.exporter.*和otelcol.receiver.*组件。
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 可以接受来自以下组件的参数
注意
连接某些组件可能不合理,或者组件可能需要进一步配置才能正确建立连接。有关更多详细信息,请参阅链接文档。







