如何基于大小写不同的标签值关联Prometheus指标?
解决PromQL中大小写标签值的指标关联问题
要关联标签值大小写不同的metric_a和metric_b,关键是先统一标签值的大小写,再通过标签匹配关联指标,具体实现如下:
实现步骤
- 给
metric_b生成与metric_a匹配的标签:用label_set函数将metric_b的name标签值转为小写,新增一个title标签(和metric_a的标签名一致)。 - 关联两个指标:通过
on(title)指定匹配标签,用group_left(task)保留metric_a的全部标签,并引入metric_b的task标签。
完整查询语句
metric_a * on(title) group_left(task) (label_set(metric_b, title=lower(name)))
效果说明
label_set(metric_b, title=lower(name)):把metric_b的name值(如TITLE1)转成小写(title1),生成title标签,和metric_a的title值完全匹配。on(title):仅以转换后的title标签作为关联依据。group_left(task):以metric_a为基准,保留它的title、details标签,同时把metric_b的task标签合并到结果中。
最终返回结果和预期一致:
{title="title1", details="service", task="deploy"}
内容的提问来源于stack exchange,提问作者beitche
相关产品推荐
相关产品推荐

