Prometheus 查询一个时间间隔下的总体平均值

Posted

技术标签:

【中文标题】Prometheus 查询一个时间间隔下的总体平均值【英文标题】:Prometheus Query Overall average under a time interval 【发布时间】:2019-01-22 09:01:14 【问题描述】:

如何找到一段时间内指标的总体平均值?

avg(metric) = 总体平均值 但是

avg_over_time(metrics[interval]) = 每个标签的平均值

avg( avg_over_time(metric[scrape interval]) ) 不会相同(当数据不连续且分母值不同时)平均(公制) !!!!

给定一个场景,找出一段时间内的总体平均值的可能方法是什么。

例如:求现在的平均响应时间和求过去一小时内触发的所有请求的平均响应时间(总体)。

数字将有助于通知最新升级的性能问题。

【问题讨论】:

【参考方案1】:

您需要手动计算平均值:

    sum(sum_over_time(metric[interval]))
/
    sum(count_over_time(metric[interval]))

请注意,这是针对仪表中的数据,您需要对来自计数器或摘要的数据采用不同的方法。

【讨论】:

谢谢。错过了。我的指标是摘要类型,sum(sum_over_time(metric_sum[interval])) / sum(sum_over_time(metric_count[interval])) !!! 总结是sum(rate(a_sum[interval])) / sum(rate(a_count[interval]))。见robustperception.io/common-query-patterns-in-promql

以上是关于Prometheus 查询一个时间间隔下的总体平均值的主要内容,如果未能解决你的问题,请参考以下文章

Prometheus 查询按特定标签随时间平均

Prometheus 查询 promql 以在同一字段上进行平均

Prometheus Query 以高间隔和周期丢失数据

#yyds干货盘点#Prometheus 之 exporter 及查询持久性

修改 Postgres 查询以使用 generate_series 对几个连续范围间隔中的每一个进行总体求和

prometheus能监控哪些指标