Устранение неполадок с включением отладчика моментальных снимков Application Insights или просмотром моментальных снимков
Если вы включили отладчик моментальных снимков Application Insights для приложения, но не видите моментальные снимки для исключений, воспользуйтесь этими инструкциями для устранения неполадок.
Существует множество различных причин, по которым моментальные снимки не создаются. Для начала можно запустить snapshot проверка работоспособности, чтобы определить некоторые из возможных распространенных причин.
Не поддерживаемые сценарии
Ниже приведены сценарии, в которых сборщик моментальных снимков не поддерживается:
Сценарий | Побочные эффекты | Рекомендация |
---|---|---|
Если вы используете пакет SDK сборщика моментальных снимков в приложении напрямую (CSPROJ) и включили параметр "Взаимодействие". | Локальный пакет SDK Для Application Insights (включая данные телеметрии сборщика моментальных снимков) будет потерян; таким образом, моментальные снимки не будут доступны. При запуске приложения может произойти сбой System.ArgumentException: telemetryProcessorTypedoes not implement ITelemetryProcessor Дополнительные сведения о функции "Взаимодействие" в Application Insights см. в статье Мониторинг приложений для Служба приложений Azure и ASP.NET Core. |
Если вы используете параметр "Взаимодействие", используйте внедрение сборщика моментальных снимков без кода (включено с помощью пользовательского интерфейса портал Azure). |
Убедитесь, что вы используете соответствующую конечную точку отладчика моментальных снимков.
В настоящее время единственными регионами, в которых требуется изменение конечной точки, являются Azure для государственных организаций и Azure для Китая.
Для Служба приложений и приложений, использующих пакет SDK для Application Insights, необходимо обновить строка подключения с помощью поддерживаемых переопределений для отладчика моментальных снимков, как определено ниже.
Свойство строки подключения | Облако для государственных организаций США | Облако для Китая |
---|---|---|
SnapshotEndpoint | https://snapshot.monitor.azure.us |
https://snapshot.monitor.azure.cn |
Дополнительные сведения о других переопределениях подключений см. в документации по Application Insights.
Для приложения-функции необходимо обновить с помощью поддерживаемых переопределений host.json
ниже:
Property | Облако для государственных организаций США | Облако для Китая |
---|---|---|
AgentEndpoint | https://snapshot.monitor.azure.us |
https://snapshot.monitor.azure.cn |
Ниже приведен пример обновленной с помощью конечной host.json
точки облачного агента для государственных организаций США:
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingExcludedTypes": "Request",
"samplingSettings": {
"isEnabled": true
},
"snapshotConfiguration": {
"isEnabled": true,
"agentEndpoint": "https://snapshot.monitor.azure.us"
}
}
}
}
Использование проверка работоспособности snapshot
Некоторые распространенные проблемы приводят к тому, что открытый моментальный снимок отладки не отображается. Например, используется устаревший сборщик моментальных снимков; достигнуто ограничение на ежедневное отправку; или, возможно, snapshot просто занимает много времени, чтобы загрузить. Используйте проверку работоспособности моментальных снимков для устранения распространенных проблем.
В области исключений в представлении сквозной трассировки есть ссылка на проверку работоспособности моментального снимка.
Интерактивный интерфейс, похожий на чат, ищет распространенные проблемы и помогает устранить их.
Если это не решит проблему, ознакомьтесь со следующими инструкциями по устранению неполадок вручную.
Проверка ключа инструментирования
Убедитесь, что вы используете правильный ключ инструментирования в опубликованном приложении. Обычно ключ инструментирования считывается из файлаApplicationInsights.config . Убедитесь, что значение совпадает с ключом инструментирования для ресурса Application Insights, который отображается на портале.
31 марта 2025 г. поддержка приема ключей инструментирования прекратится. Прием ключей инструментирования будет продолжать работать, но мы больше не будем предоставлять обновления или поддержку этой функции. Переход на строки подключения, чтобы воспользоваться преимуществами новых возможностей.
Проверьте параметры клиента TLS/SSL (ASP.NET)
Если у вас есть приложение ASP.NET, размещенное в Служба приложений Azure или в IIS на виртуальной машине, приложение может не подключиться к службе отладчика моментальных снимков из-за отсутствия протокола безопасности SSL.
Для конечной точки отладчика моментальных снимков требуется TLS версии 1.2. Набор протоколов безопасности SSL является одним из причуд, включенных httpRuntime targetFramework
значением system.web
в разделе web.config
.
httpRuntime targetFramework
Если имеет значение 4.5.2 или более поздней версии, протокол TLS 1.2 не включен по умолчанию.
Примечание.
Значение httpRuntime targetFramework
не зависит от целевой платформы, используемой при создании приложения.
Чтобы проверка параметр, откройте файл web.config и найдите раздел system.web. Убедитесь, что targetFramework
для httpRuntime
задано значение 4.6 или более поздней версии.
<system.web>
...
<httpRuntime targetFramework="4.7.2" />
...
</system.web>
Примечание.
httpRuntime targetFramework
Изменение значения изменяет причуды среды выполнения, применяемые к приложению, и может привести к другим незначительным изменениям поведения. Обязательно тщательно протестируйте приложение после внесения этого изменения. Полный список изменений совместимости см. в разделе Изменение целевой таргетинга.
Примечание.
targetFramework
Если используется версия 4.7 или более поздняя, Windows определяет доступные протоколы. В Служба приложений Azure доступен ПРОТОКОЛ TLS 1.2. Однако если вы используете собственную виртуальную машину, может потребоваться включить TLS 1.2 в ОС.
Предварительные версии .NET Core
Если вы используете предварительную версию .NET Core или приложение ссылается на пакет SDK для Application Insights, прямо или косвенно через зависимую сборку, следуйте инструкциям в разделе Включение отладчика моментальных снимков для других сред.
Проверьте страницу состояния расширения сайта диагностических служб.
Если отладчик моментальных снимков был включен через панель Application Insights на портале, он был включен расширением сайта служб диагностики.
Примечание.
Установка отладчика моментальных снимков Application Insights без кода соответствует политике поддержки .NET Core. Дополнительные сведения о поддерживаемых средах выполнения см . в разделе Политика поддержки .NET Core.
Вы можете проверка страницу состояния этого расширения, перейдя по следующему URL-адресу:https://{site-name}.scm.azurewebsites.net/DiagnosticServices
Примечание.
Домен ссылки "Страница состояния" зависит от облака. Этот домен будет таким же, как сайт управления Kudu для Служба приложений.
На этой странице состояния отображается состояние установки агентов Профилировщика и сборщика моментальных снимков. Если произошла непредвиденная ошибка, она отобразится и покажет, как ее исправить.
Вы можете использовать сайт управления Kudu для Служба приложений, чтобы получить базовый URL-адрес этой страницы состояния:
- Откройте приложение Служба приложений в портал Azure.
- Выберите Дополнительные инструменты или найдите Kudu.
- Выберите Выполнить.
- Когда вы перейдете на сайт управления Kudu, в URL-адрес добавьте
/DiagnosticServices
и нажмите клавишу ВВОД. Он закончится следующим образом:https://<kudu-url>/DiagnosticServices
.
Обновление до последней версии пакета NuGet
В зависимости от того, как был включен отладчик моментальных снимков, ознакомьтесь со следующими параметрами:
Если отладчик моментальных снимков был включен в области Application Insights на портале, в приложении уже должен быть запущен последний пакет NuGet.
Если отладчик моментальных снимков был включен путем включения пакета NuGet Microsoft.ApplicationInsights.SnapshotCollector , используйте диспетчер пакетов NuGet Visual Studio, чтобы убедиться, что используется последняя версия
Microsoft.ApplicationInsights.SnapshotCollector
.
Последние обновления и исправления ошибок см. в заметках о выпуске.
Проверка журналов средства отправки
После создания snapshot на диске создается файл minidump (.dmp). Отдельный процесс отправки создает этот файл minidump и передает его вместе со связанными PDB-файлами в хранилище отладчика моментальных снимков Application Insights. После успешной отправки минидамп удаляется с диска. Файлы журнала для процесса отправки хранятся на диске. В среде Служба приложений эти журналы можно найти в D:\Home\LogFiles
. Используйте сайт управления Kudu для Служба приложений, чтобы найти эти файлы журнала.
- Откройте приложение Служба приложений в портал Azure.
- Выберите Дополнительные инструменты или найдите Kudu.
- Выберите Выполнить.
- В раскрывающемся списке Консоль отладки выберите CMD.
- Выберите LogFiles.
Вы должны увидеть по крайней мере один файл с именем, начинающимся с Uploader_
или SnapshotUploader_
, и расширением .log
. Щелкните соответствующий значок, чтобы скачать файлы журнала или открыть их в браузере.
Имя файла содержит уникальный суффикс, определяющий экземпляр Служба приложений. Если экземпляр Служба приложений размещен на нескольких компьютерах, для каждого компьютера имеются отдельные файлы журнала. Когда средство отправки обнаруживает новый файл minidump, он записывается в файл журнала. Ниже приведен пример успешного snapshot и отправки:
SnapshotUploader.exe Information: 0 : Received Fork request ID 139e411a23934dc0b9ea08a626db16c5 from process 6368 (Low pri)
DateTime=2018-03-09T01:42:41.8571711Z
SnapshotUploader.exe Information: 0 : Creating minidump from Fork request ID 139e411a23934dc0b9ea08a626db16c5 from process 6368 (Low pri)
DateTime=2018-03-09T01:42:41.8571711Z
SnapshotUploader.exe Information: 0 : Dump placeholder file created: 139e411a23934dc0b9ea08a626db16c5.dm_
DateTime=2018-03-09T01:42:41.8728496Z
SnapshotUploader.exe Information: 0 : Dump available 139e411a23934dc0b9ea08a626db16c5.dmp
DateTime=2018-03-09T01:42:45.7525022Z
SnapshotUploader.exe Information: 0 : Successfully wrote minidump to D:\local\Temp\Dumps\c12a605e73c44346a984e00000000000\139e411a23934dc0b9ea08a626db16c5.dmp
DateTime=2018-03-09T01:42:45.7681360Z
SnapshotUploader.exe Information: 0 : Uploading D:\local\Temp\Dumps\c12a605e73c44346a984e00000000000\139e411a23934dc0b9ea08a626db16c5.dmp, 214.42 MB (uncompressed)
DateTime=2018-03-09T01:42:45.7681360Z
SnapshotUploader.exe Information: 0 : Upload successful. Compressed size 86.56 MB
DateTime=2018-03-09T01:42:59.6184651Z
SnapshotUploader.exe Information: 0 : Extracting PDB info from D:\local\Temp\Dumps\c12a605e73c44346a984e00000000000\139e411a23934dc0b9ea08a626db16c5.dmp.
DateTime=2018-03-09T01:42:59.6184651Z
SnapshotUploader.exe Information: 0 : Matched 2 PDB(s) with local files.
DateTime=2018-03-09T01:42:59.6809606Z
SnapshotUploader.exe Information: 0 : Stamp does not want any of our matched PDBs.
DateTime=2018-03-09T01:42:59.8059929Z
SnapshotUploader.exe Information: 0 : Deleted D:\local\Temp\Dumps\c12a605e73c44346a984e00000000000\139e411a23934dc0b9ea08a626db16c5.dmp
DateTime=2018-03-09T01:42:59.8530649Z
Примечание.
Приведенный выше пример относится к версии 1.2.0 Microsoft.ApplicationInsights.SnapshotCollector
пакета NuGet. В более ранних версиях вызывается MinidumpUploader.exe
процесс отправки, а журнал менее подробный.
В предыдущем примере ключ инструментирования имеет значение c12a605e73c44346a984e00000000000
. Это значение должно соответствовать ключу инструментирования для приложения.
Minidump связан с snapshot с идентификатором 139e411a23934dc0b9ea08a626db16c5
. Этот идентификатор можно использовать позже, чтобы найти связанную запись об исключении в Application Insights Analytics.
Средство отправки сканирует новые PDB-файлы примерно каждые 15 минут. Пример:
SnapshotUploader.exe Information: 0 : PDB rescan requested.
DateTime=2018-03-09T01:47:19.4457768Z
SnapshotUploader.exe Information: 0 : Scanning D:\home\site\wwwroot for local PDBs.
DateTime=2018-03-09T01:47:19.4457768Z
SnapshotUploader.exe Information: 0 : Local PDB scan complete. Found 2 PDB(s).
DateTime=2018-03-09T01:47:19.4614027Z
SnapshotUploader.exe Information: 0 : Deleted PDB scan marker : D:\local\Temp\Dumps\c12a605e73c44346a984e00000000000\6368.pdbscan
DateTime=2018-03-09T01:47:19.4614027Z
Для приложений, которые не размещены в Служба приложений, журналы загрузчика находятся в той же папке, что и минидампы: %TEMP%\Dumps\<ikey>
(где <ikey>
— ключ инструментирования).
Устранение неполадок Облачные службы
В Облачные службы временная папка по умолчанию может быть слишком маленькой для хранения файлов minidump, что приводит к потере моментальных снимков.
Требуемое пространство зависит от общего рабочего набора приложения и количества одновременных моментальных снимков.
Рабочий набор 32-разрядной веб-роли ASP.NET обычно составляет от 200 ДО 500 МБ. Разрешить по крайней мере два одновременных моментальных снимка.
Например, если приложение использует 1 ГБ общего рабочего набора, убедитесь, что для хранения моментальных снимков требуется не менее 2 ГБ места на диске.
Выполните следующие действия, чтобы настроить роль облачной службы с выделенным локальным ресурсом для моментальных снимков.
Добавьте новый локальный ресурс в облачную службу, изменив csdef-файл определения облачной службы. В следующем примере определяется ресурс
SnapshotStore
размером 5 ГБ.<LocalResources> <LocalStorage name="SnapshotStore" cleanOnRoleRecycle="false" sizeInMB="5120" /> </LocalResources>
Измените код запуска роли, чтобы добавить переменную среды, указывающую на локальный
SnapshotStore
ресурс. Для рабочих ролей код должен быть добавлен в метод ролиOnStart
:public override bool OnStart() { Environment.SetEnvironmentVariable("SNAPSHOTSTORE", RoleEnvironment.GetLocalResource("SnapshotStore").RootPath); return base.OnStart(); }
Для веб-ролей (ASP.NET) код следует добавить в метод веб-приложения
Application_Start
:using Microsoft.WindowsAzure.ServiceRuntime; using System; namespace MyWebRoleApp { public class MyMvcApplication : System.Web.HttpApplication { protected void Application_Start() { Environment.SetEnvironmentVariable("SNAPSHOTSTORE", RoleEnvironment.GetLocalResource("SnapshotStore").RootPath); // TODO: The rest of your application startup code } } }
Обновите файлApplicationInsights.config роли, чтобы переопределить временное расположение папки, используемое
SnapshotCollector
.<TelemetryProcessors> <Add Type="Microsoft.ApplicationInsights.SnapshotCollector.SnapshotCollectorTelemetryProcessor, Microsoft.ApplicationInsights.SnapshotCollector"> <!-- Use the SnapshotStore local resource for snapshots --> <TempFolder>%SNAPSHOTSTORE%</TempFolder> <!-- Other SnapshotCollector configuration options --> </Add> </TelemetryProcessors>
Переопределение папки "Теневое копирование"
Когда сборщик моментальных снимков запускается, он пытается найти на диске папку, подходящую для запуска процесса отправки моментальных снимков. Выбранная папка называется папкой теневого копирования.
Сборщик моментальных снимков проверяет несколько хорошо известных расположений, чтобы убедиться, что у него есть разрешения на копирование двоичных файлов средства отправки моментальных снимков. Используются следующие переменные среды:
Fabric_Folder_App_Temp
LOCALAPPDATA
APPDATA
TEMP
Если подходящую папку не удается найти, сборщик моментальных снимков сообщает об ошибке "Не удалось найти подходящую папку теневого копирования".
В случае сбоя копирования сборщик моментальных снимков сообщает об ошибке ShadowCopyFailed
.
Если средство отправки не удается запустить, сборщик моментальных снимков сообщает об ошибке UploaderCannotStartFromShadowCopy
. Текст сообщения часто содержит System.UnauthorizedAccessException
. Эта ошибка обычно возникает из-за того, что приложение выполняется под учетной записью с ограниченными разрешениями. У учетной записи есть разрешение на запись в папку теневого копирования, но она не имеет разрешения на выполнение кода.
Так как эти ошибки обычно возникают во время запуска, за ними обычно ExceptionDuringConnect
следует сообщение об ошибке "Uploader не удалось запустить".
Чтобы обойти эти ошибки, можно указать папку теневого копирования вручную с помощью параметра конфигурации ShadowCopyFolder
. Например, с помощью ApplicationInsights.config:
<TelemetryProcessors>
<Add Type="Microsoft.ApplicationInsights.SnapshotCollector.SnapshotCollectorTelemetryProcessor, Microsoft.ApplicationInsights.SnapshotCollector">
<!-- Override the default shadow copy folder. -->
<ShadowCopyFolder>D:\SnapshotUploader</ShadowCopyFolder>
<!-- Other SnapshotCollector configuration options -->
</Add>
</TelemetryProcessors>
Или, если вы используете appsettings.json с приложением .NET Core:
{
"ApplicationInsights": {
"InstrumentationKey": "<your instrumentation key>"
},
"SnapshotCollectorConfiguration": {
"ShadowCopyFolder": "D:\\SnapshotUploader"
}
}
Использование поиска Application Insights для поиска исключений с моментальными снимками
При создании snapshot вызывающее исключение помечается идентификатором snapshot. Этот snapshot идентификатор включается в качестве настраиваемого свойства при сообщении об исключении в Application Insights. С помощью Поиск в Application Insights можно найти все записи с пользовательским свойствомai.snapshot.id
.
- Перейдите к ресурсу Application Insights в портал Azure.
- Выберите Поиск.
- Введите
ai.snapshot.id
в текстовое поле Поиск и нажмите клавишу ВВОД.
Если этот поиск не возвращает результатов, то в Application Insights в выбранном диапазоне времени не было сообщено ни о каких моментальных снимках.
Чтобы найти определенный идентификатор snapshot из журналов загрузчика, введите этот идентификатор в поле Поиск. Если не удается найти записи для snapshot, который, как вы знаете, был отправлен, выполните следующие действия.
Дважды проверка, что вы ищете правильный ресурс Application Insights, проверив ключ инструментирования.
Настройте фильтр диапазона времени поиска, чтобы покрыть этот диапазон времени, используя метку времени из журнала загрузчика.
Если вы по-прежнему не видите исключение с этим идентификатором snapshot, запись об исключении не была сообщена в Application Insights. Такая ситуация может произойти, если ваше приложение произошло сбоем после того, как оно приняло snapshot но до того, как оно сообщило о записи исключения. В этом случае проверка журналы Служба приложений в разделеDiagnose and solve problems
, чтобы узнать, были ли непредвиденные перезапуски или необработанных исключений.
Изменение правил сетевого прокси-сервера или брандмауэра
Если приложение подключается к Интернету через прокси-сервер или брандмауэр, может потребоваться обновить правила для взаимодействия со службой отладчика моментальных снимков.
IP-адреса, используемые отладчиком моментальных снимков Application Insights, включаются в тег службы Azure Monitor. Дополнительные сведения см. в документации по тегам служб.
Свяжитесь с нами для получения помощи
Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.