{"id":14273,"url":"\/distributions\/14273\/click?bit=1&hash=820b8263d671ab6655e501acd951cbc8b9f5e0cc8bbf6a21ebfe51432dc9b2de","title":"\u0416\u0438\u0437\u043d\u044c \u043f\u043e \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0435 \u2014 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0442\u0440\u0435\u043d\u0434\u044b \u0440\u044b\u043d\u043a\u0430 \u043d\u0435\u0434\u0432\u0438\u0436\u0438\u043c\u043e\u0441\u0442\u0438","buttonText":"","imageUuid":""}

Я задолбался пропускать падения моих сервисов и написал HealthCheck-бота

Пишешь боту имя своего домена и бот проверяет его раз в минуту.

К идее создания бота я пришёл при запуске другого продукта для проверки резюме на английском -

В день запуска всё пошло не так😎

Ошибка #1

Большинство сервисов работали на одном сервере, а это

Запускал я довольно требовательный сервис к ресурсам - используется OCR (распознавание символов на pdf файле), алгоритм категоризации, нейронная сеть для определения насколько резюме соответствует профессии найденной по ключевым словам. В общем жирный сервис, который ест много ресурсов процессора и при превышении лимитов - он зависает намертво вместе с сервером.

Не кладите яйца в одну корзину

Ошибка #2

После запуска я не особо следил за сервисом, занимался своими делами.

В итоге проблему с виртуальной машиной, где крутятся все мои сервисы я заметил только по комментариям от пользователей на ProductHunt.

А завис не только сервис, а вообще всё!

Приходилось перезагружать сервер и поднимать все сервисы, чтобы они ожили. Спасибо боту @IsBotDownBot - я понимал когда падали мои боты😂

Кот из дома - мыши в пляс!

Ошибка #3

В сервисе не было ограничений на количество загрузок резюме - в итоге кто-то отчаянно пытался получить высокий балл от https://checkcv.info/ и загружал резюме около сотни раз, это нагружало сервер и тоже приводило к падению сервера.

Берегись козла спереди, лошади сзади, а лихого человека со всех сторон.

Решение

После 5 падений сервиса (довольно позорно, но что поделать) я начал искать быстрое решение для мониторинга, желательно бесплатное.

Небольшой ресерч не дал простого и быстрого решения, чтобы проверять свои сервисы по доменному имени, поэтому я написал своё решение - https://t.me/YourDomainHealthCheckBot

Просто отправляешь боту свой домен - например checkcv.info - бот сам определяет доступен ли сервис по HTTPS или HTTP и начинает его пинговать раз в минуту.

В случае ошибки или недоступности сайта - бот отправит сообщение об ошибке.

Как только сервис вернется к жизни - бот сообщит и об этом.

Вот в общем-то и все, так же можно редактировать свой список сайтов.

Ещё можно пингануть сайт один раз.

Кто-то подсказал, что этим ботом можно поднимать свои Heroku-сервисы к жизни.

С тех пор как запустил бота сервис пока не падал, но если упадёт узнаю об этом в течение минуты (если не упадёт сервер с ботом😏).

Буду рад услышать фидбек или предложения по улучшению -

0
190 комментариев
Написать комментарий...
Leonid Dubov

Мне страшно пользоваться для мониторинга вашим сервисом, после того как вы рассказали, как вы сервисы запускаете. А по существу - выглядит как 3-колесный велосипед, в мире где существует Тесла. Нормальный мониторинг сервиса нормального сервиса на порядок сложнее.

Ответить
Развернуть ветку
Alex Fedorov
Автор

тесла стоит дорого, у вас есть тесла?)

Ответить
Развернуть ветку
Leonid Dubov

Это к дискуссии отношения не имеет. Я пытался сказать, что если вам нужен мониторинг для собственных проектов стоит погрузиться в тему, а там уже решить вы готовы делать похожий инструмент или стоит взять готовое решение и не тратить время на велосипед.

Ответить
Развернуть ветку
Alex Fedorov
Автор

я не нашёл решения, которое подошло бы мне и написал, то что мне подходит, не вижу проблематики

Ответить
Развернуть ветку
Leonid Dubov

«Проблематика» в том, что вы проблему не объяснили. Почему вам надо раз в минуту? Почему не раз в 3, или раз в 30 секунд? А без ответа на этот базовый вопрос непонятно чем это лучше все остальные инструменты, какую проблему вы решаете.

Тем более вы идёте в мониторинг, то есть должны хотя бы обещать более высокий SLA, чем сервисы которые собираетесь мониторить. А пока выглядит это пока как работа студента в Яндекс.Практикуме, которому рассказали про aiogram и requests и он за 30 строк кода сделал прототип.

Ответить
Развернуть ветку
Alex Fedorov
Автор

может потому-что я выбрал эмпирически такую частоту дефолтной? вас такой вариант не устроит?)
sla у сервиса выше, так как крутится не на виртуалке, а в контейнере и менеджится облаком, т.е. там SLA уже облака идёт.

Чем вас так студенты яндекс.практикума разозлили?)

Ответить
Развернуть ветку
187 комментариев
Раскрывать всегда