PromQL: поиск векторных элементов ниже среднего - PullRequest
0 голосов
/ 15 октября 2019

У меня есть векторная метрика Прометея (etcd_network_client_grpc_received_bytes_total) с меткой (instance). Метрика имеет различное значение для каждого из набора значений меток (то есть одно значение на instance). Я хочу найти все instance s, для которых значение меньше 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

... тогда запрос должен вернуть 2-й, 4-й и 5-й элемент.

Что не работает:

etcd_network_client_grpc_received_bytes_total < (0.7 * avg (etcd_network_client_grpc_received_bytes_total))

(я думаю, потому что все оценивается для каждой меткизначение)

Возможно ли это?

(на самом деле я должен сравнивать показатели, а не итоги, но давайте пока все упростим)

1 Ответ

1 голос
/ 15 октября 2019
etcd_network_client_grpc_received_bytes_total
< ignoring(instance) group_left
0.7 * avg without(instance)(etcd_network_client_grpc_received_bytes_total)

См. Как сравнить, выберите все значения, превышающие их среднее значение?

...