Система для расчета коэффициента сбойных операций для сервиса. Возвращает дробное число от 0 до 1, где 0 это отсутствие ошибок, а 1 - сервис полностью не работает, а так же следующие показатели:
- общее количество операций;
- общее количество выполняющихся операций;
- общее количество операций завершенных с ошибкой;
- общее количество зависших операций.
Важно понимать, что данные показатели берутся у последнего преагрегата скользящего окна (в качестве алгоритма расчета берется WMA).
Принцип работы сервиса следующий:
- В качестве первого этапа необходимо выполнить процедуру инициализации сбора статистики для сервиса. Без этого этапа при попытке добавить операцию будет возвращена ошибка.
- Сервис, которому необходимо анализировать работоспособность, отправляет данные о операции в Fault Detector (далее FD), который помещает данные о операции в топик Kafka. Оттуда данные снова поступают в сервис для анализа. Это необходимо для того, чтобы в каждом экземпляре сервиса были актуальные данные.
- В определенный промежуток времени запускается задача, которая собирает предагрегаты операций на текущий момент. Агрегат собирает промежуточную статистику уменьшая количество расходуемой памяти. Важно: хранение операций/агрегатов происходит определенное количество времени (в т.ч. и зависшие операции), которое задает родительская система, но ограничено [10, 3600] в секундах. Более длительное хранение информации является неактуальным.
- При запросе статистики внешней системой происходит рассчет уровня ошибок из имеющихся агрегатов. Предагрегаты рассчитываются раз в секунду (значение по-умолчанию). Каджый из них это статистика по сервису на данный момент, т.е. количество успешных, выполняющихся, зависших и сбойных операций на момент группировки. Сам коэффициент сбойности это отношение суммы сбойных и зависших операций к общему количеству операций для сервиса. Конечный показатель сбойности, который получает внешняя система, рассчитывается по формуле WMA из рассчитаных ранее коэффициентов. Также в ответ добавляются статистические данные о операциях для последнего агрегата.