6-Grafana 可视化面板 Heatmap 与 Gauge

熊 1 阅读 监控平台

1. Grafana Heatmap ( 热图)

Heatmap是Grafana的原生插件 , Heatmap ( 热图) 您可以查看一段时间内的直方图。要完全理解和使用此面板 , 您需要了解什么是直方图以及如何创建它们。阅读以下内容以快速了解术语直方图。

什么是直方图?直方图是用于表示数值分布的图形 , 直方图将数值分组到一个一个的bucket当中 , 然后计算每个bucket中值出现次数。在直方图上 , X轴表示表示数值的范围 , Y轴表示对应数值出现的频次。在直方图上 , 对于各数值出现的次数 , 分布是否对称都显示的很清楚。

官方直方图示例 :

Grafana-Heatmap-1

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

Heatmap热图示例 :

Grafana-Heatmap-3

热图就像直方图 , 但是随着时间的推移 , 每个时间片代表自己的直方图。不用单元格高度来表示频率 , 而是使用单元格并按存储桶中值的数量成比例地为单元格上色。直白一点说 : 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轴中的显示内容。

Grafana-Heatmap-4

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

Grafana-Heatmap-5

使用Heatmap可视化其它类型样本分布情况

对于非Histogram类型 , 由于其监控样本中并不包含Bucket相关信息 , 因此在Metrics选项中需要定义Format as为Time series。

Grafana-Heatmap-6

并且通过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的对数) 等。

Grafana-Heatmap-7

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

1.1 热图绘图说明

Grafana-Heatmap-8

Data format

时间序列 : Grafana通过遍历所有时间序列值来进行分类。

时间序列桶:每个时间序列已经代表一个Y轴存储桶。时间序列名称 ( 别名) 必须是一个数值 , 代表存储桶的上限或下限间隔。Grafana不存储分区 , 因此隐藏了存储分区大小选项。

Buckets

buckets : 当数据格式为时间序列存储段时 , 数据源将返回带有代表存储段绑定的名称的序列。但是取决于数据源 , 界限可能是上或下。此选项允许调整绑定类型。如果设置为 自动 , 则将根据面板的数据源类型选择绑定选项。

Size : Grafana使用“存储桶计数”和“大小”选项来计算热图中每个单元的大小。您可以通过计数 ( 第一个输入框) 或指定大小间隔来定义存储桶大小。对于Y轴 , 大小间隔只是一个值 , 但是对于X桶 , 您可以在“ 大小”输入中指定一个时间范围 , 例如time range 1h。这会使像元在X轴上宽1h。

2. Grafana 仪表测量(Gauge)图

Grafana-Gauge-1

2.1 仪表测量(Gauge)图介绍

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

使用Gauge实现仪表测量效果图 , 展示如下:

Grafana-Gauge-2

注意 : 还可以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 一般设置

Grafana-Gauge-3

Query查询设置

Grafana-Gauge-4

Visualization 可视化

Grafana-Gauge-5
  • Show可选项包括 : All Values和Calculation

  • All Values表示在选定的时间范围内显示所有的采样值;

  • Calculation需要根据下方的Calc ( Last、First、Min、Max等) 中的具体选项来展示一个单一的数据;

  • Add value mapping : 添加值或者值范围对应的文字;

2.4 Gauge 支持多查询或多个值

Grafana-Gauge-6

参考链接

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