【问题标题】:how to group `http_server_requests_total` metrics on Prometheus如何在 Prometheus 上对“http_server_requests_total”指标进行分组
【发布时间】:2022-08-19 00:46:02
【问题描述】:

我刚刚检测了我的应用程序,我想显示某个端点有多少次点击。

我目前正在使用 Ruby 客户端,所以我已经使用某些标签开箱即用:hostmethodregioninstanceappapp 始终是相同的

我并不真正关心按区域或方法将它分开,我只想知道它有多少次命中,所以我做了这样的查询:

http_server_requests_total{app=\"sumiu-web\", path=\"/metrics\"}

我看到 Prometheus 仍然将它们分组在不同的“标签”中:

这些数字看起来是对的,因为新部署将启动具有不同标签的新实例。

现在,我想我可以sum 增加它,但我得到的数字与总数完全不同:

sum by(app) (http_server_requests_total{app=\"sumiu-web\", path=\"/metrics\"})

我不知道我做错了什么,docs 有类似的功能,所以我认为这应该没问题,但显然不是......

将这些数字加在一起的正确方法是什么?

    标签: prometheus


    【解决方案1】:

    您写道“Prometheus 仍然对它们进行分组”,但屏幕截图来自 Grafana(不是 Prometheus),两者之间的行为可能会有所不同。

    当您按特定标签和值(即app="sumiu-web")过滤指标时,您会将度量集限制为该标签具有该值的子集。

    但是(!)你不限制其他标签,所以你可以,例如,有两个测量,例如一个测量值用于app="sumiu-web"region="foo",另一个测量值用于app="sumiu-web"region="bar"。这些是不同的测量值。

    sum by(app) 什么都不做,因为您已经将测量限制在只有app="sumiu-web" 的那些。

    您可能想要做的是对 app="sumiu-web" 的值求和,而您不关心(例如)region 的值是多少。为此,您可以使用without(region)

    sum without(region) (http_server_requests_total{app="sumiu-web", path="/metrics"})
    

    笔记您可能希望在 without 中包含适用于指标 http_server_requests_total 的所有其他标签,这些标签的不同值是您不关心的。

    【讨论】:

      猜你喜欢
      • 2018-08-14
      • 2017-12-22
      • 2021-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-02
      • 1970-01-01
      相关资源
      最近更新 更多