问题描述
我有一个 Spring Boot 应用程序,它使用千分尺抛出开放的度量统计数据。
对于我的每个 HTTP 端点,我可以看到以下我认为跟踪给定端点的请求数量的指标:
http_server_requests_seconds_count
我的问题是如何在 Grafana 查询中使用它来显示每分钟调用我的端点的请求数量?
我试过了
http_client_requests_seconds_count{}
和
sum(rate(http_client_requests_seconds_count{}[1m]))
但两者都不起作用。
提前致谢。
解决方法
rate(http_client_requests_seconds_count{}[1m])
将向您提供您的服务以每秒速率收到的请求数。
但是,通过使用 [1m]
,它只会查看最后一分钟来计算该数字,并且要求您以一分钟以上的速度收集样本。这意味着,您需要在该时间范围内收集 2 次刮擦。
increase(http_client_requests_seconds_count{}[1m])
将返回该时间范围内该计数增加了多少,这可能是您想要的,尽管您仍然需要在该窗口中有 2 个数据点才能获得结果。
实现结果的其他方式:
increase(http_client_requests_seconds_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