opentelemetry
该插件仅支持二进制编码的 ,即请求类型为 application/x-protobuf
的数据上报。
你可以通过在 conf/config.yaml
中指定配置来设置数据上报:
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
trace_id_source | enum | random | trace ID 的来源。有效值为:random 或 x-request-id 。当设置为 时,x-request-id 头的值将用作跟踪 ID。请确保当前请求 ID 是符合 TraceID 规范的:[0-9a-f]{32} 。 |
resource | object | 追加到 trace 的额外 resource。 | |
collector | object | {address = “127.0.0.1:4318”, request_timeout = 3} | OpenTelemetry Collector 配置。 |
collector.address | string | 127.0.0.1:4318 | 数据采集服务的地址。 |
collector.request_timeout | integer | 3 | 数据采集服务上报请求超时时长,单位为秒。 |
collector.request_headers | object | 数据采集服务上报请求附加的 HTTP 请求头。 | |
batch_span_processor | object | trace span 处理器参数配置。 | |
batch_span_processor.drop_on_queue_full | boolean | true | 如果设置为 true 时,则在队列排满时删除 span。否则,强制处理批次。 |
batch_span_processor.max_queue_size | integer | 2048 | 处理器缓存队列容量的最大值。 |
batch_span_processor.batch_timeout | number | 5 | 构造一批 span 超时时间,单位为秒。 |
batch_span_processor.max_export_batch_size | integer | 256 | 单个批次中要处理的 span 数量。 |
batch_span_processor.inactive_timeout | number | 2 | 两个处理批次之间的时间间隔,单位为秒。 |
./conf/config.yaml
opentelemetry
插件默认为禁用状态,你需要在配置文件(./conf/config.yaml
)中开启该插件:
开启成功后,可以通过如下命令在指定路由上启用 opentelemetry
插件:
当你需要禁用 opentelemetry
插件时,可以通过以下命令删除相应的 JSON 配置,APISIX 将会自动重新加载相关配置,无需重启服务: