首页 > 解决方案 > 当正则表达式包含 \w 时,带有 label_replace 的 promql 正则表达式返回空白值

问题描述

我有这个指标被返回

my_sqldatabase{aggregation="maximum", instance="sql-metrics-exporter", interval="PT5M", job="metrics-sqldatabase", id="/sub/1291-3432432-e432/mydatabase"}

我想为一个名为 db 的新标签提取 / 之后的最后一位(即 mydatabase)并尝试了以下

label_replace(my_sqldatabase{metric="storage_percent", aggregation="maximum"}, "db", "$1", "id", "([\\w]+$)")

我总是以这样的空白值 db 或错误结束

my_sqldatabase{aggregation="maximum", db="" instance="sql-metrics-exporter", interval="PT5M", job="metrics-sqldatabase", id="/sub/1291-3432432-e432/mydatabase"}

有什么想法我哪里出错了吗?我尝试过 ([\w]+$), [\w]+$, [\w]+$, ([\\w]+$) 并得到一个错误或空白值。这似乎是\导致问题的原因,但我不知道为什么或如何解决它。

标签: prometheusgrafanapromql

解决方案


尝试这个:

label_replace(my_sqldatabase{metric="storage_percent", aggregation="maximum"}, "db", "$1", "id", ".+/(.+)")

推荐阅读