Prometheus 使用偏移量避免ProMQ中的多个子查询以获得历史平均值

Prometheus 使用偏移量避免ProMQ中的多个子查询以获得历史平均值,prometheus,promql,Prometheus,Promql,我有一台普罗米修斯服务器,可以提供13个月的长期保留期。我想查找我的web应用程序获得的注册数的异常情况。我的想法是看一看前几周的注册数量,因为它们随工作日的不同而变化 要将当前值与前4周的值进行比较,需要编写4个子查询 我的问题: 在过去的4周内,是否有更简单的方法可以获得前一个工作日1小时的平均增长?为了更清楚,我想得到这4个查询的平均值,以便与我当前的web_注册数进行比较 sum(increase(web_registrations[1h] offset 1w)) sum(increas

我有一台普罗米修斯服务器,可以提供13个月的长期保留期。我想查找我的web应用程序获得的注册数的异常情况。我的想法是看一看前几周的注册数量,因为它们随工作日的不同而变化

要将当前值与前4周的值进行比较,需要编写4个子查询

我的问题:

在过去的4周内,是否有更简单的方法可以获得前一个工作日1小时的平均增长?为了更清楚,我想得到这4个查询的平均值,以便与我当前的web_注册数进行比较

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功能缩短查询的重复部分(aka
with templates
)-参见