all tools
puls stable

Мониторинг вашего мониторинга

Alertmanager не пришлёт алерт о собственной смерти. Puls следит за вашей системой мониторинга снаружи — через независимый канал — и бьёт тревогу, когда heartbeat перестаёт поступать.

Prometheus / Alertmanager VictoriaMetrics Dead man's switch Telegram / SMS / Email Self-hosted
puls — heartbeat monitor
heartbeat received prod-alertmanager 09:14:32 heartbeat received prod-alertmanager 09:15:32 heartbeat received prod-alertmanager 09:16:32 heartbeat MISSING prod-alertmanager 09:17:32 heartbeat MISSING prod-alertmanager 09:18:32 grace period exceeded (2m) firing: monitoring_down channel: Telegram @oncall_bot message: "prod-alertmanager offline since 09:17"

Features

Слепое пятно любого стека мониторинга — закрыто.

Heartbeat мониторинг

Prometheus отправляет Watchdog алерт каждые N секунд. Puls ждёт его. Если за настроенный интервал ничего не пришло — поднимает тревогу.

Независимый канал

Уведомления идут через Telegram, SMS, голосовой звонок или email — каналы независимые от вашего стека. Если Alertmanager мёртв, они всё равно работают.

Несколько источников

Один Puls следит за несколькими Alertmanager'ами одновременно. Разные интервалы, разные каналы уведомлений, разные получатели для каждого.

Grace period

Настраиваемое окно терпимости. Рестарт Alertmanager во время планового обслуживания не вызовет ложную тревогу. Silence через API на время работ.

Dashboard + метрики

Веб-интерфейс со статусом всех источников, историей heartbeat'ов и временем последнего сигнала. Метрики экспортируются в формате Prometheus.

Один контейнер

Один Docker-контейнер, один YAML-конфиг. Разворачивается рядом со стеком мониторинга или на отдельном хосте — что важнее для надёжности.

How it works

Настройка за 10 минут.

prometheus/rules/watchdog.yml
# 1. Watchdog-правило в Prometheus groups: - name: watchdog rules: - alert: Watchdog expr: vector(1) labels: { severity: none } # 2. Receiver в Alertmanager - name: puls-heartbeat webhook_configs: - url: http://puls:8080/beat/<token> # 3. Запустить Puls $ docker compose up -d puls puls listening on :8080
01
Watchdog в Prometheus. Правило vector(1) — всегда true. Prometheus генерирует алерт Watchdog каждые 60 секунд — это и есть heartbeat.
02
Receiver в Alertmanager. Добавьте webhook receiver, который отправляет Watchdog на endpoint Puls. Puls получает сигнал и обнуляет таймер.
03
Канал уведомлений. Укажите Telegram-бот, SMS или email. Puls отправит уведомление, если heartbeat не придёт в течение заданного grace period.
04
Готово. Если Alertmanager падает, Prometheus зависает или теряется сеть — Puls узнает первым и сообщит через независимый канал.
Закрыть слепое пятно

Self-hosted, один docker-compose, настройка за 10 минут.