如何使用promdash或grafana可视化直方图

TvE*_*TvE 20 histogram grafana prometheus

直方图(和摘要)时间序列让我对prometheus很感兴趣,但是我无法在promdash或grafana中显示直方图.我期望的是能够展示:

  • 一个时间点的直方图,例如X轴上的桶和Y轴上的桶的计数以及每个桶的列
  • 桶的堆叠图,使得每个桶都有阴影,堆栈的总数等于inf桶

示例度量标准是HTTP服务器的响应时间.

Pan*_*kaj 14

Grafana v5 +直接支持将Prometheus直方图表示为热图. http://docs.grafana.org/features/panels/heatmap/#histograms-and-buckets

热图优先于直方图,因为直方图不会显示趋势如何随时间变化.因此,如果您有时间序列直方图,则使用热图面板对其进行描绘.

为了帮助您入门,以下是一个示例(对于Prometheus数据):

假设你有一个如下的直方图,

http_request_duration_seconds_bucket(le=0.2) 1,
http_request_duration_seconds_bucket(le=0.5) 2,
http_request_duration_seconds_bucket(le=1.0) 2,
http_request_duration_seconds_bucket(le=+inf) 5
http_request_duration_seconds_count 5
http_request_duration_seconds_sum 3.07
Run Code Online (Sandbox Code Playgroud)

您可以使用查询将此直方图数据绘制为热图: 在此输入图像描述

  • @HackToHell `increase` 和 `rate` 函数都是有效的,并且没有一个比另一个更正确。函数的选择取决于您想要可视化的“趋势”。 (4认同)
  • 注意:查询面板上的“格式为”需要为“热图”。镜头显示了它,但很容易错过(否则你会得到累积的热图列,这是非常无用的)。 (4认同)
  • 如果您可以将实际查询作为文本,以便我们可以复制它,那就太酷了。其次值得一提的是如何实际显示直方图。 (3认同)
  • 对我来说,图例格式的帽子只能是`{{le}}`加`s导致的存储桶排序问题。为此,应使用可视化选项卡中的y轴单位选项。最后,在可视化选项卡中将数据格式设置为时间序列存储区,以使y轴与存储区边界匹配。 (2认同)

小智 10

来自@ brian-brazil的答案几乎可以完成,还有一些额外的,未提及的事情要做.

您可以对直方图进行速率的标准非堆叠图形,并且当Prometheus直方图累积时,您将获得您正在寻找的结果.

  1. Grafana中的x轴需要处于模式序列中
  2. 如果为系列使用其他不同的标签,则需要通过le标签聚合结果

之后你会得到一个漂亮的直方图.研磨齿轮的唯一方法就是grafana的x轴排序顺序是自然的字符串排序.所以x轴以+ Inf开头,然后是0.1,0.2,...... 1,1.5,10,2 ......

PS:在grafana 5.1中,将有prometheus数据源开箱即用的工作热图.热图可视化的本机支持存在问题,这也适用于(如果您希望查看趋势/历史记录)随时间可视化直方图.

  • 我遇到了这个(x 轴排序),这绝对是疯了。这么小的问题,让grafana基本无法用于分析直方图。 (2认同)
  • 你提到用le标签聚合结果 - 这是在Grafana查询中完成的吗?我问的原因是我把它堆叠得很好但是每个桶对Y轴显示相同的值所以要么我们擅长点差投注,要么我有错误 (2认同)
  • @ eggsy84您能解释一下您的实现是什么样的吗?并且您是否使用普罗米修斯作为来源? (2认同)

小智 5

Grafana 的最新版本具有内置的热图可视化类型,但请谨慎使用它,因为它可能非常有用计算成本高。

一个可以通过选择实现的直方图Graph可视化,然后在Axes选择HistogramX-Axis>Mode

这是 Grafana 7.03 的示例。由ceph_exporterinto 收集的数据Prometheus。度量是ceph_osd_utilization。该查询使用模板化变量,但这与此问题正交。

直方图面板示例的屏幕截图