Создание снимков панелей для алертинга#
Основной сценарий:#
Система мониторинга (например, Grafana) фиксирует превышение порогового значения метрики, связанной с алертом.
Запускается триггер на генерацию снимка (snapshot) соответствующей панели или дашборда.
Сервер рендеринга получает задачу на создание PNG-изображения по-указанному URL панели с учетом временного диапазона, включающего момент срабатывания алерта.
Headless-браузер (например, Puppeteer) загружает страницу дашборда с авторизацией через API-ключ или бэкенд-прокси.
Ожидается полная отрисовка графиков и данных.
Выполняется скриншот целевой области.
Изображение сохраняется во временное хранилище (например, в облаке или локальной папке) с уникальным именем.
Ссылка на изображение встраивается в уведомление.
Уведомление с прикрепленным снимком отправляется через каналы связи (Email, Telegram, Slack и т.п.) ответственным специалистам.
Альтернативный сценарий:#
Если алерт срабатывает в цепочке с другими, создается единый сводный снимок или серия изображений для контекстного анализа.
Вместо прямого скриншота используется предварительно сгенерированный кэшированный снимок за последний период, если изменения незначительны.
Снимок делается не всей панели, а только ее проблемного фрагмента (например, график с аномалией).
Исключительный сценарий:#
Если загрузка панели не удалась (ошибка 404, 500, тайм-аут), в уведомление включается ссылка на дашборд и текст: «Снимок недоступен, см. источник».
При недоступности headless-браузера или сервера рендеринга — отправляется алерт без изображения с пометкой «Ошибка генерации снимка».
Если доступ к дашборду запрещен (ошибка 403), уведомление не отправляется, фиксируется ошибка в логе.
При превышении размера изображения допустимого лимита канала (например, в Slack) — изображение сжимается или заменяется ссылкой.