如何用PromQL实现Where/Join逻辑?Grafana下受支持产品总bug数计算
解决方案:计算支持中产品的总Bug数
你可以用下面这条PromQL语句实现需求:
sum(product_bugs * on(product_type) group_left supported)
语句解释:
on(product_type):指定两个指标通过product_type标签关联,确保同类型产品的bug数和支持状态一一对应group_left:以product_bugs的样本为基准匹配对应的supported值,避免因部分产品未上报supported指标而丢失有效数据- 乘法操作:将每个产品的bug数乘以其支持状态(1或0),停止支持的产品bug数会被置为0,求和时自动被排除
sum():对所有处于支持状态的产品bug数进行汇总,得到总数量
替代写法:
如果确认所有产品都同时上报了两个指标,也可以用逻辑与的方式实现:
sum(product_bugs and supported == 1)
这种写法会仅保留supported值为1且标签匹配的product_bugs样本,再进行求和。不过第一种乘法写法的兼容性更强,能处理部分产品未上报supported的场景。
内容的提问来源于stack exchange,提问作者sOltan
相关产品推荐
相关产品推荐

