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.
Cuando se habilita, el Depurador de instantáneas recopila automáticamente una instantánea de depuración del código fuente y las variables cuando se produce una excepción en su aplicación .NET en ejecución. Snapshot Debugger en Application Insights:
- Supervisa los registros generados por el sistema desde la aplicación web.
- Recopila instantáneas en las excepciones de inicio superior.
- Proporciona información necesaria para diagnosticar problemas en entornos de producción.
Aplicaciones y entornos admitidos
Aplicaciones
La recopilación de instantáneas está disponible para:
- .NET Framework 4.6.2 y versiones más recientes.
- .NET 6.0 o posterior en Windows.
Entornos
Snapshot Debugger admite los siguientes entornos:
- Azure App Service
- Funciones de Azure
- Azure Cloud Services ejecutando la familia de Sistema Operativo 4 o posterior
- Azure Service Fabric que se ejecuta en Windows Server 2012 R2 o posterior
- Azure Virtual Machines y Azure Virtual Machine Scale Sets ejecutando Windows Server 2012 R2 o posterior
- Máquinas virtuales o físicas locales que ejecutan Windows Server 2012 R2 o posterior o Windows 8.1 o posterior
Nota
No se admiten aplicaciones cliente, como WPF, Windows Forms o UWP.
Requisitos previos para Snapshot Debugger
Paquetes y configuraciones
- Incluir el paquete NuGet de Snapshot Collector en la aplicación.
- Configurar parámetros para la recopilación en
ApplicationInsights.config.
Permisos
- Compruebe que tiene la función Application Insights Snapshot Debugger en la Application Insights Snapshot de destino.
Funcionamiento de Snapshot Debugger
Snapshot Debugger funciona como un procesador de telemetría de Application Insights. Cuando se ejecuta la aplicación, el procesador de telemetría de Snapshot Debugger se une a la canalización de registros generados por el sistema de la aplicación.
Importante
Las instantáneas pueden contener datos personales u otra información confidencial en los valores de las variables y parámetros. Application Insights almacena los datos de instantáneas en la misma región que su recurso.
Proceso del Snapshot Debugger
El proceso del Snapshot Debugger se inicia y termina con el método TrackException. Una instantánea de proceso es un clon suspendido del proceso en ejecución. Los usuarios experimentan poca o ninguna interrupción. En un escenario típico:
La aplicación produce una excepción y la notifica a Application Insights mediante una llamada al
TrackExceptionmétodo .Snapshot Debugger supervisa las excepciones a medida que se inician al suscribirse al evento
AppDomain.CurrentDomain.FirstChanceException.Snapshot Debugger incrementa un contador para el identificador del problema.
Cuando el contador alcanza el
ThresholdForSnapshottingvalor, Snapshot Debugger agrega el identificador de problema a un plan de recopilación.Nota
El
ThresholdForSnapshottingvalor mínimo predeterminado es 1. Con este valor, la aplicación debe desencadenar la misma excepción dos veces antes de que snapshot Debugger cree una instantánea.Snapshot Debugger calcula el identificador de problema del evento de excepción y lo compara con los identificadores de problema del plan de recopilación.
Si hay una coincidencia entre identificadores de problema, Snapshot Debugger crea una instantánea del proceso en ejecución.
Snapshot Debugger asigna a la instantánea un identificador único y marca la excepción con ese identificador.
Nota
La
SnapshotsPerTenMinutesLimitconfiguración limita la tasa de creación de instantáneas. De manera predeterminada, el límite es una instantánea cada 10 minutos.Después de que el controlador
FirstChanceExceptiontermine, la aplicación procesa la excepción generada de forma habitual.La excepción vuelve a alcanzar el método
TrackException, que la informa a Application Insights junto con el identificador de la instantánea.
Nota
Establezca true en IsEnabledInDeveloperMode para generar instantáneas mientras depura en Visual Studio.
Proceso de subida de instantáneas
Mientras el proceso Snapshot Debugger sigue ejecutándose y gestionando el tráfico de los usuarios con mínimas interrupciones, transfiere la instantánea al proceso Snapshot Uploader. En un escenario típico, el cargador de instantáneas:
Crea un minivolcado.
Carga el minivolcado en Application Insights, junto con cualquier símbolo relevante (archivos .pdb).
Nota
El cargador de instantáneas no puede cargar más de 50 instantáneas al día.
Si ha habilitado Snapshot Debugger, pero no ve las instantáneas, consulte la Guía de solución de problemas.
Actualizar el depurador de instantáneas
El Depurador de instantáneas se actualiza automáticamente mediante la extensión de sitio de Application Insights preinstalada e integrada.
Agregar manualmente una extensión de sitio de Application Insights para mantener actualizado Snapshot Debugger ha quedado en desuso.
Sobrecarga del depurador de instantáneas
Snapshot Debugger está diseñado para su uso en entornos de producción. La configuración predeterminada incluye límites de velocidad para minimizar el impacto en las aplicaciones.
Sin embargo, puede experimentar una pequeña sobrecarga de CPU, memoria y E/S asociada al Depurador de instantáneas, como:
- Cuando la aplicación produce una excepción
- Si el controlador de excepciones decide crear una instantánea
- Cuando se llama a
TrackException
No hay ningún costo adicional para almacenar los datos que captura snapshot Debugger.
Consulte escenarios de ejemplo donde podría experimentar una sobrecarga con el Snapshot Debugger.
Optimizaciones de código
Si Snapshot Debugger recopila instantáneas de la aplicación, es posible que vea información de excepciones relacionada en la información general consolidada sobre optimizaciones de código.
Limitaciones del depurador de instantáneas
Snapshot Debugger tiene las siguientes limitaciones:
Retención de datos
Las instantáneas de depuración se guardan durante 15 días. Esta directiva de retención de datos predeterminadas se establece para cada aplicación. Para aumentar este valor, abra un caso de soporte técnico en el portal de Azure. Cada instancia de Application Insights permite un máximo de 50 instantáneas al día.
Publicación de símbolos
Snapshot Debugger requiere archivos de símbolos en el servidor de producción para:
- Descodificar variables
- Proporcionar una experiencia de depuración en Visual Studio
De forma predeterminada, Visual Studio 2017, versión 15.2 o posterior, publica símbolos para las compilaciones de versión cuando se realiza la publicación en App Service.
En las versiones anteriores, tiene que agregar la siguiente línea al archivo
.pubxmlde su perfil de publicación para que los símbolos se publiquen en modo de versión:<ExcludeGeneratedDebugSymbol>False</ExcludeGeneratedDebugSymbol>Para Azure Compute y otros tipos, asegúrese de que los archivos de símbolos son:
- En la misma carpeta de la aplicación principal
.dll(normalmente,wwwroot/bin) o - Disponible en la ruta de acceso actual.
Para obtener más información sobre las opciones de símbolo disponibles, consulte la documentación de Visual Studio. Para obtener los mejores resultados, use Full, Portable o Embedded.
Compilaciones optimizadas
En algunos casos, no se pueden ver variables locales en compilaciones de versión porque el compilador JIT aplica optimizaciones.
Sin embargo, en App Service, Snapshot Debugger puede invalidar la optimización de los métodos de lanzamiento que forman parte de su plan de recopilación.
Sugerencia
Instale la extensión de sitio de Application Insights en la instancia de App Service para obtener soporte para la desoptimización.
Contenido relacionado
Habilitar el Snapshot Debugger de Application Insights para tu aplicación: