OTLP 链路参考
AISIX 将请求遥测导出为相互关联的 OTLP 跨度。该层级保留入站请求、逻辑上游操作和各次尝试,使运维人员能够排查重试、故障转移、服务提供方延迟和采集内容,而不会把一次请求重复计数。
请在可观测性导出器中配置目标、采样率和内容模式。本参考介绍到达 OTLP 目标的链路与属性。
了解 OTLP 链路结构
对于每个产生 OTLP 遥测数据的请求,AISIX 会导出一个链路层级,而不是为每个用量事件导出彼此无关的跨度。模型请求到达上游时,层级如下:
| 跨度 | OTLP 类型 | 范围 |
|---|---|---|
| 入站请求 | SERVER | 覆盖请求从到达开始,直到响应完成或调用方断开连接。有效的入站 traceparent 会成为此跨度的远程父级。 |
| 逻辑操作 | CLIENT | 覆盖网关执行的上游操作,包括所有重试和故障转移尝试。它是 SERVER 跨度的子级。 |
| 上游尝试 | CLIENT | 表示一次服务提供方分发。每次尝试都是逻辑操作的子级,并携带 aisix.attempt_index。 |
因此,重试和故障转移会显示为同一逻辑操作下的同级尝试跨度。对于每个用量事件,AISIX 会把完整属性和捕获内容放在当前最具体的跨度上:优先放在尝试跨度,其次放在逻辑操作跨度,最后放在 SERVER 跨度。其他跨度仅携带关联该层级所需的字段,不会重复整个事件。
并非每个请求都包含所有三个层级:
- 缓存命中、输入安全护栏阻断或其他分发前结果只有 SERVER 跨度,因为 AISIX 没有调用上游。
- 不采用逐次尝试追踪的 MCP、A2A、Realtime、任务和透传调用包含 SERVER 跨度,以及一个表示上游操作的 CLIENT 跨度。
统计导出链路时,请根据跨度类型和父子关系,而不要只根据跨度名称。筛选 SERVER 跨度可以统计已采样的请求链路。sample_rate 小于 1 时,未被选中的请求不会出现。部分身份认证和格式错误输入路径会在用量事件或 OTLP 跨度产生前拒绝请求,因此 SERVER 跨度不能完整表示入站请求数。网关请求量请使用请求指标。分析单次模型尝试时,请使用携带 aisix.attempt_index 的 CLIENT 跨度。