Prometheus 的域正则表达式
Domain Regex for Prometheuse
我正在尝试编写一个正则表达式,它将忽略前两个八位字节 'name.name-name.presto.worker' 但会匹配其余的 'presto.worker'.
我有两个不同的域名,它们遵循与上面所示相同的结构,我需要监控系统使用最后两个八位字节捕获这两个域 presto.worker。
我发现几乎可以工作的最后一个正则表达式是:
count(up{instance="/[A-Za-z.]+[A-Za-z.-]+(presto.)+(worker)/g"})
用于Prometheuse监控系统。
谢谢您的帮助
亚尼夫
我不确定您所说的忽略前两个八位字节是什么意思。如果您对匹配它们不感兴趣,您可以在正则表达式中使用“presto\.worker”,这将匹配每个实例。
如果您还想获取前两个八位字节并将其过滤掉,这里是它的正则表达式:
([A-Za-z]+\.[A-Za-z]+-[A-Za-z]+\.)(presto\.worker)
前两个八位字节现在在一个单独的组(第 1 组)中。我不确定 Prometheuse 监控系统将如何输出这些匹配项(通常你会得到每个组的数组)。尝试将正则表达式粘贴到 regex101.com 中以了解我的意思。
希望这能回答您的问题!
-埃文德
我已经尝试了两种解决方案,但都有不同的问题
Prometheus 查询问题:
在 regex101.com 我已经放置了我正在寻找的过滤器(以匹配“presto.worker”)并且它确实显示了一个很好的匹配但是当我 运行 在普罗米修斯监控系统出现“未知转义序列”错误
我想 so.How 的正斜杠需要转义才能完成?
我已经找到了答案,感谢您的指导。为了让 prometheus 将代码视为正则表达式,我们需要在开头插入 ~ 使代码像这样:
count(up{instance=~[A-Za-z.]+[A-Za-z.-]+(presto.)+(worker)"}) BY (presto_failuredetector_HeartbeatFailureDetector_ActiveCount ) < 0.90
注意实例后的~=
我正在尝试编写一个正则表达式,它将忽略前两个八位字节 'name.name-name.presto.worker' 但会匹配其余的 'presto.worker'.
我有两个不同的域名,它们遵循与上面所示相同的结构,我需要监控系统使用最后两个八位字节捕获这两个域 presto.worker。
我发现几乎可以工作的最后一个正则表达式是:
count(up{instance="/[A-Za-z.]+[A-Za-z.-]+(presto.)+(worker)/g"})
用于Prometheuse监控系统。 谢谢您的帮助 亚尼夫
我不确定您所说的忽略前两个八位字节是什么意思。如果您对匹配它们不感兴趣,您可以在正则表达式中使用“presto\.worker”,这将匹配每个实例。
如果您还想获取前两个八位字节并将其过滤掉,这里是它的正则表达式:
([A-Za-z]+\.[A-Za-z]+-[A-Za-z]+\.)(presto\.worker)
前两个八位字节现在在一个单独的组(第 1 组)中。我不确定 Prometheuse 监控系统将如何输出这些匹配项(通常你会得到每个组的数组)。尝试将正则表达式粘贴到 regex101.com 中以了解我的意思。
希望这能回答您的问题!
-埃文德
我已经尝试了两种解决方案,但都有不同的问题
在 regex101.com 我已经放置了我正在寻找的过滤器(以匹配“presto.worker”)并且它确实显示了一个很好的匹配但是当我 运行 在普罗米修斯监控系统出现“未知转义序列”错误
我想 so.How 的正斜杠需要转义才能完成?
我已经找到了答案,感谢您的指导。为了让 prometheus 将代码视为正则表达式,我们需要在开头插入 ~ 使代码像这样:
count(up{instance=~[A-Za-z.]+[A-Za-z.-]+(presto.)+(worker)"}) BY (presto_failuredetector_HeartbeatFailureDetector_ActiveCount ) < 0.90
注意实例后的~=