Моніторинг 28 сайтів із щоденним звітом у Telegram
Задача
Після запуску десятків клієнтських сайтів ніхто не знав, що якийсь із них ліг, поки не подзвонить клієнт. Платні сервіси моніторингу давали по листу на кожен чих, а список сайтів постійно змінювався.
Що реалізовано
Моніторинг вбудували у власну панель проєктів: сайти додаються там, і спостерігач при кожній зміні переписує sites.json у GitHub-репозиторії. Щодня о 12:00 за Києвом cron хостингу викликає захищений ключем ендпоінт, який послідовно перевіряє кожен сайт трьома спробами з таймаутом 10 секунд і надсилає один звіт у Telegram: «усі N сайтів працюють» або секції Америка / Україна / Київ зі списком недоступних. GitHub Actions лишили як ручний резерв на випадок проблем із хостингом.
Один список
сайти ведуться в панелі, групуються за регіоном; sites.json у GitHub оновлюється автоматично.
Перевірка без паніки
3 спроби по 10 секунд послідовно, щоб короткий збій мережі не став хибною тривогою.
Один звіт на день
зелене повідомлення, коли все гаразд, або структурований список проблем по регіонах.
Cron хостингу як основа
ключ у запиті, ліміт часу 5 хвилин на весь прогін; жодних зовнішніх сервісів.
Резервний запуск
GitHub Actions з ручним стартом читає той самий sites.json.
Дедуплікація
скрипт нормалізує URL (www, слеш, протокол), щоб один сайт не рахувався двічі.
Результат
Про падіння сайту дізнаємось раніше за клієнта, а вхідних — одне повідомлення на день замість потоку листів. Додати сайт у моніторинг — одна форма в панелі.
Технології
Маєте схожу задачу?
Обговорити проєктНаступний кейс
Google Sheets + Telegram
Сповіщення в Telegram про зміни в Google-таблиці →