跳转至

Grafana:查询、展示与关联分析

Grafana 连接指标、日志和 Trace 数据源,提供 Dashboard、Explore、告警和跨信号跳转。Grafana 通常不保存主要遥测数据;页面无数据时要沿数据源继续检查,不能只重启 Grafana。

数据源规划

信号 常见数据源
Metrics Prometheus、VictoriaMetrics
Logs Loki、Elasticsearch/OpenSearch
Traces Tempo、Jaeger 等

数据源配置包括 URL、认证、TLS、租户和默认查询选项。生产凭据放受控 Secret,通过 provisioning 或自动化管理,不手工散落在多个实例中。

Dashboard 结构

一个服务 Dashboard 建议从用户到资源分层:

服务信息:环境、版本、负责人、最近发布
RED:请求率、错误率、P50/P95/P99
依赖:数据库、缓存、消息、HTTP 下游
运行时:JVM/进程、线程池、连接池
容器/主机:CPU、内存、重启、网络、磁盘
下钻:日志、Trace、Runbook

先放结论型面板,再放定位细节。几十张无层次折线图会降低排障速度。

变量与查询

变量用于选择环境、集群、Namespace、服务和实例。变量查询要限制范围,避免加载数十万 label values。面板查询应:

  • 使用合适的 $__rate_interval 和时间窗口。
  • 聚合前先过滤服务/环境。
  • 显示单位、Legend、阈值和无数据含义。
  • 区分 0、No data、查询失败。
  • 对昂贵公共查询使用 Recording Rule。

关联日志和 Trace

通过 Data links、Derived fields 和 Exemplars,可从高延迟指标跳到同时间 Trace,再按 trace_id 找日志。所有后端必须使用一致服务名、环境、版本和实例标签,否则跳转只是形式存在。

Dashboard 即代码

Dashboard、Folder、数据源和告警应进入 Git,通过 provisioning/Terraform 等发布。至少记录:

  • Dashboard UID 和负责人。
  • 适用数据源及必需指标。
  • 变量与默认时间范围。
  • 变更原因、评审和回滚。
  • 生产查看、编辑和管理权限。

Grafana Alerting

Grafana Alerting 可跨多个数据源创建规则和通知策略。若同时使用 Prometheus/vmalert 规则,应明确权威来源,避免同一条件重复告警。告警规则不要依赖只在浏览器里存在的临时变量。

常见问题

现象 检查方向
整个数据源无数据 数据源 URL、DNS、TLS、认证、租户和后端健康
只有某服务无数据 标签名称、变量值、采集 Target、时间范围
Dashboard 很慢 查询范围、正则、高基数、面板数量、后端并发
用户能看到不该看的数据 Folder 权限不等于后端租户隔离,检查数据源权限
告警与面板结果不同 数据源、时间窗口、Reduce/Expression 和评估间隔

官方参考:Grafana IntroductionGrafana Alerting