You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Grafana消息模板中用正则提取多值Prometheus告警的标签与数值

解决Prometheus多指标条目模板提取问题

针对多指标条目无法正确提取label和数值的问题,可以通过拆分条目+遍历正则提取的方式实现预期效果,具体模板如下:

{{ range $elem := split ", [" .ValueString }}
{{- $clean := replace $elem "[" "" | replace "]" "" }}
{{- $labelA := reReplaceAll ".*labels={labelA=([^}]+)}.*" "$1" $clean }}
{{- $current := reReplaceAll ".*value=([0-9]+)\\..*" "$1" $clean }}
labelA: {{ $labelA }}, current: {{ $current }}
{{ end }}

模板逻辑说明

  1. 拆分多条目:使用split ", [" .ValueString将原始ValueString按条目分隔符拆分成独立的指标条目数组
  2. 清理条目格式:用replace去掉每个条目前后的[和],得到干净的指标字符串
  3. 提取labelA值:正则.*labels={labelA=([^}]+)}.*匹配labelA=到}之间的内容,捕获组$1即为labelA的取值([^}]兼容字母、数字等多种字符)
  4. 提取数值整数部分:正则.*value=([0-9]+)\..*匹配value=到小数点前的整数部分,捕获组$1即为需要的整数数值
  5. 遍历输出:通过range循环处理每个条目,拼接成预期的每行结果

测试效果

将模板应用到你提供的示例ValueString,会输出:

labelA: a, current: 8567
labelA: b, current: 7853

内容的提问来源于stack exchange,提问作者Rightly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 03:35:14