当前位置: 首页 > 知识库问答 >
问题:

Grafana用http_server_requests_seconds_count绘制每分钟的HTTP请求

范福
2023-03-14

我有一个Spring boot应用程序,使用测微计抛出开放的公制统计数据。

对于我的每个HTTPendpoint,我可以看到以下指标,我相信它跟踪给定endpoint的请求数:

http\U server\u requests\u seconds\u count

我的问题是,如何在Grafana查询中使用它来表示每分钟调用我的endpoint的请求数?

我试过了

http\u client\u requests\u seconds\u count{}

sum(率(<--pl hd--0/>{}[<--pl hd--1/>]))

但两者都不起作用。

提前谢谢。

共有2个答案

阮俊弼
2023-03-14

http_client_requests_seconds_count指标是一个计数器。这意味着它可能会随着时间的推移而增加,并且可能会在公开此指标的服务重新启动时重置为零。此指标根据其名称计算自上次服务重新启动以来的请求数(请参阅Prometheus指标的命名约定)。

Prometheus提供了crease()函数,用于计算方括号中指定的lookbehind窗口上的计数器增量(有关可能的值,请参阅time duration格式,可以在方括号中指定)。因此,增加(http\u client\u requests\u seconds\u count[1m])返回最后一分钟内的请求数,即每分钟的请求数。

不幸的是,普罗米修斯中的increase()函数存在以下问题,可能会导致意外的结果:

  • 它需要在指定的后备窗口上至少两个原始样本。否则返回空响应。
  • 由于外推,它可能会在应用于整数计数器时返回小数结果。有关详细信息,请参阅此问题。
  • 它可能返回低于预期的结果,因为它错过了查找窗口中的第一个原始样本与前一个原始样本之间的增加。

普罗米修斯开发人员将解决这些问题-请参阅此设计文档。同时,可以使用VictoriaMetrics-其‘increase()函数没有上述问题。

西门磊
2023-03-14

rate(http_client_requests_seconds_count{}[1m])将以每秒速率为您提供服务收到的请求数。

然而,通过使用[1m]它只会在最后一分钟计算该数字,并要求您以一分钟以上的速度采集样本。也就是说,您需要在该时间段内收集2次刮伤。

增加(http_client_requests_seconds_count{}[1m])将返回该计数在该时间范围内增加了多少,这可能是您想要的,尽管您仍然需要在该窗口中有2个数据点才能获得结果。

您可以通过其他方式实现您的结果:

增加(http\u client\u requests\u seconds\u count{}[2m])/2通过查看2分钟,然后将其除以,您将获得更多数据,并将峰值变平,因此您将得到更平滑的图表。

rate(http_client_requests_seconds_count{}[1m])*60通过将rate乘以60,您可以将每秒速率更改为每分钟值。

下面是一篇文章,您可以深入了解它们的计算方法,以及为什么增量可能与整数值不完全一致:https://promlabs.com/blog/2021/01/29/how-exactly-does-promql-calculate-rates

 类似资料:
  • 下面的代码从我的应用程序开始,每隔30秒向graphite注册五个度量计数,一分钟、五分钟、五分钟、平均速率。 我想在Grafana仪表板中显示每分钟收到的请求数。(即,如果在第一分钟接收到60,则在第二分钟接收到120),因为上述仪表度量中的计数一直在增加,并且所有*速率值都是每秒事件数。我不知道如何将度量记录到Grafana仪表板中,该仪表板显示每分钟接收的请求数。非常感谢您的任何建议? 假设

  • 我一直在努力在grafana中绘制一个图表,显示每x单位时间内的事件数,如1分钟、5分钟、30秒等。为了了解我在寻找什么,请参见下图: 我想要一个显示时间段的图表(比如5分钟的时间段,5.30-5.35,5.35-5.40等等)在X轴和Y轴上显示每个时隙的事件。 我已经配置了一个计数器,我可以使用普罗米修斯的递增函数来查找一段时间内(比如1m)的事件增量,如下所示: 增加(我的计数器[1m]) 但

  • 问题内容: 如何在特定时间段内调用Ajax请求?我应该使用Timer插件还是jQuery为此提供插件? 问题答案: 您可以使用内置的javascript setInterval。 或者如果您是更简洁的类型…

  • 我的特定用例是,我想使用redis速率限制器在spring cloud gateway实现速率限制,例如,对于特定路由,每分钟4个请求。 但它并没有像预期的那样工作,一旦一个请求完成,它就会自动填充存储桶。使用了spring cloud论坛提供的相同实现,但无法限制我对特定时间窗口的请求: 通过将RequiredRate设置为所需的请求数、requestedTokens设置为以秒为单位的时间跨度、

  • 本文向大家介绍Python使用Pygame绘制时钟,包括了Python使用Pygame绘制时钟的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Python使用Pygame绘制时钟的具体代码,供大家参考,具体内容如下 前提条件: 需要安装pygame 功能: 1.初始化界面显示一个时钟界面 2.根据当前的时间实现时针、分针、秒针的移动 运行结果: 以上就是本文的全部内容,希望对大家的学

  • 我对监视应用程序使用的HTTP REST API很感兴趣。 使用spring boot、dropwizard和EnablePrometheUseEndpoint。我能够在prometheusendpoint上生成这样的prometheus指标: 我想在grafana中构建一个图形来显示对uri上GET方法的所有调用api_v1_objects不同的状态代码(每个状态代码一行)。 我应该将状态代码设