使用偏移量避免 PromQL 中的多个子查询以获得历史平均值
Avoiding multiple subqueries in PromQL with offset to get historic averages
我有一个 prometheus 服务器,可以提供 13 个月的长期保留。我想查找我的 Web 应用程序获得的注册数量的异常情况。我的想法是查看前几周的注册数量,因为它们因工作日而异。
要将我的当前值与前 4 周的值进行比较,我需要编写 4 个子查询。
我的问题:
有没有更简单的方法来获取过去 4 周中前一个工作日增加 1 小时的平均值?为了更清楚,我想获得这 4 个查询的平均值,以便我可以将它与我当前的 web_registrations.
数量进行比较
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
它将return过去 4 周最后一小时的平均增幅。
在 https://about.gitlab.com/blog/2019/07/23/anomaly-detection-using-prometheus/ 上查看有关此类查询类型的更多详细信息。
我有一个 prometheus 服务器,可以提供 13 个月的长期保留。我想查找我的 Web 应用程序获得的注册数量的异常情况。我的想法是查看前几周的注册数量,因为它们因工作日而异。
要将我的当前值与前 4 周的值进行比较,我需要编写 4 个子查询。
我的问题:
有没有更简单的方法来获取过去 4 周中前一个工作日增加 1 小时的平均值?为了更清楚,我想获得这 4 个查询的平均值,以便我可以将它与我当前的 web_registrations.
数量进行比较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
它将return过去 4 周最后一小时的平均增幅。
在 https://about.gitlab.com/blog/2019/07/23/anomaly-detection-using-prometheus/ 上查看有关此类查询类型的更多详细信息。