6-Grafana 可视化面板 Heatmap 与 Gauge
1. Grafana Heatmap ( 热图)
Heatmap是Grafana的原生插件 , Heatmap ( 热图) 您可以查看一段时间内的直方图。要完全理解和使用此面板 , 您需要了解什么是直方图以及如何创建它们。阅读以下内容以快速了解术语直方图。
什么是直方图?直方图是用于表示数值分布的图形 , 直方图将数值分组到一个一个的bucket当中 , 然后计算每个bucket中值出现次数。在直方图上 , X轴表示表示数值的范围 , Y轴表示对应数值出现的频次。在直方图上 , 对于各数值出现的次数 , 分布是否对称都显示的很清楚。
官方直方图示例 :

上面的直方图向我们展示了几个时间序列的大多数值分布。我们可以很容易地看到大多数值落在240-300之间 , 峰值在260-280之间。直方图只是查看特定时间范围内的值分布。因此 , 您看不到任何趋势或分布随时间的变化 , 这是热图变得有用的地方。
Heatmap热图示例 :

热图就像直方图 , 但是随着时间的推移 , 每个时间片代表自己的直方图。不用单元格高度来表示频率 , 而是使用单元格并按存储桶中值的数量成比例地为单元格上色。直白一点说 : Heatmap是用X轴表示时间 , Y轴表示值的大小 , bucket用来表示一个区间的值在对应时间点出现的次数。
Heapmap Panel的编辑页面中 , 主要包含5类配置选项 , 分别是 : General、Metrics、Axes、Display、Time range。
使用Heatmap可视化Histogram类型的监控指标时 , 需要设置Format as选项为Heatmap。当使用Heatmap格式化数据后 , Grafana会自动根据样本的中的le标签 , 计算各个Bucket桶内的分布 , 并且按照Bucket对数据进行重新排序。Legend format模板则将会控制Y轴中的显示内容。

默认情况下 , Heatmap Panel会自行对PromQL查询出的数据进行分布情况统计 , 而在Prometheus中Histogram类型的监控指标其实是已经自带了分布的Bucket信息的 , 因此为了直接使用这些Bucket信息 , 我们需要在Axes选项中定义数据的Date format需要定义为Time series buckets。该选项表示Heatmap Panel不需要自身对数据的分布情况进行计算 , 直接使用时间序列中返回的Bucket即可。

使用Heatmap可视化其它类型样本分布情况
对于非Histogram类型 , 由于其监控样本中并不包含Bucket相关信息 , 因此在Metrics选项中需要定义Format as为Time series。

并且通过Axes选项中选择Data format方式为Time series。设置该选项后Heatmap Panel会要求用户提供Bucket分布范围的设置。
在Y轴 ( Y Axis) 中需要通过Scale定义Bucket桶的分布范围 , 默认的Bucket范围支持包括 : liner ( 线性分布) 、log(base 10) ( 10的对数) 、log(base 32) ( 32的对数) 、log(base 1024) ( 1024的对数) 等。

上图中设置的Scale为log(base 2) , 那么在Bucket范围将2的对数的形式进行分布 , 即[1,2,4,8,…]。
1.1 热图绘图说明

Data format
时间序列 : Grafana通过遍历所有时间序列值来进行分类。
时间序列桶:每个时间序列已经代表一个Y轴存储桶。时间序列名称 ( 别名) 必须是一个数值 , 代表存储桶的上限或下限间隔。Grafana不存储分区 , 因此隐藏了存储分区大小选项。
Buckets
buckets : 当数据格式为时间序列存储段时 , 数据源将返回带有代表存储段绑定的名称的序列。但是取决于数据源 , 界限可能是上或下。此选项允许调整绑定类型。如果设置为 自动 , 则将根据面板的数据源类型选择绑定选项。
Size : Grafana使用“存储桶计数”和“大小”选项来计算热图中每个单元的大小。您可以通过计数 ( 第一个输入框) 或指定大小间隔来定义存储桶大小。对于Y轴 , 大小间隔只是一个值 , 但是对于X桶 , 您可以在“ 大小”输入中指定一个时间范围 , 例如time range 1h。这会使像元在X轴上宽1h。
2. Grafana 仪表测量(Gauge)图

2.1 仪表测量(Gauge)图介绍
Gauge和Bar Gauge均是Grafana的原生插件 , 使用简单。Grafana有几个版是将Gauge 放在了Singlestat 中。但Singlestat只支持返回单个序列/表的查询 , 而Gauge是可以支持同时有多个查询 ( 返回多个值) 的 , 并显示多个仪表测量(Gauge)图。
使用Gauge实现仪表测量效果图 , 展示如下:

注意 : 还可以Value mappings把数字映射成文字。
2.2 值选项 Value options
使用以下选项来优化您的可视化显示值的方式 :
显示show : 选择
Grafana显示数据的方式。计算Calculate : 显示基于所有行的计算值。
计算
Calculation: 选择Grafana将使用的缩减函数将许多字段缩减为单个值。有关可用计算的列表。字段
Fields: 选择面板中显示的字段。
所有值
All values: 为每一行显示一个单独的统计数据。如果选择此选项 , 则还可以限制要显示的行数。限制
Limit: 要显示的最大行数。默认值为5,000。字段
Fields: 选择面板中显示的字段。
测量
Gauge: 调整仪表的显示方式。显示阈值标签
Show threshold labels: 控制是否显示阈值。显示阈值标记
Show threshold markers: 控制阈值带是否显示在内仪表值带之外。
字体大小
Text size: 调整仪表文本的大小。标题
Title: 输入仪表标题大小的数值。值
Value: 输入仪表值大小的数值。
2.3 Gauge 具体设置方法
General 一般设置

Query查询设置

Visualization 可视化

Show可选项包括 :All Values和CalculationAll Values表示在选定的时间范围内显示所有的采样值;Calculation需要根据下方的Calc(Last、First、Min、Max等) 中的具体选项来展示一个单一的数据;Add value mapping: 添加值或者值范围对应的文字;
2.4 Gauge 支持多查询或多个值

参考链接
构建企业级监控平台系列 ( 三十二) : Grafana 可视化面板 Heatmap 与 Gauge (qq.com)