【问题标题】:Is it possible to get the average of histogram_quantile of the last t minutes?是否可以获得最后 t 分钟的 histogram_quantile 的平均值?
【发布时间】:2021-12-07 04:43:20
【问题描述】:

我打算找到的是最后 t 分钟内 p99 延迟的平均值。

我尝试了这个查询,但它返回错误“范围只允许矢量选择器”

avg_over_time(histogram_quantile(0.99, sum(rate(latency_buckets{service="foo"}[5m])) by (le))[5m])

据我了解,histogram_quantile 所做的是返回一个即时值(比如说 p99),并且无法在指定的时间间隔内获取一系列 p99 值。如果有,有没有什么功能可以达到同样的目的?

【问题讨论】:

    标签: prometheus promql


    【解决方案1】:

    可以使用subquery 语法:

    avg_over_time(instant_query[interval:resolution])
    

    您的查询示例(平均超过 1 小时):

    avg_over_time(
      histogram_quantile( # the instant query
        0.99,
        sum(
          rate(latency_buckets{service="foo"}[5m])
        ) by (le)
      )[1h:] # subquery [ interval : resolution (by default == scrape interval)]
    )
    

    【讨论】:

    • 像魅力一样工作。谢谢@anemyte!
    猜你喜欢
    • 2020-04-25
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多