关于prometheus表达式-label_replace的用法细节记录

label_replace函数用于在Prometheus中修改或新增标签,参数包括目标指标、新标签名、替换值、源标签名和正则表达式。替换值可以是常量或正则匹配的变量,如$1表示正则的第一个匹配项。示例展示了如何使用该函数改变或提取标签的值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

prometheus -label_replace中的细节

首先看下函数label_replace的语法:
label_replace(v instant-vector, dst_label string, replacement string, src_label string, regex string)

v instant-vector 代表要操作的指标,其内包含了我们要替换的label;
dst_label 替换/新增(原始label不存在)label后的label 名字;
replacement 替换/新增label的value,可以是常量,可以是$[0/1/2…]格式的占位符,其后面的序号代表regex的匹配变量位置;
src_label 原始的label;
regex 正则表达式;

上几个例子说明一下replacement的具体含义:

1、replacement定义为常量

原始指标
http_requests_total{code=“400”,handler=“query”,instance=“120.77.65.193:9090”,job=“prometheus”,method=“get”} 9
label_replace函数执行
label_replace(http_requests_total{code=“400”,handler=“query”,instance=“120.77.65.193:9090”,job=“prometheus”,method=“get”}, “instance”, “hello,world”, “method”, “ge.*”)
显示结果:
http_requests_total{code=“400”,handler=“query”,instance=“hello,world”,job=“prometheus”,method=“get”} 9

2、replacement定义为变量

示例1
$1,从表达式的第二项开始匹配

原始指标
container_last_seen{application=“120501_commission_data_service”, container=“120501-0-930614”}

label_replace函数执行
label_replace(container_last_seen{application=“120501_commission_data_service”},“lineId”,“$1”,“container”,“120.-0-(.)”)

显示结果:
container_last_seen{application=“120501_commission_data_service”, container=“120501-0-930614”, lineId=“930614”}

示例2
$0,从表达式的第一项开始匹配
原始指标
container_last_seen{application=“120501_commission_data_service”, container=“120501-0-930614”}

label_replace函数执行
label_replace(container_last_seen{system=“mione”,application=“120501_commission_data_service”},“pId”,“$0”,“container”,“.-0-(.)”)

显示结果:
container_last_seen{application=“120501_commission_data_service”, container=“120501-0-930614”, pId=“120501-0-930614”}

由此可见,replacement为$[1/2/3…]的时候,指的是正则表达式开始位置,$0表示从正则表达式的第一个变量开始匹配,$1表示从正则表达式的第二个变量开始匹配,依此类推!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值