Требуется реализовать супер-упрощенный аналог сервиса мониторинга времени отклика эндпоинтов.
Примеры для вдохновения:
Можно добавить произвольное количество эндпоинтов для опроса, для каждого указав:
- Название
- URL для опроса
- Предельное время, за которое эндпоинт должен ответить (в миллисекундах)
- Периодичность опроса (от 1 минуты до 1 часа)
Далее фоновая задача опрашивает эндпоинты с указанной периодичностью, и на странице отображается текущий статус каждого:
operational(вернул статус2xx/3xxв указанное время)degraded(ответил, но не вписался в указанное время)incident(не ответил или вернул статус, отличный от2xx/3xx)
Для каждого эндпоинта надо выводить историю за последние 7 дней, для каждого дня указывая среднее время ответа, количество неуспешных запросов и статус (если в течение дня было замедление, то degraded, если были неуспешные запросы, то incident). График строить необязательно, можно нарисовать хоть табличку с ячейками разного цвета.
Приложение надо реализовать на Ruby on Rails, в качестве БД использовать любую поддерживаемую из коробки. Можно использовать любые сторонние библиотеки.
Внешнее оформление и неописанные детали реализации остаются на усмотрение исполнителя.
В докер заворачивать не обязательно.
Что будет оцениваться:
- работоспособность приложения и корректность выполнения пунктов ТЗ
- качество кода
- покрытие тестами
- аккуратность внешнего оформления
Бонусом будет использование Hotwire и live update, то есть обновление данных без перезагрузки страницы.
Результат надо оформить в качестве публичного репозитория на любом удобном хостинге кода.
Просьба в Readme-файле описать шаги для запуска приложения, а также кратко прокомментировать выбранные архитектурные и технические решения.