如何获得 Prometheus 平均值的 95%?

avh*_*hhh 4 grafana prometheus promql

所以我知道 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])
Run Code Online (Sandbox Code Playgroud)

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

// 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])
Run Code Online (Sandbox Code Playgroud)

是否可以将这两个函数组合起来得到表示以下内容的查询:在过去 5 分钟内,我们 95% 的用户经历的最大平均 HTTP 响应时间是多少?又称为平均值的 95%?

我尝试过类似的东西:

histogram_quantile(0.95, avg by (webId) (rate(http_request_duration_sum[5m])/rate(http_request_duration_count[5m]))
Run Code Online (Sandbox Code Playgroud)

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

val*_*ala 10

尝试以下查询:

quantile(0.95, avg by (webId) (rate(http_request_duration_sum[5m])/rate(http_request_duration_count[5m])))
Run Code Online (Sandbox Code Playgroud)

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