如何在《普罗米修斯》中获得平均值的第95百分位



所以我知道PromQL中的一些百分比函数,比如histogram_quantile,它在这样的情况下使用:

// Over the past 5 minutes, what's the maximum http response time experienced by 95% of our users
histogram_quantile(0.95, rate(http_request_duration_bucket[5m])

我们可以这样计算平均值:

// Over the past 5 mins, what the average http response time?
avg by (webId) (rate(http_request_duration_sum[5m])/rate(http_request_duration_count[5m])

是否可以将这两个函数组合起来以获得含义如下的查询:在过去的5分钟里,95%的用户经历的最长平均HTTP响应时间是多少?也就是平均值的95%?

我试过类似的东西:

histogram_quantile(0.95, avg by (webId) (rate(http_request_duration_sum[5m])/rate(http_request_duration_count[5m]))

但它似乎不起作用。我的理解有什么建议或差距吗?

尝试以下查询:

quantile(0.95, avg by (webId) (rate(http_request_duration_sum[5m])/rate(http_request_duration_count[5m])))

它使用quantile((聚合函数在每个webId计算的平均响应时间上计算给定的分位数。

我发现上面的答案不适用于我的情况,但quantile_over_time允许我从sum:中提取一个百分比

quantile_over_time(0.95,
(sum by (component_name) (
node_memory_MemTotal_bytes 
- node_memory_MemFree_bytes 
- node_memory_Cached_bytes)[2w:]
)
)

最新更新