【发布时间】:2020-10-05 08:21:56
【问题描述】:
我正在尝试使用 Gauss's Easter algorithm 在 PromQL 中计算复活节星期日(我需要忽略一些公共假期的警报规则)。
我可以计算日期,但我遇到了月份问题,因为我需要 if/else 表达式之类的东西。我的记录规则 easter_sunday_in_april 如果东部是四月返回 1,如果是三月返回 0。
(如何)我可以在 PromQL 中表达以下内容吗?
if(easter_sunday_in_april > 0)
return 4
else
return 3
为了完整起见,我在这里附上我的录制规则:
- record: a
expr: year(europe_time) % 4
- record: b
expr: year(europe_time) % 7
- record: c
expr: year(europe_time) % 19
- record: d
expr: (19*c + 24) % 30
- record: e
expr: (2*a + 4*b + 6*d + 5) % 7
- record: f
expr: floor((c + 11*d + 22*e)/451)
- record: easter_sunday_day_of_month_temp
expr: 22 + d +e - (7*f)
- record: easter_sunday_day_of_month_in_april
expr: easter_sunday_day_of_month_temp > bool 31
- record: easter_sunday_day_of_month
expr: easter_sunday_day_of_month_temp % 31
【问题讨论】:
标签: prometheus promql