Серии. Часть 1. Настройка аналитики приложений и просмотр журналов.

App Insights дает нам возможность просматривать информацию о нашем приложении, такую ​​как запросы, трассировки журналов, исключения, показатели производительности и т. Д. Это чистая магия для меня и один из самых простых и лучших способов помочь вам отладить ваше веб-приложение.

Здесь мы начнем с основ. Давайте подключим базовый веб-API ASP.NET Core с Application Insights.

Создание ресурса Application Insights

Мы начнем с создания ресурса App Insights в Azure.

На портале Azure создайте ресурс аналитики приложений. Если вы новичок в Azure или вам просто нужна дополнительная информация, обратитесь к этому документу https://docs.microsoft.com/en-us/azure/azure-monitor/app/create-new-resource

Обычно я создаю и называю App Insights Resource для каждого этапа процесса разработки.

Поэтому я следую условию {app-name} - {environment}

Например, я бы создал 4 отдельных экземпляра

  • AspNetCoreAppInsightsSeries-local
  • AspNetCoreAppInsightsСерия-разработка
  • AspNetCoreAppInsightsSeries-staging
  • AspNetCoreAppInsightsСерия-производство

На данный момент нам действительно нужен AspNetCoreAppInsightsSeries-local, поскольку мы просто запустим API локально.

После создания экземпляра скопируйте ключ инструментария, так как он нам понадобится позже.

Создайте веб-приложение ASP.NET Core.

Мы сохраним простоту, поэтому просто создайте новый веб-API ASP.NET в Visual Studio.

Это дает нам хорошую базовую конечную точку, которую мы можем поразить - https: // localhost: 44326 / api / values

(Ваш порт localhost, конечно, будет другим)

Подключите веб-приложение к App Insights

Добавьте пакет NuGet

Microsoft.ApplicationInsights.AspNetCore

Перейдите в класс Startup и в разделе ConfigureServices добавьте строку

services.AddApplicationInsightsTelemetry ();

Это будет, согласно документации - «Добавляет службы Application Insights в коллекцию служб».

Затем добавьте ключ инструментария App Insights в файл конфигурации настроек приложения appsettings.json. Это ключ, который определит, в какой экземпляр следует отправлять данные телеметрии.

Вот и все. Теперь ваше приложение должно начать отправку данных телеметрии в Application Insights.

Давайте проверим это.

Запустите приложение и вызовите запрос GET на https: // localhost: 44326 / api / values.

Это должно заставить наше приложение отправить некоторые данные в AppInsights.

Мы действительно можем просмотреть некоторые данные в нашем окне вывода отладки.

Посмотрите, как это выглядит на странице App Insights.

Мы видим, что мы получаем некоторые данные!

На одной только обзорной странице мы можем увидеть количество запросов, время ответа и любые неудавшиеся запросы. (Обратите внимание на неудавшийся запрос, мы вернемся к этому позже)

Давайте посмотрим наши журналы. На левой панели нажмите «Поиск» и нажмите «Обновить». Здесь мы можем увидеть журнал нашего запроса Values ​​/ Get.

Щелчок по этой записи фактически отобразит детали сквозной транзакции этого запроса.

Итак, если у вас были нижестоящие зависимости, трассировки журналов, исключения и т. Д. В этом запросе, они будут отображаться здесь. Однако, поскольку в нашем вызове api / values ​​/ Get на самом деле ничего нет, на данный момент эта страница довольно пуста.

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

Подождите, что это был за неудавшийся запрос?

Давайте на самом деле продолжим и рассмотрим это. На левой боковой панели в разделе «Расследование» нажмите «Ошибка».

На этой странице вы можете увидеть, что неудачная операция была GET /favicon.ico.

Это имеет смысл, когда браузер нажимает api / values ​​/ Get, он пытается загрузить значок для отображения на вкладке браузера, но, поскольку мы никогда не добавляли его, сервер вернул «404 - Not Found»

Вывод

Довольно просто привязать приложения ASP.NET Core к аналитическим данным приложений, которые предоставляют бесценные данные и показатели того, как работает ваше приложение. Так что воспользуйтесь этим. App Insights сэкономил мне бесчисленное количество часов на отладку моих веб-приложений, тогда как раньше мне приходилось искать в хранилище журналов и изнурительно выяснять, что пошло не так.

Во всяком случае, на этом первая часть этой серии завершается. В следующей части серии мы обсудим, как отправлять трассировки журналов в Application Insights.

Исходный код можно найти здесь -

Https://github.com/paul-lorica/aspNetCore-AppInsights-Series