基于MetricsQL查询:如何筛选values[0][1]为1的指标结果?
基于MetricsQL指标数值的筛选方法
当然支持基于指标数值进行搜索筛选,推荐直接在MetricsQL查询阶段完成过滤,这样能减少数据传输量、提升效率,具体方法如下:
1. MetricsQL查询阶段筛选(推荐)
要筛选k8s_failure_value指标中数值为1的条目,直接使用比较运算符==即可,查询语句如下:
k8s_failure_value == 1
执行该查询后,返回结果会直接包含所有数值等于1的指标条目,对应示例中build="91"的那条数据。
MetricsQL(兼容PromQL)支持多种比较运算符:==(等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于),可根据需求灵活使用。
2. 客户端JSON结果过滤(备选)
如果已拿到全量JSON结果,也可在客户端通过代码过滤,比如用JavaScript实现:
const metricData = [ { "metric": {"__name__": "k8s_failure_value", "build": "90"}, "values": [[1678924800, "0"]] }, { "metric": {"__name__": "k8s_failure_value", "build": "91"}, "values": [[1678924800, "1"]] } ]; // 筛选values第一个子数组第二个元素为"1"的条目 const filteredMetrics = metricData.filter(item => item.values[0][1] === "1");
内容的提问来源于stack exchange,提问作者rahulyadav
相关产品推荐
相关产品推荐

