PromQL如何基于公共匹配值从另一指标获取标签值设为Grafana图表标题
实现方案
第一步:编写关联查询的PromQL
你需要通过PromQL的标签匹配和元数据关联能力,将metric2的app标签合并到metric1的查询结果中,语句如下:
metric1 * on(process_id) group_left(app) label_replace(metric2, "process_id", "$1", "pid", "(.*)")
语句解释:
label_replace(metric2, "process_id", "$1", "pid", "(.*)"):将metric2的pid标签重命名为process_id,和metric1的关联标签名保持一致,满足匹配条件on(process_id):指定两个指标按照process_id标签的值做关联匹配group_left(app):一对多匹配模式,将右侧metric2的app标签附加到左侧metric1的查询结果中,乘法操作*不会修改metric1的原始数值(要求metric2为行业通用的、值为1的元数据指标即可)
如果不想用乘法操作,也可以用逻辑匹配的写法,效果一致:
metric1 and on(process_id) group_left(app) label_replace(metric2, "process_id", "$1", "pid", "(.*)")
第二步:Grafana面板标题配置
查询完成后,直接将Grafana面板的标题设置为{{app}}即可,Grafana会自动将查询结果中的app标签值渲染为面板标题。
如果需要同时展示多个应用的监控面板,可以开启面板的重复功能,选择按app标签重复,即可批量生成每个应用对应的metric1监控面板。
内容的提问来源于stack exchange,提问作者mohamad mokhtari
相关产品推荐
相关产品推荐

