Grafana 中 Prometheus 数据的堆积图

MB2*_*263 9 grafana prometheus

我一直在尝试根据 Prometheus 数据在 Grafana 中创建堆积条形图,但很挣扎,说实话,我什至不完全确定我想做的事情是否可行。我尝试过使用旧的图表面板和新的条形图面板 - 但说实话,我发现新的条形图面板相当不直观,而且文档也很模糊。我正在使用按响应代码分割的 nginx 请求的时间序列计数器。Prometheus 中的数据示例是:

nginx_vts_server_requests_total{code="2xx", host="example.com", instance="localhost:443", job="nginx_vts"}

我希望根据过去 12 小时的请求数创建一个堆积图,并取最后一个值:

increase(nginx_vts_server_requests_total[12h])

我没有包含聚合,因为我只使用单个实例。

我希望创建类似于此图像的东西(在 Excel 中模拟):

在此输入图像描述

如果有人之前在 Grafana 中基于 Prometheus 数据创建了这样的图表,如果您能向我展示它是如何完成的(如果实际上可能的话),我将非常感激。https://grafana.com/docs/grafana/latest/visualizations/bar-chart/页面顶部的屏幕截图表明,尽管此示例未堆叠,但可以进行此类分组。

tho*_*dge 4

我也遇到过类似的问题。这是我使用的查询;这非常相似:

sum(rate(http_requests_received_total[1h])) by (code,instance)
Run Code Online (Sandbox Code Playgroud)
  • 首先确保条形图选项Stacking设置为Normal
  • 将查询类型设置为即时,因为我们只使用最后一个值。
  • 继续转换查询。请记住,表格视图选项是您了解正在发生的事情的朋友。按此顺序添加:
    • 添加Reduce转换以将Series 减少为rows。我使用Max计算,但请记住我们实际上只有一个。
    • 添加提取字段转换以将字段拆分为单独的字段。
    • 如果您想对排序进行任何操作,可以在此处添加排序依据转换。
    • 将分组添加到矩阵变换以从新code字段创建新列。用作code列、行和最大值用作单元格instance

PS:如果出现错误,请使用Grafana Explore检查这些值是否与您想象的一样。特别要注意code和上的空值instance

在此输入图像描述