如何查询多个实例以查看Prometheus中的某个服务是否出现故障



我有两个实例要查询并检查服务是否关闭。我使用的是缺席语法,尽管它不允许regex,所以我的查询很长。我想知道是否有更清洁的方法可以做到这一点?

不存在(windows_process_start_time{instance="xxx:9182",process="npop3"}(或不存在(windows_process_start_time{instance="yyy:9182",process="npop3"}(,或不存在(windows_process_start_time{instance="xxx:9182",process="nreplica"}(或不存在(windows _process-start_time{instance="yyy:9182",process="nreplica"}(,或不存在(windows_process_start_time{instance="xxx:9182",process="nrouter"}(或不存在(windows_process-start_time{instance="yyy:9182",process="nrouter"}(,或不存在(windows_process_start_time{instance="xxx:9182",process="nsmtp"}(或不存在(windows_process_start_time{instance="yyy:9182",process="nsmtp"}(,或不存在(windows_process_start_time{instance="xxx:9182",process="nldap"}(或不存在(windows _process-start_time{instance="yyy:9182",process="nldap"}(,或不存在(windows_process_start_time{instance="xxx:9182",process="nhttp"}(或不存在(windows_process-start_time{instance="yyy:9182",process="nhttp"}(

您可以在度量windows_process_start_time中使用regex

像这样的东西在你的情况下会起作用

absent(windows_process_start_time{instance=~"xxx:9182|yyy:9182", process=~"n.*"})

使用=~而不是=会将字符串计算为正则表达式,然后您可以在字符串中指定正则表达式。

有关PromQL正则表达式的更多信息,请查看PromQL查询

最新更新