В настоящее время я пытаюсь предупредить о том, что стручки 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, но он интересуется, может ли кто-нибудь с большим опытом предложить решение?
Спасибо!