Об этом проекте
Этот проект предоставляет простое, самодостаточное решение для мониторинга активных оповещений от 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), и включая проверки работоспособности на основе бинарных файлов.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.