Есть ли сервис AWS / PagerDuty, который предупредит меня, если он НЕ уведомлен - PullRequest
0 голосов
/ 11 мая 2018

У нас есть маленький планировщик Java, работающий на AWS ECS.Он делает то, что раньше делал cron на нашем старом монолите.он запускает (fargate) задачи в докерных контейнерах.У нас есть задача, которая выполняется каждый час, и она очень важна для нас.Я хочу знать, происходит ли сбой или сбой по какой-либо причине (например, сбой в планировщике Java или кто-то выключает задачу).

Я ищу сервис, который предупредит меня, если он не уведомлено.Я хочу вызывать систему уведомлений каждый раз, когда скрипт запускается успешно.Затем, если система оповещения не получает уведомление «ОК», как ожидалось, она снимает оповещение.

Я полагаю, что этот вид услуг должен существовать, и я не хочу заново изобретать колесо, пытаясь построить его самостоятельно.Я думаю, мой вопрос, как это называется?И куда я могу пойти, чтобы получить такие вещи?(очевидно, что мы используем AWS и у нас есть учетная запись pagerDuty).

1 Ответ

0 голосов
/ 12 мая 2018

Мы используем этот подход для подобных задач. Во-первых, задача должна записать метку времени в файл в S3 или EFS. Этот файл является внешним доказательством того, что задание завершено Затем вам понадобится служба на основе http, которая будет считывать этот файл и вычислять, является ли отметка времени действительной, т.е. была ли она обновлена ​​за последний час. Это может быть простой скрипт php или nodejs. Этот процесс открыт для общедоступной сети, например, https://example.com/heartbeat.php. Этот сценарий возвращает код ответа http 200, если файл отметки времени присутствует и действителен, или 500, если нет. Затем мы используем StatusCake для отслеживания URL-адреса и уведомляем нас через интеграцию Pager Duty в случае возникновения инцидента. Мы обычно включаем сообщение в ответ, чтобы человек мог понять природу ошибки.

Это может показаться утомительным, но надежным. Любой сбой в любом месте линии будет немедленно уведомлен. StatusCake имеет отличный бесплатный уровень обслуживания. Этот подход может использоваться для мониторинга любой критической задачи таким же образом. Мы узнали о том, как критические задачи и процессы типа cron могут завершиться неудачей по ряду причин, и вы хотите знать, прежде чем они станут критичными для клиента. 24x7x365 мониторинг этих типов задач необходим, и помогает нам лучше спать по ночам.

Примечание. У нас всегда есть ежедневное системное тестовое событие, которое запускает уведомление о дежурном режиме в 9 утра каждый день. Для настоящих параноиков это гарантирует, что сам пейджинговый долг каким-то образом не сработал, например, неправильная настройка и т. Д. Наша служба поддержки знает, что если они не получают тестовое оповещение каждый день, в самой системе уведомлений есть проблема. Дежурный техник должен признать инцидент согласно СОП. Если они не знают, то это переходит на следующий уровень, и мы знаем, что нам нужно поговорить о времени отклика. Это держит людей на ногах. Это последний элемент, который обеспечит надежную инфраструктуру мониторинга.

...