Mir*_*rco 15 prometheus promql
我正在尝试使用高斯的复活节算法在 PromQL 中计算复活节(我需要忽略公共假期的一些警报规则)。
我可以计算日期,但我在月份方面遇到问题,因为我需要类似 if/else 表达式的东西。如果东部是四月,我的记录规则 easter_sunday_in_april 返回 1;如果东部是三月,则返回 0。
(如何)我可以用 PromQL 表达以下内容吗?
if(easter_sunday_in_april > 0)
return 4
else
return 3
Run Code Online (Sandbox Code Playgroud)
为了完整起见,我在这里附上我的录音规则:
- 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
Run Code Online (Sandbox Code Playgroud)
val*_*ala 15
这
if(easter_sunday_in_april > 0)
return 4
else
return 3
Run Code Online (Sandbox Code Playgroud)
可以表示为以下 PromQL 查询:
(vector(4) and on() (easter_sunday_in_april > 0)) or on() vector(3)
Run Code Online (Sandbox Code Playgroud)
PS 这个查询可以通过and运算符用MetricsQL表达为更容易理解的形式:ifdefault
(4 if (easter_sunday_in_april > 0)) default 3
Run Code Online (Sandbox Code Playgroud)
MetricsQL 是由我从事的项目VictoriaMetrics提供的类似 PromQL 的查询语言。
| 归档时间: |
|
| 查看次数: |
26929 次 |
| 最近记录: |