Prometheus_Grafana数据可视化
Grafana面板配置指南摘要
本文系统介绍了Grafana面板的核心配置方法,包含以下要点:
- 面板基础:详解Timeseries、Stat等8种面板类型及其适用场景
- 配置流程:从创建面板到设置PromQL查询、单位转换、阈值配色的完整步骤
- 监控模板:提供CPU/内存/磁盘/网络等20+常用PromQL表达式
- 动态变量:实现节点/网卡/分区等多级联动筛选
- 表格优化:字段合并、属性覆盖、值映射等高级技巧
- 可视化技巧:Bargauge仪表盘、Stat统计面板的专项配置
- 阈值规范:制定CPU(70%橙/80%红)、磁盘IO(10MB/s橙)等通用阈值标准
附快速参考卡:包含单位转换路径、变量语法、表格配置流程图等实用信息。
一、Grafana 面板(Panel)基础
1.1 什么是 Panel
- Panel(面板)是 Grafana 中最基本的可视化单元
- 每种面板类型都提供Query Editor,可对接不同数据源(如 Prometheus)
- 通过面板查询监控数据并以可视化方式展现
1.2 内置面板类型汇总
|
面板类型 |
说明 |
典型使用场景 |
|
Time series |
时间序列(默认/主要图形) |
CPU/内存/网络趋势图 |
|
Stat |
统计数据(单值展示) |
当前状态、总数 |
|
Bar gauge |
条形仪表盘 |
使用率对比展示 |
|
Gauge |
圆形仪表盘 |
百分比展示 |
|
Table |
表格 |
节点信息汇总 |
|
Pie chart |
饼状图 |
占比分析 |
|
Bar chart |
条形图 |
分类对比 |
|
Heatmap |
热力图 |
延迟分布 |
|
State timeline |
状态时间表 |
状态随时间变化 |
|
Text |
文本面板 |
支持 Markdown/HTML |
|
Dashboard list |
仪表盘列表 |
导航 |
|
Alert list |
告警列表 |
告警概览 |
二、Panel 核心配置项
2.1 面板创建流程
- Dashboard → 点击 Add Panel → 选择可视化类型
- 在 Query Editor 中输入 PromQL 表达式,选择数据源为 Prometheus
- 在右侧 Panel Options 调整面板名称、单位、颜色等配置
2.2 常用配置项速查
|
配置位置 |
功能 |
操作路径 |
|
面板标题 |
修改面板名称 |
Panel Options → Title |
|
数据单位 |
设置指标单位 |
Standard options → Unit |
|
最大/最小值 |
限制坐标轴范围 |
Standard options → Max / Min |
|
保留小数位 |
数字精度 |
Standard options → Decimals |
|
颜色方案 |
整体配色 |
Standard options → Color scheme |
|
阈值 |
分级配色阈值 |
Thresholds |
|
Tooltip 模式 |
鼠标悬停显示方式 |
Tooltip → Tooltip mode → All |
|
排序 |
Tooltip 数值排序 |
Tooltip → Values sort order |
|
图例展示 |
表格/列表/最大最小值 |
Legend → Mode → Table |
|
曲线别名 |
序列自定义名称 |
Options → Legend → Custom |
|
属性覆盖 |
对单个序列单独设置属性 |
Add field override |
2.3 常用单位选项
|
单位类型 |
路径 |
适用场景 |
|
|
Misc → Percent(0-100) |
CPU/内存/磁盘使用率(乘以100的) |
|
|
Misc → Percent |
使用率(0~1之间的值) |
|
|
Data → bytes(IEC) |
内存/磁盘大小(KiB/MiB/GiB) |
|
|
Data Rate → bytes/sec(SI) |
磁盘读写速率 |
|
|
Data Rate → bits/sec(SI) |
网络带宽 |
|
|
Data Rate → bits/sec(IEC) |
网络流量(精确值) |
|
|
Time → seconds(s) |
运行时长 |
2.4 曲线别名(Legend 自定义名称)
- 在 Query 的 Options → Legend → Custom 中设置
- 支持使用
{{标签名}}引用指标的标签值 - 示例:
{{instance}} CPU使用率→ 实际显示为prom-node01:9100 CPU使用率
2.5 属性覆盖(Add field override)
适用场景:同一 Panel 中多个序列单位不同时(如:总内存用 Bytes,使用率用 %)
操作步骤:
- 右侧最下方 →
Add field override - 选择
Fields with name→ 选定目标序列 Add override property→ 设置该序列专属的单位/颜色/阈值
三、常用 PromQL 表达式汇总
3.1 CPU 监控
# CPU 整体使用率%(乘以100)
(1 - avg(rate(node_cpu_seconds_total{job=~"node_exporter",mode="idle"}[5m])) by (instance)) * 100
# CPU user 模式使用率
avg(rate(node_cpu_seconds_total{job=~"node_exporter",mode="user"}[5m])) by (instance) * 100
# CPU 核心数
count(node_cpu_seconds_total{mode="idle",job="node_exporter"}) by (instance)
3.2 内存监控
# 内存使用率%
(node_memory_MemTotal_bytes{job=~"node_exporter"} - node_memory_MemAvailable_bytes{job=~"node_exporter"})
/ node_memory_MemTotal_bytes{job=~"node_exporter"} * 100
# 总内存
node_memory_MemTotal_bytes{job="node_exporter"}
3.3 磁盘监控
# 分区使用率%(根分区)
(node_filesystem_size_bytes{job="node_exporter",mountpoint="/"} - node_filesystem_avail_bytes{job="node_exporter",mountpoint="/"})
/ node_filesystem_size_bytes{job="node_exporter",mountpoint="/"} * 100
# 磁盘写速率
max(rate(node_disk_written_bytes_total{job=~"node_exporter"}[5m])) by (instance)
# 磁盘读速率
max(rate(node_disk_read_bytes_total{job=~"node_exporter"}[5m])) by (instance)
3.4 网络监控
# 下载带宽(bits/sec)
max(rate(node_network_receive_bytes_total{job=~"node_exporter"}[5m]) * 8) by (instance)
# 上传带宽(bits/sec)
max(rate(node_network_transmit_bytes_total{job=~"node_exporter"}[5m]) * 8) by (instance)
# 结合动态变量(instance + nic)的入流量
max(rate(node_network_receive_bytes_total{job=~"node_exporter",instance=~"$instance",device=~"$nic"}[5m]) * 8) by (instance)
3.5 节点状态和运行时间
# 节点状态(1=正常,0=异常)
up{instance=~"$instance"}
# 节点运行时长(秒)
sum(time() - node_boot_time_seconds{job=~"node_exporter",instance=~"$instance"}) by (instance)
# 节点基本信息(hostname/内核版本)
node_uname_info{job=~"node_exporter"}
3.6 流量同环比分析
# 入流量环比(最近1h vs 过去1h)
(rate(node_network_receive_bytes_total{...}[1h])
- rate(node_network_receive_bytes_total{...}[1h] offset 1h))
/ rate(node_network_receive_bytes_total{...}[1h] offset 1h) * 100
四、Grafana 动态变量
4.1 动态变量的作用
- 当 Dashboard 中面板数量多、节点数量多时,通过下拉菜单快速定位特定节点
- 用户选定变量后,所有面板自动刷新,只展示该变量对应的数据
- 可以按
instance(实例)、job(任务)、env(环境)等维度过滤
4.2 创建动态变量步骤
入口:Dashboard 右上角 → 仪表盘设置 → 变量 → Add Variable
常用变量类型:
|
变量类型 |
说明 |
配置方式 |
|
|
手动输入固定选项 |
直接填写选项值 |
|
|
从数据源查询动态获取 |
填写 PromQL 查询标签值 |
通过 up 获取所有 job 或 instance 的方法:
- Query Type:
Label Values - Label:
instance(或job) - Metric:
up
4.3 在 Panel 中使用变量
- 在 PromQL 中以
$变量名或${变量名}引用 - 示例:
node_load1{instance=~"$instance"} - 变量未关联到面板表达式时,切换变量不会触发面板更新
4.4 动态变量嵌套
概念:一个变量的候选值依赖于另一个变量当前选定的值
示例场景:
- 变量
$instance:选择节点(prom-node01/node02/node03) - 变量
$nic:随$instance动态更新,只显示该节点的网卡列表
NIC 网卡变量配置:
- 变量名:
nic - 类型:
Query - Query Type:
Label Values - Label:
device - Metric:
node_network_info - Label Filter:
instance =~ $instance+device =~ eth.*
Mountpoint 分区变量配置:
- 变量名:
Mountpoint - 类型:
Query - Label:
mountpoint - Metric:
node_filesystem_size_bytes - Label Filter:
instance =~ $instance+mountpoint !~ /run.*(排除不需要的分区)
五、Grafana 表格(Table)
5.1 表格创建步骤
- 创建 Panel → 选择
Table可视化类型 - 添加多条查询语句(每条对应一列数据)
- 将每条查询的 Format 修改为 Table,Type 修改为 Instant
5.2 表格合并(Merge 转换)
问题:多条查询语句各自生成独立表格,需要合并为一张
步骤:
- 点击
Transformations→Add transformation - 选择
Merge series/tables(合并具有相同维度的多张表为一张)
5.3 字段整理(Organize Fields)
步骤:
Transformations→Add transformation→Organize fields by name- 可以:隐藏不需要的字段、重命名字段、调整顺序
5.4 表格字段属性覆盖
节点状态字段设置示例:
|
属性 |
配置内容 |
|
值映射 |
|
|
字体颜色 |
Cell Options → Cell type → Colored text |
各字段参考配置:
|
字段 |
PromQL 指标 |
单位 |
说明 |
|
节点状态 |
|
值映射(0/1) |
值映射 + 颜色 |
|
节点运行时间 |
|
seconds(s) | |
|
节点名称 |
|
无 |
取 nodename 字段 |
|
内核版本 |
|
无 |
取 release 字段 |
|
总内存 |
|
bytes(IEC) | |
|
CPU 核心数 |
|
无 | |
|
CPU 使用率% |
|
Percent(0-100) |
Gauge,阈值70%橙/80%红 |
|
内存使用率% |
同上格式 |
Percent(0-100) |
同 CPU 配置 |
|
分区使用率% |
根分区空间公式 |
Percent(0-100) |
同 CPU 配置 |
|
磁盘写速率 |
|
bytes/sec(SI) |
阈值 10MB/s 橙/20MB/s 红 |
|
磁盘读速率 |
|
bytes/sec(SI) |
同磁盘写速率 |
|
下载带宽 |
|
bits/sec(SI) |
阈值 30MB/s 橙/50MB/s 红 |
|
上传带宽 |
|
bits/sec(SI) |
同下载带宽 |
六、Bar Gauge 仪表盘
6.1 适用场景
- 展示单个实例的多项资源使用率(CPU / 内存 / 磁盘)
- 条形方式直观对比,支持阈值渐变配色
6.2 创建步骤
- 创建 Panel → 选择
Bar gauge - 添加查询:CPU 使用率、内存使用率、磁盘使用率
- 面板标题使用变量:
[$instance]实例资源总览 - 样式配置:
-
Bar gauge → Orientation → Horizontal(水平方向)Display mode → Retro LCD(复古 LCD 风格)Value display → Text color
七、Stat 统计面板
7.1 常规统计面板(单值展示)
|
面板名称 |
PromQL 表达式 |
配置要点 |
|
节点状态 |
|
Graph mode: None;值映射 0=异常(红)/1=正常(绿) |
|
节点运行时长 |
|
Graph mode: None;单位 seconds(s) |
|
CPU 核心数 |
|
Graph mode: None |
|
节点总内存 |
|
Graph mode: None;单位 bytes(IEC) |
Graph mode: None 表示不显示背景趋势图,只显示数值
7.2 带背景色 Stat 面板
适用场景:入/出流量、同环比分析
关键配置:
Stat styles → Color mode → Background Gradient(带渐变背景色)Standard options → Color scheme → Single color(自定义背景颜色)
同环比 Stat 面板额外配置:
- 单位:
Percent - 方向:
Standard options → Orientation → Horizontal - 阈值:Base 红色,
0绿色(正增长绿色,负增长红色)
八、核心概念速查
8.1 Grafana 配置层次
Dashboard(仪表盘)
└── Row(行,用于组织 Panel)
└── Panel(面板)
├── Query(PromQL 查询)
├── Visualization(可视化类型)
├── Panel Options(标题、链接)
├── Standard options(单位、最大最小值)
├── Thresholds(阈值配色)
├── Legend(图例)
├── Tooltip(悬停提示)
├── Transformations(数据转换)
└── Add field override(字段属性覆盖)
8.2 Transformations 常用转换器
|
转换器 |
作用 |
|
|
将多条查询的表格合并为一张 |
|
|
隐藏/重命名/排序字段 |
|
|
基于现有字段计算新字段 |
|
|
按值过滤行数据 |
8.3 值映射(Value Mappings)
- 路径:Panel →
Value mappings → Add Value mappings - 支持将原始数值映射为文字说明并绑定颜色
- 示例:
1 → 节点状态正常(绿色);0 → 节点状态异常(红色)
8.4 Thresholds 阈值颜色规则
|
阈值设置 |
含义 |
|
Base(绿色) |
0 到第一个阈值之间 |
|
第一个值(橙色) |
超过该值进入橙色区间 |
|
第二个值(红色) |
超过该值进入红色区间 |
常用阈值:
- CPU/内存使用率:
70%橙,80%红 - 磁盘读写速率:
10MB/s(10485760) 橙,20MB/s(20971520) 红 - 网络带宽:
30MB/s(30485760) 橙,50MB/s(52428800) 红
九、快速参考卡
面板可视化类型:
Time series → 趋势图(默认,最常用)
Table → 表格(汇总信息)
Stat → 单值统计(状态、总量)
Bar gauge → 条形仪表(使用率对比)
Gauge → 圆形仪表
常用单位路径:
CPU/内存使用率 → Misc → Percent(0-100)
内存/磁盘大小 → Data → bytes(IEC)
磁盘读写速率 → Data Rate → bytes/sec(SI)
网络带宽 → Data Rate → bits/sec(SI)
运行时长 → Time → seconds(s)
动态变量:
入口:Dashboard 设置 → 变量 → Add Variable
类型:Query(动态)/ Custom(固定选项)
引用:PromQL 中用 $变量名 或 ${变量名}
获取所有 instance:Label Values → instance → Metric: up
嵌套变量:Label Filter 中引用父变量 $instance
Table 配置流程:
1. 添加多条查询 → Format: Table,Type: Instant
2. Transformations → Merge series/tables(合并)
3. Transformations → Organize fields(重命名/隐藏字段)
4. Add field override(单独设置字段属性)
5. Value mappings(值映射 + 颜色)
Cell 颜色类型:
Colored text → 字体颜色跟随阈值
Colored background → 背景色跟随阈值
Gauge → 条形进度颜色
同环比公式:
(最近N小时 - 过去N小时)/ 过去N小时 * 100
PromQL: offset 关键字获取过去时段数据
阈值:Base 红,0 绿(正增长=绿,负增长=红)
更多推荐


所有评论(0)