我被 Prometheus 中的直方图(和摘要)时间序列吸引,但是我在 Promdash 或 Grafana 中未成功显示直方图。我期望能够展示:
- 某个时间点上的直方图,例如 X 轴上的桶,Y 轴上的每个桶的计数以及每个桶的一个柱子
- 堆叠图形式的桶直方图,使得每个桶都有不同的颜色并且总堆叠等于 inf 桶
一个示例度量值可以是 HTTP 服务器的响应时间。
我被 Prometheus 中的直方图(和摘要)时间序列吸引,但是我在 Promdash 或 Grafana 中未成功显示直方图。我期望能够展示:
一个示例度量值可以是 HTTP 服务器的响应时间。
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]))按(le)
,确保将格式设置为“heatmap”,将图例格式设置为{{ le }}
,并在面板设置中将可视化设置为“heatmap”。
{{le}}
,添加s
会导致桶排序出现问题。在可视化选项卡中应使用y轴单位选项来解决这个问题。最后,在可视化选项卡中设置数据格式为时间序列桶将排列y轴以匹配桶边界。 - Jendrik您可以制作标准的非堆叠图形和柱状图的比率,由于Prometheus直方图是累积的,因此您将获得所需的结果。
之后,您将获得一个漂亮的直方图。唯一让我感到不爽的是Grafana的x轴排序顺序是自然字符串排序。因此,x轴从+Inf开始,然后是0.1、0.2、..1、1.5、10、2,...
PS:在grafana 5.1中,将有支持Prometheus的热力图。有一个问题适用于直方图随时间变化而显示趋势/历史记录的原生支持热图可视化。
Grafana最近的版本有一个内置的热力图可视化类型,但是要谨慎使用,因为它可以非常消耗计算资源。
通过选择Graph
可视化,然后在Axes
下选择X-Axis>Mode
中的Histogram
可以实现直方图。
这里是Grafana 7.03的示例。 数据由ceph_exporter
收集到Prometheus
中。指标为ceph_osd_utilization
。查询使用了一个模板变量,但与此问题无关。