如何通过Prometheus统计超时延Ping请求累计数量以计算占比?
统计超时Ping请求数量及占比的PromQL写法
1. 统计一段时间内延迟超0.07秒的请求总数
你可以用sum_over_time函数对布尔查询的结果按时间范围求和,语法如下:
sum_over_time((ping_rtt_mean_seconds{target="myserver"} > BOOL 0.07)[1h:10s])
[1h:10s]里的1h是你要统计的时间范围(比如1小时),10s是你的Ping指标采集间隔,需要替换成实际的采样频率(比如如果是每秒采集一次就写1s)。- 这个查询会把时间范围内所有返回1的样本加起来,得到超时请求的总次数。
2. 计算超时请求占总请求的比例
要算占比,需要先拿到这段时间内的总Ping请求数,再用超时总数除以总数:
sum_over_time((ping_rtt_mean_seconds{target="myserver"} > BOOL 0.07)[1h:10s]) / count_over_time(ping_rtt_mean_seconds{target="myserver"}[1h])
count_over_time会统计时间范围内ping_rtt_mean_seconds的总样本数,也就是总请求次数。- 如果你的采样间隔和步长一致,也可以用
sum_over_time((ping_rtt_mean_seconds{target="myserver"} != 0)[1h:10s])来替代count_over_time,但直接用count_over_time更直观准确。
内容的提问来源于stack exchange,提问作者hlx98007
相关产品推荐
相关产品推荐

