Generación de perfiles de aplicaciones de producción en Azure con Application Insights Profiler para .NET

Diagnosticar los problemas de rendimiento de su aplicación puede resultar difícil, especialmente cuando se ejecuta en un entorno de producción en la nube dinámica. La lentitud en las respuestas de una aplicación puede deberse a la infraestructura, el marco o el código de la aplicación que controla la solicitud en la canalización.

Con Application Insights Profiler para .NET, puede capturar, identificar y ver los seguimientos de rendimiento de la aplicación que se ejecuta en Azure, independientemente del escenario. El proceso de seguimiento de .NET Profiler se produce automáticamente, a escala, y no afecta negativamente a sus usuarios. .NET Profiler identifica:

  • Tiempos de respuesta medio, más rápido y más lento para cada solicitud web realizada por los clientes.
  • La ruta de acceso del código "activo" que tarda más tiempo cuando se atiende una solicitud web determinada.

Habilite Profiler para .NET en todas las aplicaciones de Azure para recopilar datos con los siguientes desencadenadores:

  • Desencadenador de muestreo: inicia Profiler aleatoriamente una vez cada hora aproximadamente durante 2 minutos.
  • Desencadenador de CPU: inicia Profiler cuando el porcentaje de uso de CPU supera el 80 %.
  • Desencadenador de memoria: inicia Profiler cuando el uso de memoria es superior al 80 %.

Cada uno de estos desencadenadores se puede configurar, habilitar o deshabilitar.

Frecuencia de muestreo y sobrecarga

De manera predeterminada, generador de perfiles recopila activamente seguimientos cada hora durante 30 segundos o durante períodos de uso elevado de CPU o memoria durante 30 segundos. Los seguimientos por hora (denominados muestreo) son excelentes para el ajuste proactivo, mientras que los seguimientos elevados de CPU y memoria (denominados desencadenadores) son útiles para la solución de problemas reactiva.

Nota:

Cuando Profiler se está ejecutando activamente y recopilando seguimientos, normalmente agrega entre el 5 % y el 15 % de la sobrecarga de CPU y memoria al servidor.

No hay ningún costo adicional para almacenar los datos capturados por Profiler. Los datos se eliminan automáticamente después de 15 días.

Compatible con .NET Profiler

Profiler funciona con aplicaciones .NET implementadas en los siguientes servicios de Azure. En los vínculos siguientes se pueden encontrar instrucciones específicas para habilitar Profiler para cada tipo de servicio.

Plataforma de Compute .NET (>= 4.6) .NET Core
Azure App Service
Azure Virtual Machines y Virtual Machine Scale Sets para Windows
Azure Virtual Machines y Virtual Machine Scale Sets para Linux No
Azure Cloud Services
Azure Container Instances para Windows No
Azure Container Instances para Linux No
Kubernetes No
Funciones de Azure
Azure Service Fabric

Nota:

También puede usar Java Profiler para Azure Monitor Application Insights, actualmente en versión preliminar.

Si ha habilitado Profiler para .NET, pero no ve seguimientos, consulte la guía de solución de problemas.

Limitaciones

  • Retención de datos: el período de retención de datos predeterminado es de cinco días.
  • Generación de perfiles de aplicaciones web:
    • Aunque puede usar .NET Profiler sin coste adicional, la aplicación web debe estar, como mínimo, hospedada en el nivel Básico de la característica Web Apps de Azure App Service.
    • Solo puede asociar una instancia de Profiler a cada aplicación web.
    • .NET Profiler en Linux solo se admite en aplicaciones web basadas en Windows.

Pasos siguientes

Vea cómo habilitar .NET Profiler en un servicio de Azure: