32

我被 prometheus 的直方图(和摘要)时间序列所吸引,但我一直未能在 promdash 或 grafana 中显示直方图。我期望能够展示:

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

一个示例指标是 HTTP 服务器的响应时间。

4

4 回答 4

33

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

您可以使用查询将此直方图数据描绘为热图:sum(increase(http_request_duration_seconds_bucket[10m])) by (le),确保将格式设置为“热图”,图例格式设置为{{ le }},并将面板设置中的可视化设置为“热图”。

在此处输入图像描述

于 2018-07-26T16:49:16.033 回答
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 数据源开箱即用的工作热图。对热图可视化的本机支持存在问题,这也适合(如果您想查看趋势/历史)随着时间的推移可视化直方图。

于 2017-02-17T14:34:33.683 回答
6

Grafana 的最新版本具有内置的 Heatmap 可视化类型,但要谨慎使用它,因为它的计算成本可能很高

可以通过选择一个Graph可视化然后Axes选择Histogram>来获得直方图X-AxisMode

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

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

于 2020-06-17T16:03:47.907 回答
2

我不相信 Grafana 支持直方图的条形图。

您可以对直方图的速率进行标准非堆叠图,并且由于 Prometheus 直方图是累积的,您将得到您正在寻找的结果。

于 2016-08-25T05:00:52.987 回答