Проверка времени выполнения процесса с помощью AWS Cloudwatch

Я пишу какое-то приложение (на Go), которое будет непрерывно работать на сервере и выполнять различные задачи. Некоторые из них являются веб-службами, а другие являются внутренними службами с интерфейсом Thrift. Также будет несколько пакетных процессов.

Я хотел бы следить за тем, что эти процессы работают, и подумать, что я могу использовать AWS Cloudwatch для этого.

Будет ли простая реализация выглядеть следующим образом?

Раскрутите отдельный рабочий поток, где я в основном публикую свою метрику CloudWatch каждые 5 минут, которая говорит: "Я все еще работаю". Затем я создаю сигналы тревоги, которые срабатывают, если сообщения перестают получать каждые 5 минут?

Каковы лучшие практики для такого рода вещей? Обратите внимание, что я не спрашиваю о мониторинге доступности веб-сервисов, что более тривиально.

Спасибо

1 ответ

Одно предложение запустить задание cron, которое выполняет скрипт каждые 5 минут. В этот скрипт вы можете поместить всю свою логику.

Для начала я опубликую одну метрику (с измерением Count) который отправляет количество процессов / служб, запущенных на экземпляре. Если порог опускается ниже желаемого количества процессов / сервисов, вы можете настроить Cloudwatch на отправку тревоги. Как только у вас будет работать эта базовая настройка, вы можете расширить ее, чтобы публиковать более подробные (множественные) метрики.