Prometheus 使用偏移量避免ProMQ中的多个子查询以获得历史平均值
我有一台普罗米修斯服务器,可以提供13个月的长期保留期。我想查找我的web应用程序获得的注册数的异常情况。我的想法是看一看前几周的注册数量,因为它们随工作日的不同而变化 要将当前值与前4周的值进行比较,需要编写4个子查询 我的问题: 在过去的4周内,是否有更简单的方法可以获得前一个工作日1小时的平均增长?为了更清楚,我想得到这4个查询的平均值,以便与我当前的web_注册数进行比较Prometheus 使用偏移量避免ProMQ中的多个子查询以获得历史平均值,prometheus,promql,Prometheus,Promql,我有一台普罗米修斯服务器,可以提供13个月的长期保留期。我想查找我的web应用程序获得的注册数的异常情况。我的想法是看一看前几周的注册数量,因为它们随工作日的不同而变化 要将当前值与前4周的值进行比较,需要编写4个子查询 我的问题: 在过去的4周内,是否有更简单的方法可以获得前一个工作日1小时的平均增长?为了更清楚,我想得到这4个查询的平均值,以便与我当前的web_注册数进行比较 sum(increase(web_registrations[1h] offset 1w)) sum(increas
sum(increase(web_registrations[1h] offset 1w))
sum(increase(web_registrations[1h] offset 2w))
sum(increase(web_registrations[1h] offset 3w))
sum(increase(web_registrations[1h] offset 4w))
请尝试以下操作:
(
sum(increase(web_registrations[1h] offset 1w)) +
sum(increase(web_registrations[1h] offset 2w)) +
sum(increase(web_registrations[1h] offset 3w)) +
sum(increase(web_registrations[1h] offset 4w))
) / 4
它将返回过去4周内最后一小时的平均增长
有关此类查询类型的更多详细信息,请访问。尝试以下操作:
(
sum(increase(web_registrations[1h] offset 1w)) +
sum(increase(web_registrations[1h] offset 2w)) +
sum(increase(web_registrations[1h] offset 3w)) +
sum(increase(web_registrations[1h] offset 4w))
) / 4
它将返回过去4周内最后一小时的平均增长
有关此类查询类型的更多详细信息,请访问。从我所看到的,人们正在为此使用记录规则从我所看到的,人们正在为此使用记录规则,这就是我实际得到的结果,但由于我的指标附加了4个标签过滤器,我的ProMQ查询非常长且丑陋。此外,如果我想建立过去10个工作日的平均值,它会变得更难看。查询的重复部分可能会使用CTE功能(又名
带模板)从中缩短-这就是我实际得到的结果,但是,由于我的度量又附加了4个标签过滤器,所以我的PromQL查询非常长而且难看。此外,如果我想建立过去10个工作日的平均值,它会变得更难看。可以使用CTE功能缩短查询的重复部分(akawith templates
)-参见