入门:数据源、Dashboard 与 LGTM 全家桶
基于 Grafana 11.x · 核于 2026-08
速查
- 是什么:Grafana 是开源可观测性可视化平台(2014 年由 Torkel Ödegaard 创建),本身不采集数据,而是连接 100+ 数据源(Prometheus/Loki/Tempo/ES/MySQL/CloudWatch),用统一 Dashboard 把指标/日志/追踪聚合呈现。
- 核心模型:①数据源(DataSource)——连接后端的「数据库」(Prometheus/ES/Loki),查询用各自的查询语言(PromQL/LogQL/TraceQL);②Dashboard——组织多个 Panel 的画布,带变量、注解、时间范围;③Panel——单个可视化单元(time series/stat/bar gauge/table/geomap/node graph)。
- 变量(Variables):Dashboard 顶部下拉框,实现联动——选
$service后所有 Panel 查询自动替换该变量,一个 Dashboard 复用多个维度。 - 统一 Alerting:新版 Grafana 把告警能力内化——Alert Rule(条件 + for)+ Contact Point(邮件/钉钉/PagerDuty)+ Notification Policy(路由分组),不再依赖外部 Alertmanager(虽仍可对接)。
- LGTM 生态:Grafana 自研/收购的可观测性后端——Loki(日志聚合,像 Prometheus 的日志版)、Grafana(可视化)、Tempo(分布式追踪)、Mimir(Prometheus 长期存储);2024 年收购 Pyroscope(持续剖析)补齐第四支柱。
- 社区生态:Grafana.com 有数千现成 Dashboard JSON(Node Exporter Full、K8s 监控)可导入;Plugin 市场扩展数据源(ClickHouse/MongoDB)和面板类型。
- 与 Prometheus 的关系:Prometheus 采集存储 + PromQL,Grafana 可视化——两者是云原生监控事实标准组合(Prometheus 作数据源,Grafana 画大盘)。
- 部署形态:①开源版(自托管,核心可视化);②Grafana Enterprise(企业功能 RBAC/SSO/Audit);③Grafana Cloud(SaaS,含 Loki/Tempo/Mimir 全套托管)。
一、Grafana 是什么:数据源中立的可视化层
监控/可观测性工具多如牛毛——Prometheus 存指标、ES/Loki 存日志、Jaeger/Tempo 存追踪、MySQL 存业务数据。每个工具自带 UI 都很简陋(Prometheus 的 /graph、ES 的 Kibana)。Grafana 的核心价值是统一可视化层:连接所有这些数据源,在一个 UI 里画大盘、查日志、看追踪,避免「每个工具一个面板」的碎片化。
┌─ Grafana(可视化层,不存数据)──────────────┐
│ Dashboard 1 Dashboard 2 Dashboard 3 │
│ │ │ │ │
│ Panel/Panel Panel Panel │
└─────┼────────────┼────────────┼──────────────┘
│ │ │
┌─────▼────────────▼────────────▼──────────────┐
│ 数据源插件(100+) │
│ Prometheus Loki Tempo ES MySQL CloudWatch│
└─────┬────────────┬────────────┬──────────────┘
│ │ │
指标库 日志库 追踪库/业务库- 数据源中立:Grafana 不绑定某个后端——同一个 Dashboard 可以同时查 Prometheus(指标)和 Loki(日志),点指标曲线跳转到对应日志(Exemplar + traceID 关联)。
- 查询语言透传:每个数据源用各自的查询语言(Prometheus 用 PromQL、Loki 用 LogQL、ES 用 Lucene/KQL、MySQL 用 SQL)——Grafana 不抽象统一语言,而是让用户用数据源的原生语言。
二、Dashboard 与 Panel:可视化的基本单元
- Dashboard:一组 Panel 的集合,带时间范围选择器、变量下拉框、注解、刷新间隔。一个 Dashboard 通常聚焦一个场景(如「K8s 集群总览」「订单服务延迟」)。
- Panel 类型(常用):
- Time series:最常用,折线图,画时序指标。
- Stat:单个大数字 + 阈值颜色(如「当前在线用户 1234」)。
- Bar gauge:多维度条形(如「各服务 CPU 占用」)。
- Table:表格,适合多列数据(如「各实例状态」)。
- Geomap:地理地图(如「各区域请求数」)。
- Node graph:节点关系图(如「服务调用拓扑」/「分布式追踪链路」)。
- Flame graph:火焰图(Pyroscope 剖析专用)。
- Logs:日志流(Loki 数据源专用,按时间线展示日志行)。
- Trace view:追踪瀑布图(Tempo/Jaeger 数据源)。
- Panel 配置:数据源 + 查询 + 可视化(轴/单位/颜色/阈值)+ Alert(直接在 Panel 上挂告警)。
三、变量与联动:一个 Dashboard 复用多维度
变量是 Grafana 的「参数化」机制——Dashboard 顶部下拉框选 $service,所有 Panel 的查询自动把 $service 替换成选中值:
查询:sum(rate(http_requests_total{service="$service"}[5m]))
变量 $service = [订单服务, 用户服务, 支付服务] // 下拉选一个
→ 选「订单服务」时所有 Panel 自动查 service="订单服务"- 变量类型:①Query 变量(从数据源动态查可选值,如
label_values(service)列出所有 service);②Custom(手动填可选值);③Text box(自由输入);④Interval/Datasource(时间间隔/数据源切换)。 - 联动:变量改变 → 所有引用该变量的 Panel 重新查询——实现「选 service 看所有相关指标」的交互。
- 链式变量:
$region→$cluster(cluster 变量查询用$region过滤)——级联下拉。
四、统一 Alerting:内化的告警能力
新版 Grafana(8.0+)把告警能力内化,不再完全依赖外部 Alertmanager:
┌─ Grafana Alerting ──────────────────────────┐
│ Alert Rule(条件 + for + 数据源) │
│ ↓ 触发 │
│ Contact Point(邮件/钉钉/PagerDuty/Slack) │
│ ↓ 路由 │
│ Notification Policy(按 label 分组/去重/抑制)│
│ ↓ 静默 │
│ Silence(维护窗口临时屏蔽) │
└─────────────────────────────────────────────┘- 多数据源告警:一条规则可以基于 Prometheus、Loki、CloudWatch 等任意数据源——告警 UI 统一。
- 兼容 Alertmanager:Grafana 可作为 Alertmanager 的接收方,也可把告警转发到外部 Alertmanager(既有投资不浪费)。
- 告警状态机:Normal → Pending(条件成立未过 for)→ Firing(过 for 触发)→ Resolved(条件不再成立)。
五、LGTM 生态:Grafana 的可观测性全家桶
Grafana 公司(Grafana Labs)通过自研和收购,构建了覆盖可观测性四支柱的后端栈,统一在 Grafana UI 下:
| 组件 | 支柱 | 定位 | 类比 |
|---|---|---|---|
| Loki | 日志 | 日志聚合(仅索引 label,不索引内容) | 「Prometheus 的日志版」/ 轻量 ES |
| Tempo | 追踪 | 分布式追踪后端(存 trace,按 traceID/属性查) | Jaeger 替代 |
| Mimir | 指标 | Prometheus 兼容的长期存储(多租户、水平扩展) | Thanos/Cortex 商业版 |
| Pyroscope | 剖析 | 持持续剖析(CPU/内存火焰图) | 2024 收购,补齐第四支柱 |
- 关联查询:四支柱共享 traceID/label——点指标曲线(Prometheus/Mimir)的 Exemplar 跳到对应 trace(Tempo),再从 trace 的 span 日志跳到日志行(Loki),形成「指标 → 追踪 → 日志」的根因分析闭环。
- 成本优化:Loki 不索引日志内容(只索引 label),存储成本远低于 ES(全索引);Mimir 用对象存储,长期指标成本低于本地 TSDB。
六、生态扩展:Dashboard 即代码与插件市场
- Dashboard 即代码:企业级用 Grafonnet(Jsonnet 库)或 Terraform Provider 生成 Dashboard JSON,版本管理 + CI 部署——避免手动改面板难回滚。
- Plugin 市场:Grafana.com 有数百插件——数据源(ClickHouse/MongoDB/Datadog)、面板类型(Apache ECharts/动态文本)、App(预置场景面板)。
- 企业版功能:RBAC(角色权限)、SSO(SAML/OAuth)、Audit log、Reporting(定时 PDF 报告)、Access control——开源版无,企业版/Cloud 有。
下一步
理解了 Grafana 的数据源模型与 LGTM 全家桶后,下一步深入两个核心维度——Dashboard 与告警(Panel 类型 + Variables 联动 + 统一 Alerting)与LGTM 生态(Loki/Tempo/Mimir/Pyroscope 四支柱详解)。