Отслеживание событий при помощи сервиса Application Insights
Одна из полезных возможностей Application Insights — это отслеживание событий, которые происходят в приложение во время работы. На основании этих данных можно сделать выводы об использовании приложения, какие фичи пользователи используют, а какие нет. Отдельно можно провести анализ ошибок, возникающих при работе.
Пользовательские события
Пользовательские события позволяют определить ключевые точки приложения и анализировать статистику их использования. Например, в интернет-магазине можно добавить событие добавления в корзину. В системе документооборота такими событиями могут быть создание и изменение документа. Позже, по этим событиям можно получить статистику по времени.
Для работы с пользовательскими событиями, кроме подключения AI к проекту, требуется добавить немного кода в приложение. Для взаимодействия с сервисом используется объект TelemetryClient
. Отправка события регистрация пользователя в приложении может выглядеть так:
TelemetryClient telemetry = new TelemetryClient();
telemetry.TrackEvent("UserSignup");
Если вместе с событием требуется учитывать какие-то дополнительные данные, то в метод TrackEvent
можно передать дополнительные параметры:
TelemetryClient telemetry = new TelemetryClient();
telemetry.TrackEvent("UserSignup",new Dictionary<string, string>
{
{"Role", "Observer"},
{"Company", "A&B"}
});
Аналитика по событиям выглядит следующим образом:

Можно получить дополнительные проекции данных, используя фильтры:

Клик по каждому событию также покажет подробную информацию по выбранному событию.
Как и в случае с анализом работоспособности приложения, здесь можно настроить уведомления, которые будут отправляться при достижении пороговых значений. Например, если количество добавлений в корзину за день меньше, чем какое-то выбранное значение, то вы получите уведомление по email.
Логи
Другой замечательной возможностью AI является возможность хранения и обработки логов. Безусловно многие хранят логи на своих серверах в файлах специального формата. Но я думаю не ошибусь, если скажу, что процесс чтения и анализа лог-файлов не доставляет особого удовольствия. Все потому, что в большинстве случаев это простые текстовые файлы, содержащие огромный объем данных.
Application Insights ведет журнал внутренних событий - HTTP-запрос, просмотр страницы и т.п. При возникновении нестандартных ситуаций в приложении можно также отправить эту информацию в AI. Для этого используется тот же самый объект TelemetryClient
:
try
{
// ...
}
catch (Exception ex)
{
TelemetryClient telemetry =
new TelemetryClient();
telemetry.TrackException(ex);
throw;
}
Информация об исключении передается в метод TrackException
и далее отправляется на сервис. Есть перегруженная версия этого метода, которая вместе с исключение позволяет отправить на сервер дополнительные данные (свойства и метрики, критичность исключения и т.д.):
try
{
// ...
}
catch (Exception ex)
{
TelemetryClient telemetry = new TelemetryClient();
telemetry.TrackException(new ExceptionTelemetry(ex)
{
Properties =
{
{"Role", "Observer"},
{"Company", "A&B"}
},
Metrics =
{
{"Balance", 150},
},
SeverityLevel = SeverityLevel.Critical
});
throw;
}
Позже по этим данным можно строить дополнительные проекции данных и подвергать их анализу.
Если в приложении уже присутствует система ведения логов, то можно подключить AI к ней. На данный момент существуют адаптеры для:
Отчет по содержимому логов выглядит так:

В верхней части показывается общая статистика и тренды. По каждому событию можно кликнуть и получить полную информацию. Что удобно, AI умеет систематизировать события и по выбранному событию отобразить запросы, так или иначе связанные с этим событием.
Таким образом, данные аспекты работы приложения всегда остаются под вашим контролем.
Добавить комментарий