OTLP(OpenTelemetry Protocol)是 OpenTelemetry 官方定义的遥测数据传输协议,也是所有 OpenTelemetry SDK 默认支持的导出协议。
- OTLP 的定位:它统一规定了链路、指标、日志三类数据的编码格式与传输方式,保证不同语言 SDK 产出的数据在结构上保持一致,后端接收时无需为每种语言单独适配。
- 传输方式:OTLP 支持两种承载方式——基于 gRPC 的 OTLP/gRPC(默认端口 4317)和基于 HTTP 的 OTLP/HTTP(默认端口 4318,支持 Protobuf 或 JSON 编码)。gRPC 适合高性能、长连接场景,HTTP 适合网络环境受限或穿透防火墙的场景。
- 与普通 HTTP 上报的区别:普通 HTTP 上报通常指应用以自定义 JSON 格式直接 POST 到后端,格式由各厂商自行定义,缺乏统一规范;而 OTLP 是跨厂商的开放标准,具备明确的语义约定与数据模型。采用 OTLP 后,切换后端(如从 Jaeger 换到其他平台)只需修改导出地址,无需改动应用代码。