2. Grafana 基础回顾:数据源配置与面板仪表盘概念

在进入黄金指标面板复用之前,必须夯实 Grafana 最核心的两个基础能力:数据源配置与面板/仪表盘的基本概念。本章将快速梳理 Prometheus、InfluxDB、Elasticsearch 三种主流数据源的接入方式,并厘清 Panel、Dashboard、Row 等核心对象的层级关系。

2.1 数据源配置:三大引擎的接入要点

Grafana 通过数据源插件与后端存储通信。配置路径统一为:Configuration → Data Sources → Add data source。不同数据源的连接参数差异较大,下表列出最关键的配置字段:

数据源类型 默认端口 必填字段 典型 URL 示例 认证方式
Prometheus 9090 HTTP URL http://prometheus.example.com:9090 Basic Auth / 无认证
InfluxDB 8086 HTTP URL、Database、User、Password http://influxdb.example.com:8086 Basic Auth +
Elasticsearch 9200 HTTP URL、Index name、Time field name http://es.example.com:9200 Basic Auth /
💡 配置建议:Prometheus 数据源建议开启 Scrape interval 与 Query timeout 的显式设置,避免面板因超时出现空白。InfluxDB 使用 Flux 查询时,需在数据源版本中选择 “Flux” 而非 “InfluxQL”。

2.2 面板与仪表盘的核心概念

Grafana 的可视化体系由三个层级构成:Dashboard(仪表盘)→ Row(行)→ Panel(面板)。理解这个层级是复用面板的前提。

  • Dashboard:顶级容器,包含变量、时间范围、布局与多个 Row。
  • Row:逻辑分组单元,用于将相关 Panel 组织在同一行或折叠区域。
  • Panel:最小可视化单元,包含查询、图表类型、样式与告警规则。
Grafana 面板层级结构 Grafana 面板层级结构 Dashboard(仪表盘) Row(行 / 逻辑分组) Panel(面板) 查询 + 图表 + 告警 Panel(面板) 查询 + 图表 + 告警 Panel(面板) 查询 + 图表 + 告警 一个 Dashboard 包含多个 Row,每个 Row 包含 1~N 个 Panel

2.3 面板的核心构成要素

每个 Panel 由以下四部分构成,理解它们才能高效复用:

  1. Query(查询):从数据源获取时序数据或日志数据,支持 PromQL、InfluxQL/Flux、ES DSL 等。
  2. Visualization(可视化):图表类型,如 Time series、Stat、Table、Bar gauge、Pie chart 等。
  3. Options(选项):控制图表样式、单位、阈值、颜色、图例等。
  4. Alert(告警):基于查询结果定义告警规则,支持通知渠道。
🔑 复用关键:面板复用本质上是将 Query 与 Options 的配置模板化,通过 Dashboard 变量(Variables)实现数据源、指标、标签的动态替换。

2.4 三种数据源的查询语言对比

不同数据源使用不同的查询语法,下表对比最常用的查询模式:

数据源 查询语言 典型查询示例 适用场景
Prometheus PromQL rate(http_requests_total[5m]) 指标聚合、速率计算
InfluxDB Flux from(bucket:"telegraf") |> range(start:-1h) |> filter(fn:(r) => r._measurement == "cpu") 灵活管道式查询
Elasticsearch Lucene / ES DSL {"query":{"match":{"status":"error"}}} 日志搜索与聚合
三种数据源查询流程对比 三种数据源查询流程对比 Prometheus PromQL 即时/范围查询 InfluxDB Flux 管道式数据流 Elasticsearch ES DSL JSON 查询 Grafana Panel 统一渲染

2.5 数据源配置的常见陷阱

⚠️ 避坑指南:
  • Prometheus 数据源:如果面板显示 “No data”,首先检查数据源 URL 是否可达,其次确认 Prometheus 的 --web.external-url 是否与 Grafana 配置一致。
  • InfluxDB 数据源:使用 Flux 时,必须确保数据源版本选择 “Flux”,且 Bucket 名称正确(非 Database 名称)。
  • Elasticsearch 数据源:Time field name 必须设置为 @timestamp 或实际时间字段,否则面板无法按时间过滤。

2.6 面板复用的前置条件

在开始复用面板之前,请确保你的 Grafana 环境满足以下条件:

  • ✅ 所有目标数据源已正确配置并测试通过(Data Source → Test)。
  • ✅ 理解 Dashboard 变量(Variables)的用法,至少掌握 Query 与 Custom 两种变量类型。
  • ✅ 熟悉 Panel 的 JSON Model 结构(Dashboard Settings → JSON Model),这是面板复用的底层数据格式。
  • ✅ 掌握 Panel 的复制(Duplicate)与导入(Import)功能,这是最基础的复用操作。