Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Если отладка или наблюдаемость недостаточно, .NET поддерживает дополнительные механизмы диагностики.
Трассировка с помощью источника событий
Источник событий предоставляет возможность собирать подробные диагностические сведения о том, что происходит в процессах .NET. Она содержит сведения телеметрии для среды выполнения, GC, библиотек и кода приложения.
Данные источника событий можно собирать в процессе с помощью API или с внешними System.Diagnostics.Tracing.EventListener средствами диагностика, такими как Visual Studio, dotnet-monitor, dotnet-trace, PerfView и скрипты Perfcollect. Использование внешних инструментов для сбора данных источника событий в трассировках часто применяется для анализа производительности.
EventPipe
EventPipe — это компонент среды выполнения, который можно использовать для сбора данных трассировки, аналогичных ETW или LTTng. Цель EventPipe заключается в том, чтобы разработчики .NET могли легко отслеживать свои приложения .NET без необходимости полагаться на компоненты, зависящие от платформы, собственные ОС, такие как ETW или LTTng.
EventPipe — это механизм многих средств диагностики. Его можно использовать для использования событий, создаваемых средой выполнения, а также пользовательских событий, написанных с помощью EventSource.
Дампы
Дамп — это файл, содержащий моментальный снимок процесса во время создания дампа. Дампы могут быть полезны для изучения состояния вашего приложения в целях отладки.
Символы
Символы представляют собой сопоставление между исходным кодом и двоичным кодом, который создается компилятором. Они часто используются отладчиками .NET и средствами трассировки для разрешения номеров исходных строк, имен локальных переменных и других типов диагностических сведений.
Порт диагностики
Среда выполнения .NET предоставляет конечную точку службы, которая позволяет другим процессам отправлять диагностические команды и получать ответы через канал IPC. Эта конечная точка называется портом диагностики. Команды можно отправлять в порт диагностики:
- Захват дампа памяти.
- Запустите трассировку EventPipe.
- Запросите командную строку, используемую для запуска приложения.
DiagnosticSource и DiagnosticListener
DiagnosticSource — это модуль, который позволяет инструментировать код для журналирования подробных данных в рабочее время, чтобы использовать их в процессе, который был инструментирован. Во время выполнения потребители могут динамически обнаруживать источники данных и подписываться на интересующие их источники. System.Diagnostics.DiagnosticSource был разработан для предоставления инструментам для внутрипроцессного доступа к богатым данным, например, через библиотеки инструментирования OpenTelemetry. Данные DiagnosticSource также могут быть исходящими через EventPipe, что позволяет собирать широкие диагностические данные с помощью выделенных средств.
Сбор данных диагностики в контейнерах
Средства диагностики, используемые в средах Linux без контейнеров, позволяют также осуществлять и сбор диагностики в контейнерах. Требуется лишь частично изменить использование, чтобы обеспечить работу этих средств в контейнере Docker.