问题描述
我想将返回的histogram_quantile
的瞬时向量与量规进行比较。
(
histogram_quantile(1.0,sum by (le) (
rate(discoverer__round_duration_seconds_bucket[1m])
)
)
)
>= bool
(
discoverer__info_interval_seconds * 0.0001
)
但是我得到的是no datapoints found
。请注意,我将量规乘以非常小的倍数。这只是为了表明它总是小于分位数。如果我分别将它们输入到Prometheus Web UI中,则这两个“子查询”都可以工作。
为什么这不起作用?
当我以一定比率切换分位数时,它突然起作用:
(
rate(discoverer__round_duration_seconds_sum[1m])
/
rate(discoverer__round_duration_seconds_count[1m])
)
> bool
(
discoverer__info_interval_seconds * 0.02
)
我确保所有查询都可以独立工作。
我想看的是类似于第二张屏幕截图的东西。 只是百分位数,因为我更喜欢用它来计算警报。
解决方法
我通过将量规包装在avg()
中来使其工作。不过,我真的很想知道为什么它在没有avg()
的示例中可以工作。
histogram_quantile(1.0,sum by (le) (rate(discoverer__round_duration_seconds_bucket[1m]))) > bool avg(discoverer__info_interval_seconds) * 0.1