Об этом проекте

Этот проект предоставляет простое, самодостаточное решение для мониторинга активных оповещений от Prometheus Alertmanager. Он состоит из двух независимых бинарных файлов на Go, каждый из которых упакован в отдельный контейнерный образ, что обеспечивает гибкость развертывания. **Компоненты:** 1. **Receiver:** Этот бинарный файл действует как конечная точка вебхука для Alertmanager. Он прослушивает POST-запросы на `/webhook`, обрабатывает входящие данные об оповещениях и сохраняет текущее состояние в базе данных Valkey (совместимой с Redis). Он специально обрабатывает оповещения `Watchdog`, обновляя метку времени последнего появления без их учета в качестве активных проблем. 2. **Dashboard:** Этот бинарный файл считывает состояние из Valkey и предоставляет веб-интерфейс на HTML. Он также экспонирует конечную точку `GET /api/state` для программного доступа к текущему статусу оповещений. Панель управления может быть настроена для выделения устаревших обновлений, если новые вебхуки не были получены в течение заданного порога. **Управление состоянием:** Активные оповещения хранятся в хеш-таблице Valkey, индексированной по их уникальному отпечатку. Разрешенные оповещения автоматически удаляются. Если отпечаток отсутствует, он вычисляется из отсортированных меток для обеспечения согласованности. **Конфигурация:** Оба бинарных файла настраиваются через переменные среды, включая: - `LISTEN_ADDR`: Адрес прослушивания HTTP (по умолчанию `:8080`). - `VALKEY_ADDR`: Адрес экземпляра Valkey/Redis. - `VALKEY_USERNAME` / `VALKEY_PASSWORD`: Учетные данные для аутентификации. - `STALE_AFTER`: Порог для маркировки обновлений как устаревших (по умолчанию `90m`). **Развертывание:** Проект поддерживает Docker Compose для локальной разработки и тестирования. Опубликованные контейнерные образы доступны в GitHub Container Registry (`ghcr.io`). Окончательные образы оптимизированы для безопасности и размера, используя `scratch` в качестве базового образа, работая от имени не-root пользователя (UID/GID 1000), и включая проверки работоспособности на основе бинарных файлов.