Prometheus监控
  • 介绍
  • 全书组织
  • Part I - Prometheus基础
    • 第1章 天降奇兵
      • Prometheus简介
      • 初识Prometheus
        • 安装Prometheus Server
        • 使用Node Exporter采集主机数据
        • 使用PromQL查询监控数据
        • 监控数据可视化
      • 任务和实例
      • Prometheus核心组件
      • 小结
    • 第2章 探索PromQL
      • 理解时间序列
      • Metrics类型
      • 初识PromQL
      • PromQL操作符
      • PromQL聚合操作
      • PromQL内置函数
      • 在HTTP API中使用PromQL
      • 最佳实践:4个黄金指标和USE方法
      • 小结
    • 第3章 Prometheus告警处理
      • Prometheus告警简介
      • 自定义Prometheus告警规则
      • 部署AlertManager
      • Alertmanager配置概述
      • 基于标签的告警处理路由
      • 使用Receiver接收告警信息
        • 集成邮件系统
        • 集成Slack
        • 集成企业微信
        • 集成钉钉:基于Webhook的扩展
      • 告警模板详解
      • 屏蔽告警通知
      • 使用Recoding Rules优化性能
      • 小结
  • Part II - Prometheus进阶
    • 第4章 Exporter详解
      • Exporter是什么
      • 常用Exporter
        • 容器监控:cAdvisor
        • 监控MySQL运行状态:MySQLD Exporter
        • 网络探测:Blackbox Exporter
      • 使用Java自定义Exporter
        • 使用Client Java构建Exporter程序
        • 在应用中内置Prometheus支持
      • 小结
    • 第5章 数据与可视化
      • 使用Console Template
      • Grafana的基本概念
      • Grafana与数据可视化
        • 变化趋势:Graph面板
        • 分布统计:Heatmap面板
        • 当前状态:SingleStat面板
      • 模板化Dashboard
      • 小结
    • 第6章 集群与高可用
      • 本地存储
      • 远程存储
      • 联邦集群
      • Prometheus高可用
      • Alertmanager高可用
      • 小结
    • 第7章 Prometheus服务发现
      • Prometheus与服务发现
      • 基于文件的服务发现
      • 基于Consul的服务发现
      • 服务发现与Relabel
      • 小结
  • Part III - Prometheus实战
    • 第8章 监控Kubernetes
      • 初识Kubernetes
      • 部署Prometheus
      • Kubernetes下的服务发现
      • 监控Kubernetes集群
      • 基于Prometheus的弹性伸缩
      • 小结
    • 第9章 Prometheus Operator
      • 什么是Prometheus Operator
      • 使用Operator管理Prometheus
      • 使用Operator管理监控配置
      • 在Prometheus Operator中使用自定义配置
      • 小结
    • 参考资料
Powered by GitBook
On this page
  • 使用Heatmap可视化Histogram样本分布情况
  • 使用Heatmap可视化其它类型样本分布情况

Was this helpful?

  1. Part II - Prometheus进阶
  2. 第5章 数据与可视化
  3. Grafana与数据可视化

分布统计:Heatmap面板

Previous变化趋势:Graph面板Next当前状态:SingleStat面板

Last updated 5 years ago

Was this helpful?

Heatmap是是Grafana v4.3版本以后新添加的可视化面板,通过热图可以直观的查看样本的分布情况。在Grafana v5.1版本中Heatmap完善了对Prometheus的支持。这部分,将介绍如何使用Heatmap Panel实现对Prometheus监控指标的可视化。

使用Heatmap可视化Histogram样本分布情况

在上一小节中,我们尝试了使用Graph面板来可视化Histogram类型的监控指标prometheus_tsdb_compaction_duration_bucket。虽然能展示各个Bucket区间内的样本分布,但是无论是以线图还是柱状图的形式展示,都不够直观。对于Histogram类型的监控指标来说,更好的选择是采用Heatmap Panel,如下所示,Heatmap Panel可以自动对Histogram类型的监控指标分布情况进行计划,获取到每个区间范围内的样本个数,并且以颜色的深浅来表示当前区间内样本个数的大小。而图形的高度,则反映出当前时间点,样本分布的离散程度。

在Grafana中使用Heatmap Panel也非常简单,在Dashboard页面右上角菜单中点击“add panel”按钮,并选择Heatmap Panel即可。

如下所示,Heapmap Panel的编辑页面中,主要包含5类配置选项,分别是:General、Metrics、Axes、Display、Time range。

其中大部分的配置选项与Graph面板基本保持一致,这里就不重复介绍了。

当使用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即可。如下所示:

通过以上设置,即可实现对Histogram类型监控指标的可视化。

使用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,....],如下所示:

通过以上设置,Heatmap会自动根据用户定义的Bucket范围对Prometheus中查询到的样本数据进行分布统计。

Heatmap示例
Heapmap Panel编辑页面
Mteircs设置
Axes设置
Metrics设置
Axes设置
Bucket分布情况