Небольшая утилита, опрашивающая с помощью метода GET эндпоинт /ping моих систем и в зависимости от результата отправляющая сообщения мне в Telegram
Эндпоит при опросе возвращает JSON вида
{
"app": true,
"bd": true
}
Для отправки в Telegram настраиваются параметры через application.properties.
#Telegram token
tgToken=YOUR_TOKEN
#Telegram chat id
chatId=YOUR_CHAT_ID
Для опроса необходимого URL используется класс Checker и метод этого класса check.
Пример вызова:
Checker checker = new Checker("https://www.example.ru/ping");
checker.check;
Можно создать и вызвать несколько объектов в многопоточном режиме.
Опрос эндпоинтов ведется с частотой 1 раз в минуту.
При обнаружении сбоя:
отправляется 3 сообщения частотой 1 раз в минуту
частота опроса меняется 1 раз в 5 минут
отправляется 3 сообщения с частотой 1 раз в 5 минут
частота опроса меняется 1 раз в 30 минут
сообщения отправляются с частотой 1 раз в 30 минут
При обнаружении восстановления сервиса:
частота опроса возвращается 1 раз в минуту