PromQL:查找低于平均水平的向量元素

时间:2019-10-15 01:07:38

标签: prometheus promql

我有一个带有标签(etcd_network_client_grpc_received_bytes_total)的Prometheus矢量度量(instance)。度量标准对于一堆标签值(即每个instance一个值)具有不同的值。我想找到所有instance的值小于所有实例平均值的70%。

例如,如果向量具有以下值:

etcd_network_client_grpc_received_bytes_total{instance="192.168.0.18:2399"} 19021275139
etcd_network_client_grpc_received_bytes_total{instance="192.168.0.22:2399"} 390020
etcd_network_client_grpc_received_bytes_total{instance="192.168.0.30:2399"} 19021275254
etcd_network_client_grpc_received_bytes_total{instance="192.168.0.48:2399"} 38992
etcd_network_client_grpc_received_bytes_total{instance="192.168.0.49:2399"} 1992

...然后查询应返回第二,第四和第五个元素。

什么不起作用:

etcd_network_client_grpc_received_bytes_total < (0.7 * avg (etcd_network_client_grpc_received_bytes_total))

(我想是因为整个过程都是针对每个标签值进行评估的)

这可能吗?

(我实际上应该在比较费率,而不是总计,但让我们暂时保持简单)

1 个答案:

答案 0 :(得分:1)

etcd_network_client_grpc_received_bytes_total
< ignoring(instance) group_left
0.7 * avg without(instance)(etcd_network_client_grpc_received_bytes_total)

请参见How do I compare select all values larger than their average?