不改一行业务代码,用 OpenTelemetry Collector 把日志、指标、链路三路信号统一接入炬鲸 OBSERVE,附完整配置与排错清单。
接入可观测平台最怕两件事:为埋点改业务代码,以及日志、指标、链路各用一套 SDK。OpenTelemetry(OTel)解决了这两个问题——它是 CNCF 孵化的统一标准,一个 SDK 产出三路信号,还能用 Collector 统一转发。
本文假设服务已通过 OTel SDK 或自动注入产出信号,只需配好 Collector。
Collector 可跑在每台机器(agent)或集中部署(gateway)。中小团队建议先跑一个 gateway:
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
processors:
batch:
timeout: 1s
service:
pipelines:
traces:
receivers: [otlp]
processors: [batch]
exporters: [otlp/observe]
batch processor 一定要加:批量打包再发送,能把上报请求数降一个数量级。
在 exporters 里加指向炬鲸 OBSERVE 的 OTLP 导出器,带上接入 Token:
exporters:
otlp/observe:
endpoint: ob.example.com:4317
headers:
authorization: Bearer <你的接入Token>
tls:
insecure: false
把 logs、metrics、traces 三条 pipeline 都指到 otlp/observe,三路信号就全打通了。
启动后先看 Collector 自己的日志有没有 exporting failed,再到控制台用类 SQL 检索确认数据在进来:
SELECT * FROM logs WHERE service = 'order-service' ORDER BY ts DESC LIMIT 20
常见坑:Token 拼写或 Bearer 后少空格;4317 是 gRPC、4318 是 HTTP,别混用;容器与宿主机时区不一致会偏移时间戳。
接入后先统一两件事:service.name 命名规范、environment/team 标签。现在花五分钟,后面排查能省五小时。