微服务可观测性实践:OpenTelemetry 统一遥测方案
Microservices Observability: Unified Telemetry with OpenTelemetry
| Wu Xin | 2026-07-05T11:30:00
分享 iDev 微服务平台落地 OpenTelemetry 的完整方案,实现日志、指标、链路追踪的统一采集和关联分析。
Sharing iDev's complete OpenTelemetry implementation for microservices, achieving unified collection and correlation of logs, metrics, and distributed tracing.
可观测性挑战iDev 微服务平台运行着 80+ 个服务,之前使用的是"拼凑式"可观测性方案:ELK 收日志、Prometheus 收指标、Jaeger 收链路。三套系统割裂,排查问题时需要在多个界面间跳转。OpenTelemetry 统一方案我们采用 OpenTelemetry 作为统一的遥测框架,实现三大信号的统一采集:// Java Agent 自动注入(零代码侵入) java -javaagent:opentelemetry-javaagent.jar \ -Dotel.service.name=order-service \ -Dotel.exporter.otlp.endpoint=http://otel-collector:4317 \ -jar order-service.jarCollector Pipelinereceivers: otlp: protocols: grpc: {endpoint: 0.0.0.0:4317} processors: batch: {timeout: 5s} tail_sampling: policies: - {name: error-policy, type: status_code, status_code: {status_codes: [ERROR]}} - {name: slow-policy, type: latency, latency: {threshold_ms: 1000}} exporters: clickhouse: {endpoint: clickhouse:9000} prometheus: {endpoint: 0.0.0.0:8889}关联分析通过 TraceID 将日志、指标和链路追踪关联,在 Grafana 中实现一键跳转:从异常日志 → 对应链路 → 相关指标,排查效率提升 5 倍。
Observability ChallengesiDev's microservices platform runs 80+ services. Previously used a "patchwork" observability solution: ELK for logs, Prometheus for metrics, Jaeger for tracing. Three siloed systems requiring jumping between multiple UIs during troubleshooting.OpenTelemetry Unified SolutionWe adopted OpenTelemetry as the unified telemetry framework for collecting all three signals:// Java Agent auto-injection (zero code changes) java -javaagent:opentelemetry-javaagent.jar \ -Dotel.service.name=order-service \ -Dotel.exporter.otlp.endpoint=http://otel-collector:4317 \ -jar order-service.jarCollector Pipelinereceivers: otlp: protocols: grpc: {endpoint: 0.0.0.0:4317} processors: batch: {timeout: 5s} tail_sampling: policies: - {name: error-policy, type: status_code, status_code: {status_codes: [ERROR]}} - {name: slow-policy, type: latency, latency: {threshold_ms: 1000}} exporters: clickhouse: {endpoint: clickhouse:9000} prometheus: {endpoint: 0.0.0.0:8889}Correlation AnalysisCorrelate logs, metrics, and traces via TraceID. In Grafana, achieve one-click navigation: from error log → corresponding trace → related metrics. Troubleshooting efficiency improved 5x.