Ночью перезагрузился коммутатор, и 50 веб-серверов на пару минут пропали из сети. Дежурного разбудили 50 сообщений в чате подряд. На этой машине то же самое: Alertmanager получил 50 алертов InstanceDown одним запросом, а учебный webhook, который стоит здесь вместо чата, записал всё, что ему отправили, — по строке на уведомление. Алерты здесь присылает подготовка урока через API Alertmanager, так же, как это делает Prometheus.
Посчитай уведомления
Посчитай, сколько уведомлений учебный webhook записал в /var/lib/lab-webhook/notifications.jsonl, и посмотри groupLabels у первых трёх.
Сначала предположи
Alertmanager получил 50 алертов InstanceDown одним запросом. Сколько уведомлений записал webhook — по строке на уведомление?
Теперь начни упражнение, выполни команду и сверь прогноз с выводом.
50 алертов пришли в Alertmanager одним запросом, а уведомлений 50, и у каждого в groupLabels свой instance. Почему?
-
Все 50 пришли одним запросом к API Alertmanager. Отдельными их сделала группировка:
jq -c .groupLabelsпоказывает у каждого уведомления свой набор меток. -
Строка — целый запрос от Alertmanager:
jq '.alerts | length'по файлу печатает 1 в каждой строке, потому что в каждом уведомлении один алерт. -
Повтор шёл бы с теми же метками группы, а здесь в каждой строке свой instance.
sudo journalctl -u lab-webhookпокажет 50 разных групп.
groupLabels у каждого уведомления свои — каждый алерт оказался отдельной группой.