预约咨询 提交工单

Prometheus、Grafana 与 OpenTelemetry 实战:构建 Kubernetes 可观测性栈

本文通过一个实际场景,演示如何使用 Prometheus、Grafana 和 OpenTelemetry 构建端到端的可观测性栈,涵盖指标、追踪和仪表盘。适合 SRE 和 DevOps 工程师。

Prometheus、Grafana 与 OpenTelemetry 实战:构建 Kubernetes 可观测性栈
Observability 6min 39 浏览 2026-07-14
PrometheusGrafanaOpenTelemetryKubernetes可观测性

场景

某微服务应用在上线后出现间歇性高延迟,错误预算快速消耗。团队已有 Prometheus 和 Grafana,但缺少分布式追踪,无法定位根因。

症状

  • 用户报告页面加载缓慢(>5秒)
  • Grafana 中 p99 延迟从 200ms 飙升至 2s
  • 错误率从 0.5% 升至 3%,错误预算即将耗尽

诊断

  1. 检查 Prometheus 指标:确认高延迟是全局还是局部。运行查询:histogram_quantile(0.99, sum(rate(http_request_duration_seconds_bucket[5m])) by (le, service))。发现 frontend 服务 p99 正常,但 payments 服务 p99 高达 4s。
  2. 部署 OpenTelemetry 收集器:自动注入追踪,定位慢调用链。

命令与配置

安装 OpenTelemetry 收集器(Helm)

helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
helm upgrade --install otel-collector open-telemetry/opentelemetry-collector \
  --set mode=deployment \
  --set config.receivers.otlp.protocols.grpc.endpoint=0.0.0.0:4317 \
  --set config.exporters.prometheus.endpoint=0.0.0.0:8889 \
  --set-file config.pipelines.traces=traces.yaml

Prometheus 配置(添加 scrape 目标)

scrape_configs:
  - job_name: 'otel-collector'
    scrape_interval: 10s
    static_configs:
      - targets: ['otel-collector:8889']

Grafana 仪表盘(导入 JSON)

创建追踪仪表盘,使用 tempo 数据源(或其他兼容存储)。

风险控制

  • 命名空间隔离:在独立命名空间部署收集器,避免影响生产。
  • 采样率控制:默认 10% 采样,防止存储爆炸。
  • 配置备份:备份 Prometheus 和 Grafana 配置。

回滚

helm rollback otel-collector 0  # 回滚到上一个版本
kubectl delete -f prometheus-config.yaml  # 移除 scrape 配置

验证

  • 查询:rate(traces_sampled_total[5m]) 确认追踪数据流入。
  • 在 Grafana 中查看延迟仪表盘,确认 p99 恢复正常(<500ms)。
  • 执行端到端测试,错误率降至 0.5%。

何时提交 OpsGlobal 工单

  • 无法确定根因,需要专家分析调用链。
  • 配置后指标无变化,可能收集器或 exporter 有误。
  • 需要优化采样策略或存储方案。

适用场景

适合正在处理 Observability、Prometheus, Grafana, OpenTelemetry, Kubernetes 相关问题的团队,用于快速建立排查路径和交付标准。

问题背景

本文通过一个实际场景,演示如何使用 Prometheus、Grafana 和 OpenTelemetry 构建端到端的可观测性栈,涵盖指标、追踪和仪表盘。适合 SRE 和 DevOps 工程师。

排查步骤

先确认影响范围和最近变更,再收集日志、配置、指标和链路数据,最后按风险从低到高执行修复。

命令示例

示例命令请替换为你的真实资源名,并使用环境变量保存账号、密码、token 等敏感信息。

风险说明

生产环境操作前需要确认备份、权限边界、变更窗口和回滚路径,避免扩大故障影响。

回滚方案

保留原配置和发布版本;如修复后指标异常,立即回退配置、镜像或数据库变更并复核日志。

交付清单

问题定位记录、关键命令、修复步骤、验证结果、后续优化建议。

!

遇到类似技术问题?

如果你的服务器、K8s、Docker、CI/CD、数据库或监控系统出现类似问题,可以提交日志和配置文件,我们帮你远程诊断。

工单 WhatsApp 联系 咨询