Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При включении отладчик моментальных снимков автоматически собирает моментальный снимок отладки исходного кода и переменных при возникновении исключения в динамическом приложении .NET. Отладчик моментальных снимков в Application Insights:
- отслеживает системные журналы, созданные веб-приложением;
- собирает моментальные снимки для наиболее часто выбрасываемых исключений;
- предоставляет сведения, необходимые для диагностики проблем с рабочей средой.
Узнайте больше о процессах отладчика моментальных снимков и загрузчика моментальных снимков.
Поддерживаемые приложения и среды
Приложения
Коллекция моментальных снимков доступна для:
- платформа .NET Framework версии 4.6.2 и более поздних версий.
- .NET 6.0 или более поздней версии в Windows.
Окружающая среда
Поддерживаются следующие среды:
- Служба приложений Azure
- Функции Azure
- Облачные службы Azure под управлением ОС семейства 4 или более поздней версии
- Azure Service Fabric под управлением Windows Server 2012 R2 или более поздней версии
- Виртуальные машины Azure и масштабируемые наборы виртуальных машин Azure под управлением Windows Server 2012 R2 или более поздней версии
- Локальные виртуальные машины или физические компьютеры под управлением Windows Server 2012 R2 или более поздней версии, а также Windows 8.1 или более поздней версии
Примечание.
Клиентские приложения (например, WPF, Windows Forms или UWP) не поддерживаются.
Предварительные требования для использования отладчика моментальных снимков
Пакеты и конфигурации
- Включите пакет NuGet сборщика моментальных снимков в приложение.
- Настройте параметры коллекции в
ApplicationInsights.config.
Разрешения
- Убедитесь, что вас добавили в роль отладчика моментальных снимков Application Insights для целевого моментального снимка Application Insights.
Как работает отладчик моментальных снимков
Отладчик моментальных снимков реализуется как телеметрический обработчик Application Insights. При запуске вашего приложения обработчик телеметрии отладчика моментальных снимков добавляется в конвейер системно-сгенерированных журналов приложения.
Внимание
Моментальные снимки могут содержать персональные данные или другую конфиденциальную информацию в значениях переменных и параметров. Данные моментальных снимков хранятся в том же регионе, что и ресурс Application Insights.
Процесс отладчика моментальных снимков
Процесс отладки с помощью моментальных снимков начинается и завершается методом TrackException. Моментальный снимок процесса — это приостановленный клон выполняемого процесса, чтобы пользователи не сталкивались с перерывами. В типичном сценарии:
Приложение выбрасывает исключение
TrackException.Отладчик моментальных снимков отслеживает исключения в момент их возникновения, подписываясь на событие
AppDomain.CurrentDomain.FirstChanceException.Счетчик увеличивается для идентификатора задачи.
- Когда счетчик достигает
ThresholdForSnapshottingзначения, идентификатор проблемы добавляется в план сбора.
Примечание.
Минимальное
ThresholdForSnapshottingзначение по умолчанию — 1. С этим значением ваше приложение должно вызвать такое же исключение дважды перед созданием моментального снимка.- Когда счетчик достигает
Идентификатор проблемы события исключения вычисляется и сравнивается с идентификаторами проблем в плане сбора данных.
Если между идентификаторами проблем происходит совпадение, создается снимок выполняемого процесса.
- Моментальному снимку назначается уникальный идентификатор, и к исключению добавляется метка с этим идентификатором.
Примечание.
Частота создания моментальных снимков ограничивается параметром
SnapshotsPerTenMinutesLimit. По умолчанию ограничение составляет один моментальный снимок каждые 10 минут.После возвращения обработчика
FirstChanceException, выброшенное исключение обрабатывается в обычном режиме.Исключение снова достигает метода
TrackExceptionи отправляется в Application Insights вместе с идентификатором моментального снимка.
Примечание.
Установите IsEnabledInDeveloperMode в true, если вы хотите создавать моментальные снимки во время отладки в Visual Studio.
Процесс загрузки снимков
Хотя процесс отладчика моментальных снимков продолжает выполняться и обрабатывать трафик пользователей с небольшим прерыванием, моментальный снимок передается на обработку процессу загрузки моментальных снимков. В обычной ситуации загрузчик моментальных снимков:
Создает минидамп.
Отправляет мини-dump в Application Insights вместе с любыми соответствующими файлами символов (PDB).
Примечание.
Не более 50 моментальных снимков в день можно отправлять.
Если вы включили отладчик моментальных снимков, но не видите их, обратитесь к руководству по устранению неполадок.
Обновление отладчика моментальных снимков
Отладчик моментальных снимков автоматически обновляется через встроенное в пакет, предварительно установленное расширение сайта Application Insights.
Добавление вручную расширения сайта Application Insights для поддержания в актуальном состоянии отладчика моментальных снимков больше не рекомендуется.
Накладные расходы
Отладчик моментальных снимков предназначен для использования в рабочих средах. Параметры по умолчанию включают ограничения скорости, чтобы свести к минимуму влияние на приложения.
Однако вы можете столкнуться с небольшими затратами на ЦП, память и ввод-вывод, связанные с отладчиком моментальных снимков, например:
- При возникновении исключения в приложении
- Если обработчик исключений решит создать моментальный снимок
- Когда вызывается
TrackException
Нет дополнительных затрат на хранение данных, захваченных отладчиком моментальных снимков.
См. примеры сценариев, в которых может возникнуть нагрузка от отладчика моментальных снимков.
Ограничения
В этом разделе рассматриваются ограничения для отладчика моментальных снимков.
Хранение данных
Моментальные снимки отладки хранятся в течение 15 дней. Политика хранения по умолчанию задается для каждого приложения отдельно. Если нужно изменить этот параметр, вы можете запросить изменения, открыв окно Службы Поддержки на портале Microsoft Azure. Для каждого экземпляра Application Insights разрешено максимум 50 моментальных снимков в день.
Публикация символов
Отладчик моментальных снимков требует файлов символов на рабочем сервере:
- Декодирование переменных
- Предоставление возможности отладки в Visual Studio
По умолчанию Visual Studio 2017 версии 15.2+ публикует символы для релизных сборок при публикации в Службу приложений.
В предыдущих версиях необходимо добавить следующую строку в файл профиля
.pubxmlпубликации, чтобы символы были опубликованы в режиме релиза.<ExcludeGeneratedDebugSymbol>False</ExcludeGeneratedDebugSymbol>Для облачных вычислений Azure и других типов убедитесь, что файлы символов находятся в каком-либо из следующих форматов:
- В той же папке основного приложения
.dll(как правило,wwwroot/bin) или - Доступно по текущему пути.
Дополнительные сведения о различных доступных вариантах символов см. в документации по Visual Studio. Для получения наилучших результатов рекомендуется использовать полный, переносимый или внедренный.
Оптимизированные сборки
В некоторых случаях локальные переменные нельзя просматривать в сборках выпуска из-за оптимизации, примененной компилятором JIT.
Однако в службе приложений отладчик моментальных снимков может деоптимизировать методы, выкидывающие исключения, которые являются частью плана сбора данных.
Совет
Установите расширение сайта Application Insights в экземпляре Службы приложений, чтобы получить поддержку деоптимизации.
Следующие шаги
Включите отладчик моментальных снимков Application Insights для приложения: