首页 > 解决方案 > Prometheuse 的域正则表达式

问题描述

我正在尝试编写一个正则表达式,它将忽略前两个八位字节“name.name-name.presto.worker”,但会匹配其余的“presto.worker”。

我有两个不同的域名,它们遵循上面显示的相同结构,我需要监控系统使用最后两个八位字节 presto.worker 来捕获这两个域。

我发现几乎可以工作的最后一个正则表达式是:

count(up{instance="/[A-Za-z.]+[A-Za-z.-]+(presto.)+(worker)/g"})

它用于 Prometheuse 监控系统。感谢您的帮助亚尼夫

标签: regexwildcardwildcard-subdomain

解决方案


我不确定你想要忽略前两个八位字节是什么意思。如果您对匹配它们不感兴趣,您可以在您的正则表达式中使用“presto\.worker”,这将匹配每个实例。

如果您还想获取前两个八位字节并将它们过滤掉,这里是它的正则表达式:

([A-Za-z]+\.[A-Za-z]+-[A-Za-z]+\.)(presto\.worker)

前两个八位字节现在位于一个单独的组(组 1)中。我不确定 Prometheuse 监控系统将如何输出这些匹配项(通常每个组都会得到一个数组)。尝试将正则表达式粘贴到 regex101.com 以了解我的意思。

希望这能回答你的问题!

-艾文德


推荐阅读