配置数据源
- 根据下图导航,点击按钮进入添加数据源界面
- 在数据源中选择prometheus
- 输入prometheus地址
- 滚动到最下面,点击
Save & test
- 如果出现以下绿色提示,则说明添加数据源成功
创建Dashboards
- 按照如下图向导,点击Create Dashboard
- 进入Dashboard页面后,点击
Add visualization
, 创建视图
- 进入Visualization界面后,选择prometheus数据源
- 进入Panel 编辑页面,即可进行监控内容编辑
构建表格
构建表格,这里我采用监控系统参数作为示例,包括节点地址,系统版本号,主机时间,运行时间,cpu核数,内存大小,cpu使用率,内存使用率.
操作过程
- 根据下图引导,选择表格视图,并设置Panel名称
- 在查询窗口,填写号查询语句,并配置显示选项,点击运行,可以在以表格形式展示监控数据,引导过程见下图
- 从图中可以看出,这里展示的表格信息有点多,我只要其中几项,可以这样配置,如下图,选择
Transform data
,点击Add tranformation
- 在右边弹出搜索框,搜索
Filter fields by name
,点击添加到tranformation
- 添加成功后,可以看到有很多监控项,如下图,默认是全部打勾显示,在这里可以去掉勾隐藏
- 图中展示表头是默认英文属性值,可以自定义,如下图,点击
Add another transformation
- 在右侧弹出框搜索
Organize fields by name
,点击进入
- 回到
Transform data
,即可看到如下图界面,去掉不需要显示的项,在Orgnize fields by name中,重命名表头,最终呈现效果如图中上面的红框。
示例脚本
以上就是创建表格的基本过程,下面按照示例参数,提供运行脚本:
- 运行时间
(time() - node_boot_time_seconds{job="prometheus"}) / (24*60*60)
- 内存大小
node_memory_MemTotal_bytes{job="prometheus"} / (1024 * 1024 * 1024)
- cpu核数
count(node_cpu_seconds_total{mode="system", job="prometheus"})
- 系统版本号
label_replace(node_os_info{job="prometheus", pretty_name!="Windows"}, "pretty_name", "$1", "pretty_name", "(.*)")
- 内存使用率
(1 - (node_memory_MemAvailable_bytes{job="prometheus"} / (node_memory_MemTotal_bytes))) * 100
- cpu使用率
(1- sum(increase(node_cpu_seconds_total{mode="idle",job="prometheus"}[5m]))/sum(increase(node_cpu_seconds_total[5m]))) * 100
- 系统时间
node_time_seconds{job="prometheus"} * 1000
全部配置好后,显示效果如下图:
数据格式化
上图结果中有个问题,系统时间是长整型,这对用户很不友好,下面是格式调整
- 在面板右侧找到
Add field overider
- 选择
Field with name
添加
- 下拉框找到需要格式化的“系统时间”
- 选择
Standard options > Unit
,格式化整型
- 搜索找到
Date & time / Datetime ISO
,对数据进行格式化
- 格式化后效果如下图
构建折线图
操作过程
- 如下图,在Dashbard页面上点击
Add
,选择Visualization
,添加Panel
- 进入Panel页面后,右侧选择
Time series
,设置Panel标题
- 在中间下方主面板Query上填写查询语句,可查询后可以看到折线图,但是这时候的折线图实例是对象数据,要在Option中选择Custom来定义示例显示字段
- 在Option中,设置Legend为
{{instance}}
,即可显示为节点地址
- 这时候还没有纵坐标说明,可以在右侧找到Axis,修改Label,即可在左侧展示纵坐标标签
- 当前panel展示效果如下:
示例脚本
- 内存使用率
100 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100
- cpu使用率
100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
- 网络上行速率
rate(node_network_transmit_bytes_total{device="ens160"}[5m])
- 网络下行速率
rate(node_network_receive_bytes_total{device="ens160"}[5m])
- 磁盘读io速率
rate(node_disk_read_bytes_total{device="sda"}[5m])
- 磁盘写io速率
rate(node_disk_written_bytes_total{device="sda"}[5m])
注意:以上配置ens160网卡, sda磁盘,请按照自己实际服务器配置
设置刷新和保存
不管是表格还是折线图,在设置好panel后,都要设置刷新频率和保存。
- 点击右上角的
Save
,按照向导保存单个的panel
- 设置单个panel折线图横轴的时间范围
- 设置整个Dashboard的刷新频率
- 保存整个Dashboard
通过在Dashboard面板中拖拽调整Panel布局,最终形成以下Dashboard显示效果效果