Как разделить после группировки двух разных метрик в Прометей? - PullRequest
0 голосов
/ 14 января 2019

В настоящее время я пытаюсь предупредить о том, что стручки Kubernetes размещаются в зоне доступности. Мне удалось использовать две разные метрики, чтобы я мог видеть, сколько модулей для приложения работает в определенной зоне доступности. Однако из-за масштабирования я хочу, чтобы оповещение основывалось на процентах ... чтобы мы могли предупреждать, когда определенный процент модулей работает на одном AZ (то есть более 70%).

Мой текущий запрос:

sum(count(kube_pod_info{namespace="somenamespace", created_by_kind="StatefulSet"}) by (created_by_name, node) * on (node) group_left(az_info) kube_node_labels) by (created_by_name, az_info)

И некоторые выбранные выходные данные:

{created_by_name="some-db-1",az_info="az1"} 1
{created_by_name="some-db-1",az_info="az2"} 4
{created_by_name="some-db-2",az_info="az1"} 2
{created_by_name="some-db-2",az_info="az2"} 3

Например, в приведенном выше выводе мы можем видеть, что 4 стручка db-1 сложены на az2, а не на 1 стручок на az1. В этом сценарии мы хотели бы предупредить, поскольку 80% стручков db-1 сложены на одном AZ.

Поскольку выходные данные содержат несколько пакетов на нескольких AZ, может показаться, что может быть трудно получить процент с помощью одного запроса Prometheus, но он интересуется, может ли кто-нибудь с большим опытом предложить решение?

Спасибо!

1 Ответ

0 голосов
/ 14 января 2019
  your_expression 
/ ignoring(created_by_name) group_left
  sum without(created_by_name)(your_expression)

даст вам соотношение целого для каждого, а затем вы можете сделать > .8 на этом.

...