Устранение неполадок с профилировщиком приложений Аналитика

В этой статье представлены действия по устранению неполадок и сведения, позволяющие использовать приложение Аналитика Profiler.

Используется ли соответствующая конечная точка Профилировщика?

В настоящее время единственными регионами, для которых требуются изменения конечных точек, являются Azure для государственных организаций и Microsoft Azure, управляемые 21Vianet.

Параметр приложения Облако для государственных организаций США облако для Китая.
ApplicationInsightsProfilerEndpoint https://profiler.monitor.azure.us https://profiler.monitor.azure.cn
ApplicationInsightsEndpoint https://dc.applicationinsights.us https://dc.applicationinsights.azure.cn

Работает ли ваше приложение в правильной версии?

Profiler поддерживается на платформе .NET Framework версии выше 4.6.2.

Если ваше веб-приложение является приложением ASP.NET Core, оно должно работать под управлением последней поддерживаемой версии среды выполнения ASP.NET Core.

Вы используете правильный план обслуживания Azure?

Profiler сейчас не поддерживается в планах службы приложений "Бесплатный" или "Общий". Перейдите на один из базовых планов Profiler, чтобы начать работу.

Примечание.

План потребления Функции Azure не поддерживается. Ознакомьтесь с приложением Функции Azure профиля с помощью приложения Аналитика.

Вы ищете данные Профилировщика в течение правильного интервала времени?

Если данные, которые вы пытаетесь просмотреть, старше двух недель, попробуйте ограничить фильтр времени и повторите попытку. Трассировки удаляются через 7 дней.

Вы можете получить доступ к шлюзу?

Убедитесь, что брандмауэр или прокси-серверы не блокируют доступ к этой веб-странице.

Отображается ли время ожидания или вам нужно проверка, чтобы узнать, работает ли профилировщик?

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

Profiler записывает сообщения трассировки и пользовательские события в ресурс Application Insights. Можно использовать эти события, чтобы просмотреть работу Profiler.

Выполните поиск сообщений трассировки и пользовательских событий, записанных с помощью Profiler в ресурс Application Insights.

  1. В ресурсе приложения Аналитика выберите "Поиск" в верхнем меню.

    Screenshot that shows selecting the Search button from the Application Insights resource.

  2. Используйте следующую строку поиска для поиска необходимых данных:

    stopprofiler OR startprofiler OR upload OR ServiceProfilerSample
    

    Screenshot that shows the search results from aforementioned search string.

    Предыдущие результаты поиска включают два примера поиска из двух ресурсов ИИ:

    • Если приложение не получает запросы во время работы средства Profiler, в сообщении объясняется, что отправка была отменена из-за отсутствия активности.

    • Средство Profiler запущено и отправило пользовательские события при обнаружении запросов, которые появились во время его работы. Если отображается настраиваемое событие ServiceProfilerSample, это означает, что профиль был записан и доступен на панели Производительность Application Insights.

    Если записи не отображаются, профилировщик не работает или не истекает. Убедитесь, что вы включили профилировщик в службе Azure.

Двойной подсчет в параллельных потоках

Если два или более параллельных потока связаны с запросом, общая метрика времени в средстве просмотра стека может превышать длительность запроса. В таком случае общее время потока будет больше фактического затраченного времени.

Например, один поток может ожидать завершения другого. Средство просмотра пытается это обнаружить и исключить ненужное ожидание. При этом он выполняет перебои с отображением слишком большого объема информации, а не пропускать то, что может быть критически важной информацией.

Обнаружив параллельные потоки в трассировках, укажите, какие потоки находятся в состоянии ожидания, чтобы можно было определить критический путь к запросу. Обычно поток, который быстро переходит в состояние ожидания, ожидает других потоков. Сосредоточьтесь на других потоках и игнорируйте время ожидания потоков.

Устранение неполадок средства Profiler в конкретной службе Azure

В следующих разделах описаны действия по устранению неполадок с помощью Profiler в службе приложение Azure или Azure Облачные службы.

Служба приложений Azure

Для правильной работы средства Profiler убедитесь в следующем:

  • В веб-приложении включена Аналитика приложения с правильными параметрами.

  • Веб-задание ApplicationInsightsProfiler3 запущено. Чтобы проверить веб-задание:

    1. Перейдите к Kudu. На портале Azure выполните следующие действия:

      1. В Служба приложений экземпляре выберите "Дополнительные инструменты" на левой панели.
      2. Выберите Перейти.
    2. В верхнем меню выберите панель мониторинга "Сервис>веб-задания". Откроется область WebJobs (Веб-задания).

      Если приложение Аналитика Profiler3 не отображается, перезапустите приложение Служба приложений.

      Screenshot that shows the WebJobs pane, which displays the name, status, and last runtime of jobs.

    3. Чтобы просмотреть сведения о веб-задании, включая журнал, выберите ссылку Application Аналитика Profiler3. Откроется область Continuous WebJob Details (Сведения о непрерывных веб-заданиях).

      Screenshot that shows the Continuous WebJob Details pane.

Если профилировщик по-прежнему не работает для вас, скачайте журнал и отправьте запрос поддержка Azure.

Страница состояния расширения сайта служб диагностики

Если Profiler был включен с помощью панели Application Insights на портале, он был включен расширением веб-сайта Служб диагностики. Вы можете проверка страницу состояния этого расширения, перейдя на страницу https://{site-name}.scm.azurewebsites.net/DiagnosticServicesсостояния.

Примечание.

Домен ссылки на страницу состояния зависит от облака. Этот домен совпадает с сайтом управления Kudu для Служба приложений.

На этой странице состояния указывается состояние установки для агентов Profiler и Snapshot Debugger. Если произошла непредвиденная ошибка, она отображается вместе с инструкциями по ее устранению.

Вы можете использовать сайт управления Kudu для Служба приложений, чтобы получить базовый URL-адрес этой страницы состояния:

  1. Откройте службу приложений на портале Azure.
  2. Выберите Дополнительные инструменты.
  3. Выберите Перейти.
  4. На сайте управления Kudu:
    1. Добавьте /DiagnosticServices к URL-адресу.
    2. Выберите ВВОД.

Это заканчивается, как https://<kudu-url>/DiagnosticServices.

Откроется страница состояния, аналогичная следующему примеру.

Screenshot that shows the Diagnostic Services status page.

Примечание.

Установка Application Insights Profiler, не поддерживающая код, соответствует политике поддержки .NET Core. Дополнительные сведения о поддерживаемых средах выполнения см . в политике поддержки .NET Core.

Установка вручную

При настройке профилировщика в параметры веб-приложения вносятся обновления. При необходимости можно применить обновления вручную.

Слишком много активных сеансов профилирования

Профилировщик можно включить не более четырех веб-приложений, работающих в одном плане обслуживания. Если у вас более четырех, Профилировщик может вызвать следующую ошибку:

Microsoft.ServiceProfiler.Exceptions.TooManyETWSessionException

Чтобы решить эту проблему, переместите некоторые веб-приложения в другой план обслуживания.

Ошибка развертывания: каталог не пустой "D:\home\site\wwwroot\App_Data\jobs"

При повторном развертывании в ресурсе веб-приложений с включенным Profiler может отобразиться сообщение, содержащее сведения о следующей ошибке:

"Каталог не пустой "D:\home\site\wwwroot\App_Data\jobs""

Эта ошибка возникает при запуске веб-развертывания из скриптов или из Azure Pipelines. Устраните его, добавив следующие параметры развертывания в задачу веб-развертывания:

-skip:Directory='.*\\App_Data\\jobs\\continuous\\ApplicationInsightsProfiler.*' -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data\\jobs\\continuous$' -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data\\jobs$'  -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data$'

Эти параметры удаляют папку, используемую Application Insights Profiler, и разрешают запустить процесс повторного развертывания. Текущий запущенный экземпляр профилировщика не будет затронут.

Работает ли приложение Аналитика Profiler?

Профилировщик выполняется в виде непрерывного веб-задания в веб-приложении. Вы можете открыть ресурс веб-приложения на портале Azure. Проверьте состояние ApplicationInsightsProfiler в области Веб-задания. Если он не работает, откройте Журналы, чтобы просмотреть дополнительные сведения.

Виртуальные машины и Облачные службы Azure

Чтобы узнать, правильно ли настроен Profiler с помощью Диагностики Azure, выполните следующие действия:

  1. Убедитесь, что содержимое развернутой конфигурации Диагностики Azure соответствует вашим ожиданиям.

  2. Убедитесь, что Диагностика Azure передает правильный iKey в командной строке Профилировщика.

  3. Просмотрите файл журнала Profiler, чтобы выяснить, почему средство было запущено, но возвратило ошибку.

Чтобы проверить параметры, которые использовались для системы диагностики Azure:

  1. Войдите в виртуальную машину.

  2. Откройте файл журнала в этом расположении. Версия подключаемого модуля может быть более новой на компьютере.

    Для виртуальных машин:

    c:\WindowsAzure\logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics\1.11.3.12\DiagnosticsPlugin.log
    

    Для Azure Облачные службы:

    c:\logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics\1.11.3.12\DiagnosticsPlugin.log
    
  3. В этом файле найдите строку WadCfg. В этой строке содержатся параметры, которые были переданы на виртуальную машину для настройки Диагностики Azure.

  4. Проверьте правильность ключа инструментирования, который используется в приемнике Profiler.

  5. Проверьте командную строку, которая используется для запуска Profiler. Аргументы, используемые для запуска Profiler, находятся в следующем файле (диск может быть или d: каталог может быть c: скрыт):

    Для виртуальных машин:

    C:\ProgramData\ApplicationInsightsProfiler\config.json
    

    Для Azure Облачные службы:

    D:\ProgramData\ApplicationInsightsProfiler\config.json
    
  6. Проверьте правильность ключа инструментирования ikey в командной строке Profiler.

  7. Используя путь, найденный в предыдущем файле config.json, проверка файл журнала Profiler, называемый BootstrapN.log. В нем отображается следующее:

    • Информация об отладке, включающая параметры, используемые Profiler.
    • Сообщения о состоянии и сообщения об ошибках из Profiler.

    Файл можно найти по следующему пути:

    Для виртуальных машин:

    C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.17.0.6\ApplicationInsightsProfiler
    

    Для Azure Облачные службы:

    C:\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.17.0.6\ApplicationInsightsProfiler
    
  8. Если профилировщик работает, пока приложение получает запросы, появится следующее сообщение: "Действие, обнаруженное из iKey".

  9. При отправке трассировки появится следующее сообщение: "Начать отправку трассировки".

Изменение правил прокси-сервера сети или брандмауэра

Если приложение подключается к Интернету через прокси-сервер или брандмауэр, может потребоваться обновить правила для взаимодействия с Профилировщиком.

IP-адреса, используемые Application Insights Profiler, включены в тег службы Azure Monitor. Дополнительные сведения см . в документации по тегам службы.

Поддержка

Если вам по-прежнему нужна помощь, отправьте запрос в службу поддержки в портал Azure. Укажите идентификатор корреляции из сообщения об ошибке.