Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Si la depuración o la observabilidad no son suficientes, .NET admite mecanismos de diagnóstico adicionales.
Seguimiento con Event Source
Event Source) proporciona la capacidad de recopilar información de diagnóstico detallada sobre lo que sucede dentro de los procesos de .NET. Incluye información de telemetría para el tiempo de ejecución, GC, bibliotecas y código de aplicación.
Los datos del origen de eventos se pueden recopilar en proceso mediante la System.Diagnostics.Tracing.EventListener API o con herramientas de diagnóstico externas, como Visual Studio, dotnet-monitor, dotnet-trace, PerfView y los scripts perfcollect . El uso de las herramientas externas para recopilar datos de origen de eventos en seguimientos se usa normalmente para el análisis de rendimiento.
EventPipe
EventPipe es un componente en tiempo de ejecución similar a ETW o LTTng que se puede usar para recopilar datos de seguimiento. El objetivo de EventPipe es permitir a los desarrolladores de .NET realizar un seguimiento sencillo de sus aplicaciones .NET sin tener que depender de componentes nativos del sistema operativo específicos de la plataforma como ETW o LTTng.
EventPipe es el mecanismo subyacente de muchas de las herramientas de diagnóstico. Se puede usar para consumir eventos emitidos por el entorno de ejecución, así como eventos personalizados escritos con EventSource.
Volcados
Un volcado es un archivo que contiene una instantánea del proceso en el momento de la creación del volcado. Los volcados de memoria pueden ser útiles para examinar el estado de la aplicación con fines de depuración.
Símbolos
Los símbolos son una asignación entre el código de origen y el binario que produce el compilador. Los depuradores de .NET y las herramientas de seguimiento suelen usarlos para resolver números de línea de origen, nombres de variables locales y otros tipos de información de diagnóstico.
Puerto de diagnóstico
El entorno de ejecución de .NET expone un punto de conexión de servicio que permite a otros procesos enviar comandos de diagnóstico y recibir respuestas mediante un canal IPC. Este punto de conexión se denomina puerto de diagnóstico. Se pueden enviar comandos a un puerto de diagnóstico con estos fines:
- Capturar un volcado de memoria.
- Iniciar un seguimiento de EventPipe.
- Solicitar la línea de comandos usada para iniciar la aplicación.
DiagnosticSource y DiagnosticListener
DiagnosticSource es un módulo que permite instrumentar el código para el registro en tiempo de producción de cargas de datos enriquecidos para su consumo dentro del proceso que se ha instrumentado. En tiempo de ejecución, los consumidores pueden detectar dinámicamente orígenes de datos y suscribirse a los que le interesen. System.Diagnostics.DiagnosticSource se diseñó para permitir que las herramientas en proceso accedan a datos enriquecidos, como por ejemplo, por bibliotecas de instrumentación de OpenTelemetry. Los datos de DiagnosticSource también se pueden emitir mediante EventPipe, lo que permite recopilar datos de diagnóstico enriquecidos mediante herramientas dedicadas.
Recopilación de diagnósticos en contenedores
Las herramientas de diagnóstico que se usan en los entornos de Linux que no están en contenedores también se pueden utilizar para recopilar diagnósticos en contenedores. Solo es necesario realizar algunos cambios en la utilización para asegurarse de que las herramientas funcionan en un contenedor de Docker.