变化趋势:Graph面板
参考:
https://www.prometheus.wang/grafana/use_graph_panel.html
Graph面板通过折线图或者柱状图的形式,能够展示监控样本数据在一段时间内的变化趋势,因此其天生适合Prometheus中的Counter和Gauge类型的监控指标的可视化,对于Histogram类型的指标也可以支持,不过可视化效果不如Heatmap Panel来的直观。
使用Graph面板可视化Counter/Gauge
以主机为例,CPU使用率的变化趋势天然适用于使用Grapn面板来进行展示:【Prometheus Counter可视化】
在Metrics选项中,我们使用以下PromQL定义如何从Prometheus中读取数据:
1 - (avg(irate(node_cpu{mode='idle'}[5m])) without (cpu))
如下所示:【Metrics选项】
根据当前Prometheus的数据采集情况,该PromQL会返回多条时间序列(在示例中会返回3条)。Graph面板会从时间序列中获取样本数据,并绘制到图表中。 为了让折线图有更好的可读性,我们可以通过定义Legend format为{{ instance }}控制每条线的图例名称:【使用Legend format模板化图例】
由于当前使用的PromQL的数据范围为0~1表示CPU的使用率,为了能够更有效的表达出度量单位的概念,我们需要对Graph图表的坐标轴显示进行优化。如下所示,在Axes选项中可以控制图标的X轴和Y轴相关的行为:【Axes选项】
默认情况下,Y轴会直接显示当前样本的值,通过Left Y的Unit可以让Graph面板自动格式化样本值。当前表达式返回的当前主机CPU使用率的小数表示,因此,这里选择单位为percent(0.0.-1.0)。除了百分比以外,Graph面板支持如日期、货币、重量、面积等各种类型单位的自动换算,用户根据自己当前样本的值含义选择即可。
除了在Metrics设置图例的显示名称以外,在Graph面板的Legend选项可以进一步控制图例的显示方式,如下所示:【Legend选项】
Options中可以设置图例的显示方式以及展示位置,Values中可以设置是否显示当前时间序列的最小值,平均值等。 Decimals用于配置这些值显示时保留的小数位,如下所示:【Legend控制图例的显示示例】
除了以上设置以外,我们可能还需要对图表进行一些更高级的定制化,以便能够更直观的从可视化图表中获取信息。在Graph面板中Display选项可以帮助我们实现更多的可视化定制的能力,其中包含三个部分:Draw options、Series overrides和Thresholds。
【Display选项】
Draw Options用于设置当前图标的展示形式、样式以及交互提示行为。其中,Draw Modes用于控制图形展示形式:Bar(柱状)、Lines(线条)、Points(点),用户可以根据自己的需求同时启用多种模式。Mode Options则设置各个展示模式下的相关样式。Hover tooltip用于控制当鼠标移动到图形时,显示提示框中的内容。
如果希望当前图表中的时间序列以不同的形式展示,则可以通过Series overrides控制,顾名思义,可以为指定的时间序列指定自定义的Draw Options配置,从而让其以不同的样式展示。例如:【Series overrides】
这里定义了一条自定义规则,其匹配图例名称满足/localhost/的时间序列,并定义其以点的形式显示在图表中,修改后的图标显示效果如下:【Series overrides效果】
Display选项中的最后一个是Thresholds,Threshold主要用于一些自定义一些样本的阈值,例如,定义一个Threshold规则,如果CPU超过50%的区域显示为warning状态,可以添加如下配置:【Threshold设置】
Graph面板则会在图表中显示一条阈值,并且将所有高于该阈值的区域显示为warining状态,通过可视化的方式直观的在图表中显示一些可能出现异常的区域。
需要注意的是,如果用户为该图表自定义了Alert(告警)配置,Thresholds将会被禁用,并且根据Alert中定义的Threshold在图形中显示阈值内容。