文章

Grafana 可视化与告警

Grafana 可视化与告警

一句话:Grafana 是”看板聚合器”——它自己不存数据,而是把 Prometheus/Loki/Tempo/OTel 等数据源的查询画成面板,并把告警规则接到 Alertmanager。

为什么不是”再装个监控”

很多人把 Grafana 当”画图工具”,但它的真正价值是统一观测面:一个 Dashboard 里同时放 Metrics(Prometheus)、Logs(Loki)、Traces(Tempo),并用 Exemplar / 数据链接 实现”指标异常 → 点开看日志 → 下钻到 trace”的联动。这正是你 vault 里 Cilium(Hubble)、llm-serving 各自指标需要统一呈现的原因。

数据源(Data Source)

数据源提供接什么
Prometheus指标查询Metrics
Loki日志查询(LogQL)Logs
Tempotrace 查询Traces
Jaegertrace 查询(兼容)Traces
OTel指标/ trace统一采集后端

三者都用同一套 Label 模型(Grafana 的 “Label” 概念跨数据源一致),这是它能联动的基础。

面板类型与取舍

面板适用反例
Time series绝大多数时序(QPS、时延、CPU)不要用 Stat 看趋势
Stat单个关键数(SLO 剩余、错误预算)不要堆 20 个 Stat
Heatmap时延分布随时间(Histogram 可视化)用 Time series 看分位不够直观
Table多维度明细(Top N Pod 内存)不要用它画趋势
Gauge单一百分比(磁盘使用率)不要用于多序列

变量与模板(Dashboard as Code)

用模板变量让一个 Dashboard 适配多集群/多命名空间:

{
  "templating": {
    "list": [
      { "name": "namespace", "type": "query",
        "datasource": "Prometheus",
        "query": "label_values(kube_pod_info, namespace)" }
    ]
  }
}

配合 grafana-cli / Terraform(grafana provider)/ Jsonnet(grafonnet)可实现看板即代码,纳入 Git 版本控制——和你 CI-CD 系列的基础设施即代码理念一致。

告警:从规则到通知

Grafana 9+ 的 Unified Alerting 把告警统一为:

graph LR
    R[Alert Rule: 查询+条件] --> E[Alert Instance 触发]
    E --> RT[Notification Policy 路由]
    RT --> CP[Contact Point: 钉钉/Slack/PagerDuty]
    RT --> SI[Silence/抑制]
  • Alert Rule:基于数据源查询 + 阈值/表达式(如 P99 > 300ms 持续 5m)
  • Notification Policy:按标签路由(severity=page → 电话;warning → 群消息)
  • Contact Point:钉钉/企业微信/Slack/PagerDuty
  • Silence:维护窗口静默

注意分工:Grafana 告警适合”看板即告警”的简单场景;Prometheus Alertmanager 适合复杂路由/抑制/分组(见 SLO/SLI 错误预算 篇的 MWMBR 多窗口告警)。生产中常两者并存。

最佳实践

  1. 一个面板一个结论:不要堆砌,每个面板回答一个问题
  2. 用 Exemplar:Histogram 样本挂 trace id,Grafana 点一下跳 Jaeger
  3. 数据链接(Data Link):从 Metrics 面板链接到 Logs/Traces 查询,带当前变量
  4. 看板分层:概览(红绿健康)→ 下钻(按服务)→ 根因(日志/trace)
  5. 避免每次加载全量:用 $__range 变量、合理 step

与你 vault 的打通点

  • LLM 推理服务化/推理性能基准测试与调优:把 TTFT/TPOT/GPU 利用率做成 Time series + Stat 看板
  • Cilium Hubble 可观测性与运维排障:Hubble drop/flow 指标接 Grafana
  • K8s 可观测性实战:Prometheus Operator + Grafana Operator 部署

关联知识

参考资源

  • Grafana Docs: Dashboards / Alerting
  • grafonnet-lib(Jsonnet 生成 Dashboard)

学习时间

内容日期状态
Grafana 可视化与告警2026-07-24完成:数据源、面板取舍、模板变量、告警链路、最佳实践

状态

  • 数据源与统一观测面
  • 面板类型取舍
  • 模板变量与看板即代码
  • 告警链路
  • 最佳实践