如何用PromQL在PCF应用指标中计算指定时段HTTP请求平均延迟
PromQL 时间区间语法解释与指定时间范围平均延迟计算
一、[359s:15s] 的含义
这是PromQL中rate()函数结合子查询的时间区间写法,格式为[窗口长度:步长],具体拆解:
359s:是rate()计算指标变化率的时间窗口,即统计过去359秒内http_duration_seconds_sum和http_duration_seconds_count的增量,用来计算该窗口内的平均延迟;选择359s而非360s(6分钟)通常是为了避免时间窗口与整点对齐时的边界数据丢失问题。15s:是子查询的步长,表示每15秒执行一次上述窗口内的rate()计算,最终得到的是每15秒一个数据点的滑动窗口平均延迟序列。
二、指定时间范围(11:00至23:00)的HTTP请求平均延迟计算
如果要统计整个时间段的全局平均延迟,无需使用rate()(它用于计算每秒变化率),而是直接统计该时间段内的总延迟和总请求数,再计算均值并转换为毫秒,对应的PromQL如下:
(sum_over_time(http_duration_seconds_sum{source_id='aaa'}[11:00-23:00]) by (process_type) / sum_over_time(http_duration_seconds_count{source_id='aaa'}[11:00-23:00]) by (process_type)) * 1000
逻辑说明:
sum_over_time(metric[时间范围]):统计指定时间范围内指标的累计总和,这里分别获取:http_duration_seconds_sum的总和:该时间段内所有HTTP请求的总延迟(单位:秒)http_duration_seconds_count的总和:该时间段内的总HTTP请求次数
- 两者相除得到平均延迟(单位:秒),乘以1000转换为毫秒
by (process_type)保持按进程类型分组,与原查询的维度一致,方便对比不同进程的延迟数据
内容的提问来源于stack exchange,提问作者Rahul
相关产品推荐
相关产品推荐

