无法在Grafana中使用Prometheus准确计算http请求的增加/速率

问题描述 投票:0回答:1

底部图表效果完美。我通过做

100 - (avg by (cpu) (irate(node_cpu_seconds_total{mode="idle"}[30s])) * 100)
来计算CPU使用率。 “步长/分辨率”设置为“自动”。

上图,表达式为

irate(http_requests_total{handler!~'none|/metrics'}[5m]
。抓取间隔设置为 15 秒,该表达式的步长/分辨率设置为 30 秒(如果设置为自动,变化会更糟)

由于某种原因,我无法获取 http_requests_total 或任何 http_* 计数器指标来反映相同的模式。我觉得令人困惑的是,这两个指标都是计数器,但却暗示着两种不同的场景。顶部图表 (http_requests) 看起来服务器仍在接收突发请求。除了我调用的测试之外,该服务器相对没有接收到图例中提供的端点的流量,因此 CPU 使用率激增。我不需要发出的 HTTP 请求的确切数量,我只想查看以实际反映发生情况的方式绘制的数据点。一次发出了 100 个并发请求,然后就没有了。

prometheus grafana promql
1个回答
0
投票

这是因为 irate 不捕获尖峰 - 它在给定的后视窗口(方括号中)上选择 原始样本 的子集,然后计算这些样本的增长率。详情请参阅本文

附注如果您想可靠地捕获任何时间范围内的增长率峰值以及任何窗口后面的情况,请尝试使用 MetricsQL 中的 rollup_rate 函数。

© www.soinside.com 2019 - 2024. All rights reserved.