PromQL/prometheus 查询 label_replace() 多个

Posted

技术标签:

【中文标题】PromQL/prometheus 查询 label_replace() 多个【英文标题】:PromQL/prometheus query label_replace() multiple 【发布时间】:2021-10-25 07:30:14 【问题描述】:

试图找到一种使用 Prometheus 查询来替换 2 个或更多标签的方法,但没有找到任何好的和“短”的方法。

这是我所拥有的:

label_replace(
label_replace(
label_replace(
  label_replace(
    rate(spring_integration_send_seconds_countresult!="success", application="MyApplicationName"[1m])
    ,"service", "$1", "name", "(.*).ConsumerEndpointFactoryBean.*"
    )
      , "service", "$1", "name", "(.*).channel.*"
      )
        , "service", "$1", "name", "(.*).Channel.*"
      )
       , "service", "$1", "name", "(.*).handler.*"
      )
)

是否有更短/更整洁的方法来替换标签?

在我的例子中,我有 4 种情况我想“跳过”结尾, 当标签值结束时:

.ConsumerEndpointFactoryBean .频道。 (以小写字母开头) .频道。 (以大写开头) .handler.

【问题讨论】:

【参考方案1】:

没关系,这只是正则表达式的问题

label_replace(
    rate(spring_integration_send_seconds_countresult!="success", app="MyApplicationName"[1m])
     ,"service", 
    "$1", 
    "name",   "(.*).(channel|Channel|handler|ConsumerEndpointFactoryBean).*"
    )

【讨论】:

以上是关于PromQL/prometheus 查询 label_replace() 多个的主要内容,如果未能解决你的问题,请参考以下文章

Prometheus 按标签查询范围向量

基于 Excel 文件数据库上的日期的 SQL 查询

NX二次开发-调内部函数SEL_set_type_filter_index_by_label设置类型过滤器例子剖析怎么查找内部函数调用内部函数

键盘回车事件导致页面刷新的问题

KILabel

美化版复选框