Многозначные переменные Grafana и фильтр меток запросов PromQL - PullRequest
0 голосов
/ 09 января 2020

Мне нужно запросить сетевой трафик c потребление для моих модулей Kubernetes и графика временных рядов Prometheus на панели инструментов Grafana.

Основное выражение c будет таким:

sum by(pod) (rate(container_network_receive_bytes_total{}[1m]))

Он будет сообщать имена модулей, такие как "XXXX-57d84d77b7-px6g5, где XXXX - это имя развертывания, а остальное, если оно автоматически сгенерировано Kubernetes.

Теперь я хочу дать пользователям своей панели мониторинга фильтр для запроса при развертывании (который будет иметь по одному или в каждом модуле), поэтому я создал переменную и извлек туда имена развертываний с помощью запроса, поэтому у меня есть XXXX или ZZZZ, без автоматически сгенерированных пардов, nice и dandy, запрос теперь выглядит так:

sum by(pod) (rate(container_network_receive_bytes_total{pod_name=~"$deployment.*"}[1m]))

Я получаю свои результаты просто отлично, волхвы c в действии.

Теперь я включаю «многозначность» и «все значения» (с выражением «. *»), и мой запрос на экзамене становится

sum by(pod) (rate(container_network_receive_bytes_total{pod_name=~"XXX|YYY|ZZZ.*"}[1m]))

Очевидно, я получу только результаты ZZZ, так как остальные мои замена должна стать pod_name=~"XXX.*|YYY.*|ZZZ.*"

К настоящему времени, Я старался изо всех сил пытаться сделать все, что мог, но этот многозначный случай не работает для меня.

Есть альтернативные идеи, пожалуйста?

1 Ответ

0 голосов
/ 10 января 2020

Попробуйте использовать "$(deployment)-.*" в качестве регулярного выражения, чтобы суффикс был правильно распределен.

...