【问题标题】:Error parsing alert "expr" with regular expression in it使用正则表达式解析警报“expr”时出错
【发布时间】:2020-02-24 02:31:30
【问题描述】:

我正在尝试使用包含正则表达式的“expr”定义警报规则

Metric: XYZ-POST-failure-400-1min-rate

- alert: alert_name_here
  expr: __name__=~"(.*)-POST-failure-\d{3}-1min-rate" > 0

使用“promtool”进行单元测试

Error
group "group_name", rule 1, "alert_name_here": could not parse expression: parse error at char 10: unexpected character after '=': '~'

Prometheus 警报管理器是否支持这一点? 有人可以指导我实现这一目标的正确方法是什么?

谢谢

【问题讨论】:

  • 您缺少括号 {__name__=~...} 以匹配与正则表达式匹配的任何名称度量;这实际上是一个标签匹配表达式。
  • 感谢您花时间回答。但是包含括号 {} 会使 YAML 无效
  • 引用表达式以将其解释为字符串:'{__name__=~"..."} > 0'

标签: prometheus prometheus-alertmanager


【解决方案1】:

表达式应该是一个有效的 PromQL 查询,您缺少花括号以使其成为 valid vector selector

{__name__=~"(.*)-POST-failure-\d{3}-1min-rate"} > 0

您可以在 Prometheus 界面中对其进行测试。

关于前导花括号的 YAML 问题,您可以使用允许特殊字符序列的单引号:

- alert: alert_name_here
  expr: '{__name__=~"(.*)-POST-failure-\d{3}-1min-rate"} > 0'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    • 1970-01-01
    相关资源
    最近更新 更多