想把 traces / metrics / logs 统一到 OTel,接入过程比想象中坑多。
踩过的坑:
- 自动 instrumentation 和手写 span 混用,trace 经常断。
- Node SDK 版本迭代快,文档跟不上。
- Exporter 配置(OTLP / Jaeger)每种后端要求不一样。
- Next.js 下 Edge 和 Node runtime 的 OTel 配置不同。
最后定型:
import { trace } from "@opentelemetry/api";
const span = tracer.startSpan("db.query");
统一打 OTLP HTTP 到一个 Tempo,Grafana 里看。
大家的可观测性栈都是啥?