求过去24小时BHTA(忙时事务尝试)峰值的PromQL表达式
关于PromQL统计Peak BHTA的表达式优化建议
你要统计过去24小时内任意1小时时段的最大事务量(Peak BHTA),当前写的PromQL表达式是:
max_over_time(sum(increase(http_count[1h]))[24h:])
这个写法确实存在问题,核心是范围向量的使用逻辑不对。
问题分析
原表达式里,sum(increase(http_count[1h]))是一个瞬时向量(仅返回当前时间点的计算结果),给瞬时向量加[24h:]的范围切片不符合PromQL的执行逻辑,没法遍历过去24小时内的所有1小时窗口数据。
正确表达式写法
max_over_time(sum by () (increase(http_count[1h]))[24h:1h])
逐段解释
increase(http_count[1h]):计算每个时间序列过去1小时的事务增量sum by () (...):把所有时间序列的增量汇总,得到全局的1小时事务总量(如果要按特定维度统计,比如按实例,把()换成(instance)即可)[24h:1h]:指定在过去24小时的时间范围内,以1小时为步长滑动取每个窗口的sum结果,生成包含所有1小时窗口数据的范围向量max_over_time(...):对这个范围向量里的所有值取最大值,就是你要的过去24小时内的1小时时段最大事务量
内容的提问来源于stack exchange,提问作者Alex Pi
相关产品推荐
相关产品推荐

