PostgreSQL replication lag alert
Нужно ловить момент, когда реплика начала отставать от мастера больше чем на 10 секунд.
Рецепт
-- На standby-реплике; экспонировать как HTTP endpoint и мониторить
SELECT
CASE WHEN pg_is_in_recovery()
AND EXTRACT(EPOCH FROM (now() - pg_last_xact_replay_timestamp())) > 10
THEN 'lag'
ELSE 'ok'
END AS status;
То же самое в Enterno.io
Оберните SQL в HTTP-эндпойнт (/replication-status → "ok"/"lag") и направьте HTTP-монитор Enterno на него — alert-правило "не 200 или тело ≠ ok".
Похожие рецепты
Slave-Redis отстаёт от master — read-after-write возвращает старые данные. Стандартного алерта нет, нужен внешний.
Secondary в replica set отстаёт от primary, через минуту приложение начнёт читать stale-данные. Нужен HTTP-эндпойнт со словом "ok" / "lag".
Раз в неделю аналитик запускает тяжёлую выборку без LIMIT и блокирует другие транзакции. Хочется получать уведомление через минуту, а не через час.