Prometheus 出口商的正则表达式模式

Regex pattern for Prometheus exporter

我正在尝试为其中一个 prometheus 导出器(jmx 导出器)配置文件创建正则表达式模式以导出 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__"

当前输出

weblogic_jmsserver_ac_server_10_100_40_122_messagescurrentcount

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

需要输出

weblogic_jmsserver_ac_server_10_100_40_122_outErrorqueue_messagespendingcount

您可以将捕获组的数量从 5 个更改为您在替换中需要的 2 个。除了使用 .+,您还可以使用 .*? 或使用取反字符 class 来匹配除常用字符 [^,]+

之外的任何字符

如果示例数据周围的括号不应该是替换的一部分,可以使用:

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

在替换使用中:

weblogic_jmsserver__outErrorqueue_

看到一个regex demo