PromQL:查找低于平均水平的向量元素
PromQL: Find below-average vector elements
我有一个带有标签 (instance
) 的 Prometheus 向量度量 (etcd_network_client_grpc_received_bytes_total
)。该指标对于一堆标签值中的每一个都有不同的值(即每个 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
...那么查询应该 return 第二、第四和第五个元素。
什么不起作用:
etcd_network_client_grpc_received_bytes_total < (0.7 * avg (etcd_network_client_grpc_received_bytes_total))
(我猜是因为整个事情都是针对每个标签值进行评估的)
这可能吗?
(我实际上应该比较比率,而不是总数,但现在让我们保持简单)
etcd_network_client_grpc_received_bytes_total
< ignoring(instance) group_left
0.7 * avg without(instance)(etcd_network_client_grpc_received_bytes_total)
见
我有一个带有标签 (instance
) 的 Prometheus 向量度量 (etcd_network_client_grpc_received_bytes_total
)。该指标对于一堆标签值中的每一个都有不同的值(即每个 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
...那么查询应该 return 第二、第四和第五个元素。
什么不起作用:
etcd_network_client_grpc_received_bytes_total < (0.7 * avg (etcd_network_client_grpc_received_bytes_total))
(我猜是因为整个事情都是针对每个标签值进行评估的)
这可能吗?
(我实际上应该比较比率,而不是总数,但现在让我们保持简单)
etcd_network_client_grpc_received_bytes_total
< ignoring(instance) group_left
0.7 * avg without(instance)(etcd_network_client_grpc_received_bytes_total)
见