4. Grafana 基础:核心概念与配置
Grafana 是 SRE 和混沌工程场景下最常用的可视化与监控分析平台。在 GameDay 演练中,Grafana 承担着实时展示容量水位、故障注入效果以及基线偏离情况的核心角色。本节将系统介绍 Grafana 的基本概念、数据源配置方法以及面板与仪表盘的组织逻辑。
4.1 Grafana 简介
Grafana 是一个开源的可观测性与数据可视化平台,支持从 Prometheus、InfluxDB、Elasticsearch、CloudWatch 等多种数据源中查询、分析并展示时序数据。其核心能力包括:
- 多数据源聚合:在同一仪表盘中混合查询不同后端的数据。
- 灵活的查询编辑器:支持 PromQL、SQL、Lucene 等多种查询语言。
- 丰富的面板类型:时间序列图、统计图、表格、热力图、状态历史等。
- 告警引擎:基于面板查询条件触发告警规则。
- 团队协作与权限管理:支持组织、团队、文件夹级别的权限控制。
GameDay 场景提示: 在演练中,Grafana 通常作为“单一玻璃面板”,同时展示基础设施指标(CPU/内存/网络)、应用层指标(延迟/错误率/吞吐量)以及混沌实验状态,帮助团队快速定位异常。
4.2 Grafana 数据源配置
数据源是 Grafana 与后端监控系统之间的桥梁。在 GameDay 演练环境中,最常用的数据源是 Prometheus(存储基础设施与应用指标)和 Loki(存储日志)。以下是标准配置流程:
4.2.1 数据源配置步骤
- 进入配置页面:点击左侧齿轮图标 → “Data Sources” → “Add data source”。
- 选择数据源类型:从列表中选择 Prometheus、InfluxDB、Elasticsearch 等。
- 填写连接参数:URL(如
http://prometheus-server:9090)、Access(Server 或 Browser)、认证方式(Basic Auth / )。 - 测试与保存:点击 “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)。
- 链接与注释:关联其他仪表盘或添加事件标记(如部署、混沌实验开始/结束)。
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 演练的可视化核心,其数据源配置决定了指标数据的可达性,面板与仪表盘的组织方式直接影响故障定位效率。掌握数据源连接、面板类型选择以及仪表盘变量设计,是构建容量水位基线视图的前提。后续章节将基于本章的基础概念,深入讲解如何设计面向混沌工程的容量水位仪表盘。