我正在尝试为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演示