OTLP 端口约定是什么
OTLP(OpenTelemetry Protocol)是按协议成对约定端口的:gRPC 走 4317,HTTP 走 4318。使用哪个端口取决于采集端导出器的协议类型,而不是数据种类——traces、metrics、logs 三类信号共用这两个端口,HTTP 侧再按路径区分:/v1/traces、/v1/metrics、/v1/logs。防火墙与安全组按端口放行,协议与端口配错时通常表现为连接超时或 404,而不一定是明确的协议错误。
基本信息
| gRPC 端口 | 4317,主流 SDK 默认使用 |
|---|---|
| HTTP 端口 | 4318,按 /v1/信号名 路径区分 |
| TLS 处理 | 无 TLS 时客户端需显式声明 insecure |
| 相关端口 | Jaeger UI 16686、Tempo 查询 HTTP 3200 |
典型使用场景
- 应用接入:SDK 导出器按协议选择 4317 或 4318
- 网络放行:安全组与主机防火墙按端口与来源网段开放
- 容器编排:Service 端口与容器端口对齐,避免只映射了其中一个
- 灰度对比:新旧采集端并存时用不同端口区分流量
- 排障定位:端口不通先分层验证,再怀疑代码
端点速记
端点速记
OTLP/gRPC :4317 # SDK 默认,二进制协议
OTLP/HTTP :4318 # 按路径区分信号
- /v1/traces
- /v1/metrics
- /v1/logs
其它常见端口:
Jaeger UI 16686
Tempo 查询 HTTP 3200
Collector 自身指标 8888(默认 telemetry 端口)
连通性验证:nc -vz otel-collector 4317端口与现象对照
| 现象 | 可能原因 | 定位方法 |
|---|---|---|
| 连接超时 | 端口未放行或服务未监听 | 先看监听状态再查网络策略 |
| 立即被拒绝 | 目标端口无进程监听 | 核对 Collector 配置里的 endpoint |
| HTTP 404 | 路径漏写或拼错信号名 | 检查是否带 /v1/traces 前缀 |
| TLS 握手失败 | 客户端与网关的证书配置不一致 | 区分明文与服务端证书两种模式 |
| 偶发失败 | 端口被其它组件占用或冲突 | 核对主机端口占用情况 |
同一主机上 HTTP 与 gRPC 端口必须成对区分:把 gRPC 客户端指向 HTTP 端口时,错误信息往往只是连接关闭,容易误判为服务故障。
Jaeger 的 OTLP 接收端口也使用 4317,因此与 Collector 共存时需要错开端口或分开部署,避免抢占冲突。