Чтобы отследить жёсткую остановку приложения, КМА должен с интервалом в 1 мин. посылать heart-beat сообщение. МА, если не получает heart-beat сообщение за 1,5 мин., то регистрирует остановку приложения на данном сервере.
Для ASAP агентов событием запуска, публикуемого в МА, является формирование подписки на очередь данных, а не каждый запуск объекта агента по каждому сообщению. Событием завершения - снятие подписки.
Передача сообщений мониторинга в МА должно происходить через выделенную не durable JMS-Queue (условно назовём её "amc-to-am", конкретное имя очереди должно быть настраиваемым). Во всех сообщениях в МА должны передаваться:
- имя сервера КМА,
- имя приложения,
- время сообщения (штатный атрибут JMS-сообщения, getJMSTimestamp()),
- идентификатор НЗ.
(TBD) Метрики
МА должен собирать метрики работы агентов для их дальнейшей публикации во внешние аналитические системы. Такие метрики как:
- количество активных НЗ в данный момент
- список НЗ, их статус, время установки статуса. Статус говорит, что последний запуск прошел успешно, либо заверился с ошибкой, либо был прерван, либо что НЗ отключено.
Минимальный набор основных метрик отображается в GUI МА.
Для публикация метрик во внешние агрегатры, необходимо в МА реализовать HTTP-REST сервис, который внешний агрегатор должен использовать для периодического сбора метрик МА представленных в виде JSON.
Сбор и публикацию метрик в МА рекомендуется реализовать на базе популярной библиотеки "Dropwizard Metrics". Она позволяет публиковать метрики через JMX, HTTP (MetricsServlet) и стримить метрики в Graphine.
Уведомления
Задействовать внешние системы агрегации метрик, типа Zabbix. Они, как правило, имеют настраиваемые средства для детектирования событий по собираемых метриках и различные средства уведомления зинтересованных лиц. В частности, нотификация по e-mail тоже может быть обеспечена. От МА требуется предоставить метрику, содержащую список НЗ и их статус последнего завершения. Агрегатор сможет вычленить сигнал для нотификации на основании изменения статуса НЗ на "завершен с ошибкой" относительно статуса "завершен успешно" в предыдущем цикле сбора метрик.