Skip to content

入门:数据源、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 四支柱详解)。