Разработчикам важно знать, какие ошибки случаются в их приложениях. Однако хранить информацию о каждом случае ошибки неэффективно, представьте, что будет, если в каком-нибудь цикле появилась ошибка, которая происходит 1000 раз в минуту.
Решением является объединение всех случаев ошибки в одно событие вида:
"Ошибка {e} случилась в момент времени {t1}, длилась до времени {t2} и случилась {n} раз."
Событие — это информация о том, когда ошибка началась, когда закончилась и сколько раз случилась.
Сообщение о событии включает:
Приложения передают информацию об ошибках через API или веб-сервис.
События имеют важность:
alarm |
событие возникает, когда компонент неисправен (ошибка)
например, ошибка 154646 "Не удалось установить соединение с БД" |
|
warning |
явного дефекта нет, но необходимо обратить внимание
например, ошибка 404 "Не удалось найти страницу" |
|
success |
событие сообщает, что выполнена какая то полезная работа
например, событие "старт приложения" |
|
unknown | событие не влияет на статус компонента |
Склейка событий
Допустим, в приложении произошло два сбоя. Каждый сбой длился 1 час, в течение которого происходила одна и таже ошибка 100 000 раз. Первый сбой произошел в 10:00, а второй в 14:00.
Для удобства система мониторинга склеивает 200 000 случаев ошибки в 2 экземпляра события. Чтобы понимать, какие случаи можно склеивать в один экземпляр события, а для каких создавать новый, используется интервал склейки. Если между двумя последними случами события проходит времени больше, чем интервал склейки, то создается новый экземпляр события, иначе продляется последний экземпляр события.
Условия склейки событий:
Например, приложение отправляет события с интервалом склейки 1 час.