如何在PromQL中通过另一指标的标签过滤指标并实现关联查询?
基于标签关联Prometheus指标并过滤结果
需求说明
需通过标签b和d关联info1与info2指标,同时根据addnlabel=XYZ过滤结果,最终仅返回符合条件的info1指标。
输入指标示例:
info1{a="1", b="2", c="3", d="4", e="5"} info1{a="2", b="2", c="1", e="5"} info2{b="2", d="4", addnlabel="XYZ"}
解决方案查询语句
使用PromQL的join逻辑结合过滤条件实现:
info1 * on(b, d) group_left() (info2{addnlabel="XYZ"})
语句说明
on(b, d):指定以标签b和d作为关联依据,仅保留两个指标中这两个标签值完全匹配的样本group_left():保留左侧info1的所有标签字段,仅用右侧info2的过滤结果做匹配校验info2{addnlabel="XYZ"}:先筛选出addnlabel为XYZ的info2样本,再与info1做关联匹配
输出结果
执行查询后,会返回符合条件的info1样本:
info1{a="1", b="2", c="3", d="4", e="5"}
内容的提问来源于stack exchange,提问作者myquery
相关产品推荐
相关产品推荐

