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 Application Insights Profiler para .NET se ejecuta activamente y recopila seguimientos, normalmente agrega entre el 5 % y el 15 % de la sobrecarga de CPU y memoria al servidor.
No hay ningún costo adicional por almacenar los datos capturados por .NET 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 | Sí | Sí |
Azure Virtual Machines y Virtual Machine Scale Sets para Windows | Sí | Sí |
Azure Virtual Machines y Virtual Machine Scale Sets para Linux | No | Sí |
Azure Cloud Services | Sí | Sí |
Azure Container Instances para Windows | No | Sí |
Azure Container Instances para Linux | No | Sí |
Kubernetes | No | Sí |
Funciones de Azure | Sí | Sí |
Azure Service Fabric | Sí | Sí |
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:
- Azure App Service
- Aplicación Azure Functions
- Azure Cloud Services
- Aplicación de Azure Service Fabric
- Azure Virtual Machines
- Generación de perfiles de aplicaciones web de Azure en Linux de ASP.NET Core con Application Insights Profiler
- Generación de perfiles de contenedores de Azure activos con Application Insights