4. Grafana 基础:核心概念与配置

Grafana 是 SRE 和混沌工程场景下最常用的可视化与监控分析平台。在 GameDay 演练中,Grafana 承担着实时展示容量水位、故障注入效果以及基线偏离情况的核心角色。本节将系统介绍 Grafana 的基本概念、数据源配置方法以及面板与仪表盘的组织逻辑。

4.1 Grafana 简介

Grafana 是一个开源的可观测性与数据可视化平台,支持从 Prometheus、InfluxDB、Elasticsearch、CloudWatch 等多种数据源中查询、分析并展示时序数据。其核心能力包括:

  • 多数据源聚合:在同一仪表盘中混合查询不同后端的数据。
  • 灵活的查询编辑器:支持 PromQL、SQL、Lucene 等多种查询语言。
  • 丰富的面板类型:时间序列图、统计图、表格、热力图、状态历史等。
  • 告警引擎:基于面板查询条件触发告警规则。
  • 团队协作与权限管理:支持组织、团队、文件夹级别的权限控制。
GameDay 场景提示: 在演练中,Grafana 通常作为“单一玻璃面板”,同时展示基础设施指标(CPU/内存/网络)、应用层指标(延迟/错误率/吞吐量)以及混沌实验状态,帮助团队快速定位异常。
Grafana 核心架构与数据流 Grafana 核心架构与数据流 Prometheus InfluxDB Elasticsearch CloudWatch Grafana 数据源抽象层(统一查询接口) 查询编辑器 + 面板渲染引擎 仪表盘(Dashboard)与面板(Panel) 数据源 → 抽象层 → 查询引擎 → 面板 → 仪表盘,构成完整可视化链路

4.2 Grafana 数据源配置

数据源是 Grafana 与后端监控系统之间的桥梁。在 GameDay 演练环境中,最常用的数据源是 Prometheus(存储基础设施与应用指标)和 Loki(存储日志)。以下是标准配置流程:

4.2.1 数据源配置步骤

  1. 进入配置页面:点击左侧齿轮图标 → “Data Sources” → “Add data source”。
  2. 选择数据源类型:从列表中选择 Prometheus、InfluxDB、Elasticsearch 等。
  3. 填写连接参数:URL(如 http://prometheus-server:9090)、Access(Server 或 Browser)、认证方式(Basic Auth / )。
  4. 测试与保存:点击 “Save & Test”,确认返回绿色成功提示。
GameDay 演练配置示例:
数据源名称:GameDay-Prometheus
类型:Prometheus
URL:http://prometheus.monitoring.svc.cluster.local:9090
Access:Server(默认)
Scrape interval:15s
Query timeout:30s
HTTP Method:POST

4.2.2 常用数据源对比

数据源类型 适用场景 查询语言 GameDay 典型用途
Prometheus 基础设施、应用指标 PromQL CPU/内存/延迟/错误率水位线
InfluxDB 高写入吞吐的时序数据 InfluxQL / Flux 网络流量、自定义业务指标
Elasticsearch 日志与全文搜索 Lucene / ES DSL 故障日志聚合、错误堆栈分析
Loki 轻量日志聚合 LogQL 容器日志实时检索
CloudWatch AWS 云资源监控 CloudWatch Metrics 云上容量与弹性伸缩验证
配置注意事项: 在 GameDay 演练中,建议为每个数据源设置独立的查询超时(Query timeout)和最小时间间隔(Min time interval),避免因大范围查询导致 Grafana 响应缓慢。生产环境推荐使用 Server Access 模式,避免浏览器跨域问题。

4.3 Grafana 面板与仪表盘概念

面板(Panel)是 Grafana 中最基本的可视化单元,仪表盘(Dashboard)则是一个或多个面板的组合页面。理解两者的关系是构建有效监控视图的基础。

4.3.1 面板(Panel)

每个面板包含以下核心要素:

  • 查询(Query):从数据源获取数据的表达式,如 PromQL 的 rate(http_requests_total[5m])。
  • 可视化类型(Visualization):时间序列图、柱状图、表格、统计值、热力图、状态历史等。
  • 面板选项(Panel Options):标题、描述、图例位置、坐标轴单位、阈值颜色等。
  • 告警规则(Alert):基于查询结果触发告警通知。

4.3.2 仪表盘(Dashboard)

仪表盘是面板的容器,支持以下组织特性:

  • 行(Row):用于逻辑分组面板,可折叠/展开。
  • 变量(Variables):动态过滤条件,如环境(prod/staging)、服务名、实例 IP。
  • 时间范围选择器:全局控制所有面板的时间窗口。
  • 刷新策略:自动刷新间隔(如 10s、30s、1m)。
  • 链接与注释:关联其他仪表盘或添加事件标记(如部署、混沌实验开始/结束)。
面板与仪表盘层级关系 面板与仪表盘层级关系 仪表盘(Dashboard) 变量 + 时间控件 行 1:基础设施水位 面板:CPU 使用率 时间序列图 面板:内存使用率 统计值 + 仪表 面板:网络吞吐量 面积图 行 2:应用 SLO 与错误率 面板:请求延迟 P99 热力图 面板:错误率 时间序列 + 阈值 面板:吞吐量 柱状图

4.3.3 面板类型选择建议

可视化目标 推荐面板类型 GameDay 使用场景
趋势观察 Time series(时间序列图) CPU 水位在混沌实验中的变化曲线
当前值监控 Stat(统计值) 当前内存使用率是否超过 80% 阈值
多指标对比 Table(表格) 各实例的延迟、错误率、吞吐量汇总
分布分析 Heatmap(热力图) 请求延迟在不同时间段的分布
状态概览 State timeline(状态时间线) 混沌实验注入期间各服务的健康状态
容量水位 Gauge(仪表盘) CPU/内存接近容量基线的百分比
GameDay 最佳实践: 为每个演练场景创建专用的仪表盘文件夹(如 GameDay/2025-04-15),使用变量(如 $service、$instance)实现面板复用。在混沌实验开始前,通过注释功能标记“实验开始”时间点,便于事后复盘。

4.4 本章小结

Grafana 作为 GameDay 演练的可视化核心,其数据源配置决定了指标数据的可达性,面板与仪表盘的组织方式直接影响故障定位效率。掌握数据源连接、面板类型选择以及仪表盘变量设计,是构建容量水位基线视图的前提。后续章节将基于本章的基础概念,深入讲解如何设计面向混沌工程的容量水位仪表盘。