OpenTelemetry 实战:指标、日志、追踪三板斧


1. 为什么是 OpenTelemetry

统一语义与 SDK,避免厂商锁定;在成本、迁移与可观测性深度间取得平衡。

2. 数据模型与采集面

  • Metrics:RED/USE 指标体系;直方图与基数问题;采样策略。
  • Logs:结构化日志,关联 TraceId/SpanId;落地与保留策略。
  • Traces:端到端链路;采样(Head/Tail);关键属性建模。

3. 采集与导出

  • SDK/Auto Instrumentation;Exporter:OTLP/HTTP/gRPC。
  • Collector:集中转发与加工(过滤、采样、重命名、聚合)。
  • 后端:Prometheus/Grafana、Tempo/Jaeger、Loki/ELK、云厂商。

4. Java 示例

// build.gradle
implementation("io.opentelemetry:opentelemetry-api:1.40.0")
implementation("io.opentelemetry:opentelemetry-sdk:1.40.0")
implementation("io.opentelemetry:opentelemetry-exporter-otlp:1.40.0")
// 运行时:-Dotel.service.name=demo -Dotel.exporter.otlp.endpoint=http://otel-collector:4317

5. 采样与成本

区分关键路径与普通请求;对高基数标签做降维;使用 Tail-based 采样保留异常与慢请求。

6. 治理与可用性

  • 命名规范与标签基线;版本控制与回滚;集群故障降级。
  • 可视化:SLO/错误预算、服务依赖拓扑、容量与热度地图。

7. 与业务结合

将业务指标嵌入可观测三件套,构建从用户体验到服务内部的闭环。


文章作者: 张显达
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 张显达 !
  目录