Prometheus导出器的正则表达式模式



我正在尝试为prometheus出口商(jmx出口商)配置文件之一创建一个regex模式来导出weblogic jms队列。

我的字符串如下

(com.bea<ServerRuntime=AC_Server-10-100-40-122, Name=iLoyalJMSModule!AC_JMSServer@AC_Server-10-100-40-122@com.ibsplc.iloyal.eai.EN.retro.outErrorqueue, Type=JMSDestinationRuntime, JMSServerRuntime=AC_JMSServer@AC_Server-10-100-40-122><>MessagesCurrentCount)

正则表达式如下

com.bea<ServerRuntime=(.+), Name=(.+), Type=(.+), JMSServerRuntime=(.+)<>(MessagesCurrentCount|MessagesPendingCount)

在Prometheus导出器输出中显示的名称

name: "weblogic_jmsserver_$1_$5"

电流输出

weblogic_jmsserver_ac_server_10_100_40_122_messagescurrentcount

现在我想从Name=字符串中添加队列outErrorqueue名称到我的输出中,最终输出应该如下所示。

要求输出

weblogic_jmsserver_ac_server_10_100_40_122_outErrorqueue_messagespendingcount

您可以根据需要将捕获组的数量从5更改为2。代替使用.+,您可以使用.*?或使用否定的字符类来匹配除注释[^,]+

以外的任何字符。如果示例数据周围的括号不应该是替换的一部分,您可以使用:

(com.bea<ServerRuntime=([^,]+), Name=[^,]+, Type=[^,]+, JMSServerRuntime=.+?<>(Messages(?:Current|Pending)Count))

替换时使用:

weblogic_jmsserver_$1_outErrorqueue_$2

查看regex演示

最新更新