【监控与可观测性】05-OpenTelemetry入门:统一链路追踪落地方案

📅 2026/7/5 1:55:20
【监控与可观测性】05-OpenTelemetry入门:统一链路追踪落地方案
OpenTelemetry 入门统一链路追踪落地方案专栏监控 可观测性难度进阶标签OpenTelemetry链路追踪可观测性Jaeger分布式追踪前言微服务架构下一个请求经过十几个服务出问题时不知道问题在哪个环节。链路追踪就是解决这个问题的。一、三大可观测性信号信号工具解决的问题Metrics指标Prometheus系统是否健康Logs日志ELK发生了什么Traces链路Jaeger/Zipkin为什么慢/为什么失败二、OpenTelemetry 架构应用SDK埋点 ↓ OTLP协议 OTel Collector采集、处理、路由 ├→ Jaeger链路存储展示 ├→ Prometheus指标存储 └→ Elasticsearch日志存储三、Java 应用接入零代码侵入# 下载Java Agent无需修改代码wgethttps://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/latest/download/opentelemetry-javaagent.jar# 启动应用时挂载Agentjava\-javaagent:/opt/opentelemetry-javaagent.jar\-Dotel.service.namemyapp\-Dotel.traces.exporterotlp\-Dotel.exporter.otlp.endpointhttp://otel-collector:4317\-Dotel.metrics.exporterprometheus\-jarmyapp.jar四、OTel Collector 配置# otel-collector-config.ymlreceivers:otlp:protocols:grpc:endpoint:0.0.0.0:4317http:endpoint:0.0.0.0:4318processors:batch:# 批量处理减少网络请求timeout:1ssend_batch_size:1024memory_limiter:# 防止OOMlimit_mib:512exporters:jaeger:endpoint:jaeger:14250tls:insecure:trueprometheus:endpoint:0.0.0.0:8889service:pipelines:traces:receivers:[otlp]processors:[memory_limiter,batch]exporters:[jaeger]metrics:receivers:[otlp]processors:[batch]exporters:[prometheus]五、Jaeger 安装与查询# 快速启动Jaeger一体化镜像dockerrun-d\--namejaeger\-p16686:16686\-p14250:14250\jaegertracing/all-in-one:latest# 访问UI: http://localhost:16686实用查询场景搜索 P99 最慢的请求的 Trace定位某个服务调用失败的根因分析哪个下游调用占了大部分响应时间结语OpenTelemetry 统一了可观测性的标准避免了厂商锁定。Java 应用通过 Agent 零代码接入是最快的落地方式。