Habilitación de la supervisión de aplicaciones en Azure App Service para aplicaciones .NET, Node.js, Python y Java
Artículo
La instrumentación automática, también conocida como tiempo de ejecución supervisión, es la manera más fácil de habilitar Application Insights para Azure App Service sin necesidad de cambios de código ni configuraciones avanzadas. En función de su escenario específico, evalúe si necesita una supervisión más avanzada a través de instrumentación manual.
Nota:
El 31 de marzo de 2025 finalizará la compatibilidad con la ingesta de claves de instrumentación. La ingesta de claves de instrumentación seguirá funcionando, pero la característica ya no recibirá actualizaciones ni soporte técnico. Transición a las cadenas de conexión para aprovechar las nuevas funcionalidades.
Si se detecta tanto la supervisión de la instrumentación automática como la instrumentación manual basada en SDK, solo se respeta la configuración de instrumentación manual. Esta disposición impide que se envíen datos duplicados. Para obtener más información, consulte Solución de problemas.
Seleccione Application Insights en el menú de navegación izquierdo del servicio de aplicaciones y luego seleccione Habilitar.
Cree un nuevo recurso o seleccione un recurso de Application Insights para esta aplicación.
Nota
Al seleccionar Aceptar para crear el recurso, se le pedirá Aplicar la configuración de supervisión. Al seleccionar Continuar, se vincula el nuevo recurso de Application Insights al servicio de aplicaciones. A continuación, el servicio de aplicaciones se reinicia.
Después de especificar qué recurso se debe usar, puede elegir cómo quiere que Application Insights recopile los datos de cada plataforma para la aplicación. Las opciones de recopilación de ASP.NET Core son Recomendadas o Deshabilitadas.
Importante
Si se detecta tanto la supervisión de la instrumentación automática como la instrumentación manual basada en SDK, solo se respeta la configuración de instrumentación manual. Esta disposición impide que se envíen datos duplicados. Para obtener más información, consulte Solución de problemas.
Nota:
No se admite la combinación de APPINSIGHTS_JAVASCRIPT_ENABLED y urlCompression. Para más información, consulte Solución de problemas.
Autoinstrumentación en Azure Portal
Seleccione Application Insights en el menú de navegación izquierdo del servicio de aplicaciones y luego seleccione Habilitar.
Cree un nuevo recurso o seleccione un recurso de Application Insights para esta aplicación.
Nota
Al seleccionar Aceptar para crear el recurso, se le pedirá Aplicar la configuración de supervisión. Al seleccionar Continuar, se vincula el nuevo recurso de Application Insights al servicio de aplicaciones. A continuación, el servicio de aplicaciones se reinicia.
Después de especificar qué recurso se debe usar, puede elegir cómo quiere que Application Insights recopile los datos de cada plataforma para la aplicación. La supervisión de aplicaciones ASP.NET está habilitada de forma predeterminada con dos niveles diferentes de recopilación, Recomendado y Básico.
En la siguiente tabla se resumen los datos recopilados para cada ruta.
Data
Recomendado
Básico
Agrega las tendencias de uso de CPU, memoria y E/S.
Sí
No
Recopila las tendencias de uso y habilita la correlación entre los resultados de disponibilidad y las transacciones.
Sí
Sí
Recopila las excepciones no controladas por el proceso de host.
Sí
Sí
Mejora la precisión de las métricas de APM con carga, cuando se usa el muestreo.
Sí
Sí
Correlaciona los microservicios entre los límites de solicitud y dependencia.
Sí
No (solo funcionalidades de APM de instancia única)
Seleccione Application Insights en el menú de navegación izquierdo del servicio de aplicaciones y luego seleccione Habilitar.
Cree un nuevo recurso o seleccione un recurso de Application Insights para esta aplicación.
Nota
Al seleccionar Aceptar para crear el recurso, se le pedirá Aplicar la configuración de supervisión. Al seleccionar Continuar, se vincula el nuevo recurso de Application Insights al servicio de aplicaciones. A continuación, el servicio de aplicaciones se reinicia.
Importante
Si se detecta tanto la supervisión de la instrumentación automática como la instrumentación manual basada en SDK, solo se respeta la configuración de instrumentación manual. Esta disposición impide que se envíen datos duplicados. Para más información, consulte la sección Solución de problemas.
Nota:
Puede configurar el agente asociado automáticamente mediante la variable de entorno APPLICATIONINSIGHTS_CONFIGURATION_CONTENT en la hoja de App Service Environment. Para obtener más información sobre las opciones de configuración que se pueden pasar a través de esta variable de entorno, consulte Configuración de Node.js.
Application Insights para Node.js se integra con Azure App Service en Linux, en los contenedores basados en código y los personalizados, y con App Service en Windows para las aplicaciones basadas en código. La integración se encuentra en versión preliminar pública.
Autoinstrumentación en Azure Portal
Seleccione Application Insights en el menú de navegación izquierdo del servicio de aplicaciones y luego seleccione Habilitar.
Cree un nuevo recurso o seleccione un recurso de Application Insights para esta aplicación.
Nota
Al seleccionar Aceptar para crear el recurso, se le pedirá Aplicar la configuración de supervisión. Al seleccionar Continuar, se vincula el nuevo recurso de Application Insights al servicio de aplicaciones. A continuación, el servicio de aplicaciones se reinicia.
Una vez especificado qué recurso utilizar, ya está todo listo.
Application Insights para Python se integra con Azure App Service para Linux basado en código. La integración se encuentra en versión preliminar pública y agrega el SDK de Python, que se encuentra en disponibilidad general. Instrumenta bibliotecas populares de Python en el código, lo que le permite recopilar y correlacionar automáticamente las dependencias, los registros y las métricas. Para ver qué llamadas y métricas se recopilan, consulte Bibliotecas de Python
La telemetría de registro se recopila en el nivel del registrador raíz. Para obtener más información sobre la jerarquía de registro nativo de Python, consulte la documentación de registro de Python.
Requisitos previos
Python versión 3.11 o anterior.
App Service debe implementarse como código. No se admiten contenedores personalizados.
Autoinstrumentación en Azure Portal
Seleccione Application Insights en el menú de navegación izquierdo del servicio de aplicaciones y luego seleccione Habilitar.
Cree un nuevo recurso o seleccione un recurso de Application Insights para esta aplicación.
Nota
Al seleccionar Aceptar para crear el recurso, se le pedirá Aplicar la configuración de supervisión. Al seleccionar Continuar, se vincula el nuevo recurso de Application Insights al servicio de aplicaciones. A continuación, el servicio de aplicaciones se reinicia.
Especifique el recurso y estará listo para su uso.
Bibliotecas de Python
Después de instrumentar, recopilará las llamadas y las métricas de estas bibliotecas de Python:
Para usar la instrumentación de OpenTelemetry para Django, debe establecer la variable de entorno DJANGO_SETTINGS_MODULE en la configuración de App Service para que apunte desde la carpeta de la aplicación al módulo de configuración.
Adición de una biblioteca de instrumentación de la comunidad
Puede recopilar más datos automáticamente al incluir bibliotecas de instrumentación de la comunidad de OpenTelemetry.
Precaución
No se admite ni garantiza la calidad de las bibliotecas de instrumentación de la comunidad. Para sugerir una para nuestra distribución, publique o vote en nuestra comunidad de comentarios. Tenga en cuenta que algunos se basan en especificaciones de OpenTelemetry experimentales y pueden introducir cambios importantes en el futuro.
Para agregar la biblioteca de instrumentación de OpenTelemetry de la comunidad, instálela usando el archivo requirements.txt de la aplicación. La instrumentación automática de OpenTelemetry recopila e instrumenta automáticamente todas las bibliotecas instaladas. Busque la lista de bibliotecas de la comunidad aquí.
Actualizar manualmente la extensión o agente de supervisión
Actualización de las versiones 2.8.9 y posteriores
La actualización desde la versión 2.8.9 se realiza automáticamente, sin acciones adicionales. Los nuevos bits de supervisión se entregan en segundo plano al servicio de aplicaciones de destino y se seleccionan al reiniciar la aplicación.
Para comprobar qué versión de la extensión se ejecuta, vaya a https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
Actualización de las versiones 1.0.0 a 2.6.5
A partir de la versión 2.8.9 se usa la extensión de sitio preinstalada. Si usa una versión anterior, puede actualizarla de dos maneras:
Actualizar mediante habilitación a través de Azure Portal: incluso si tiene instalada la extensión de Application Insights para App Service, la interfaz de usuario muestra solo el botón Habilitar. En segundo plano, se quita la extensión de sitio privado anterior.
Establezca la configuración de la aplicación para habilitar la extensión de sitio preinstalada ApplicationInsightsAgent. Para obtener más información, consulte Habilitar a través de PowerShell.
Quite manualmente la extensión de sitio privada denominada Extensión de Application Insights para Azure App Service.
Si la actualización se realiza desde una versión anterior a la 2.5.1, compruebe que los archivos DLL de ApplicationInsights se quitan de la carpeta bin de la aplicación. Para más información, consulte Solución de problemas.
Actualización de las versiones 2.8.9 y posteriores
La actualización desde la versión 2.8.9 se realiza automáticamente, sin acciones adicionales. Los nuevos bits de supervisión se entregan en segundo plano al servicio de aplicaciones de destino y se seleccionan al reiniciar la aplicación.
Para comprobar qué versión de la extensión se ejecuta, vaya a https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
Actualización de las versiones 1.0.0 a 2.6.5
A partir de la versión 2.8.9 se usa la extensión de sitio preinstalada. Si usa una versión anterior, puede actualizarla de dos maneras:
Actualizar mediante habilitación a través de Azure Portal: incluso si tiene instalada la extensión de Application Insights para App Service, la interfaz de usuario muestra solo el botón Habilitar. En segundo plano, se quita la extensión de sitio privado anterior.
Establezca la configuración de la aplicación para habilitar la extensión de sitio preinstalada ApplicationInsightsAgent. Para obtener más información, consulte Habilitar a través de PowerShell.
Quite manualmente la extensión de sitio privada denominada Extensión de Application Insights para Azure App Service.
Si la actualización se realiza desde una versión anterior a la 2.5.1, compruebe que los archivos DLL de ApplicationInsights se quitan de la carpeta bin de la aplicación. Para más información, consulte Solución de problemas.
La versión de Java de Application Insights se actualiza automáticamente como parte de las actualizaciones de App Service. Si encuentra un problema que se corrigió en la versión más reciente del agente de Java de Application Insights, puede actualizarlo manualmente.
Carga del archivo .jar del agente de Java para App Service.
a. En primer lugar, siga las instrucciones que se indican aquí para obtener la versión más reciente de la CLI de Azure.
b. A continuación, siga las instrucciones que se indican aquí para obtener la versión más reciente del agente de Java de Application Insights.
c. A continuación, implemente el archivo .jar del agente de Java en App Service mediante el siguiente comando: az webapp deploy --src-path applicationinsights-agent-{VERSION_NUMBER}.jar --target-path java/applicationinsights-agent-{VERSION_NUMBER}.jar --type static --resource-group {YOUR_RESOURCE_GROUP} --name {YOUR_APP_SVC_NAME}. Como alternativa, puede usar esta guía para implementar el agente mediante el complemento Maven.
Deshabilite Application Insights a través de la pestaña Application Insights de Azure Portal.
Una vez cargado el archivo .jar del agente, vaya a las configuraciones de App Service. Si necesita usar comando de inicio para Linux, incluya argumentos JVM:
El comando de inicio no acepta JAVA_OPTS para JavaSE ni CATALINA_OPTS para Tomcat.
Si no usa el comando de inicio, cree una nueva variable de entorno, JAVA_OPTS para JavaSE o CATALINA_OPTS para Tomcat, con el valor -javaagent:{PATH_TO_THE_AGENT_JAR}/applicationinsights-agent-{VERSION_NUMBER}.jar.
Para aplicar los cambios, reinicie la aplicación.
Nota:
Si establece el JAVA_OPTS para JavaSE o CATALINA_OPTS para la variable de entorno de Tomcat, debe deshabilitar Application Insights en Azure Portal. Como alternativa, si prefiere habilitar Application Insights desde el portal, asegúrese de no establecer la variable JAVA_OPTS para JavaSE o CATALINA_OPTS para Tomcat en la configuración de App Service.
La versión Node.js de Application Insights se actualiza automáticamente como parte de las actualizaciones de App Service y no se puede actualizar manualmente.
Si encuentra un problema que se corrigió en la versión más reciente del SDK de Application Insights, puede quitar la instrumentación automática e instrumentar manualmente la aplicación con la versión más reciente del SDK.
La versión de Python de Application Insights se actualiza automáticamente como parte de las actualizaciones de App Service y no se puede actualizar manualmente.
Si encuentra un problema que se corrigió en la versión más reciente del SDK de Application Insights, puede quitar la instrumentación automática e instrumentar manualmente la aplicación con la versión más reciente del SDK.
Configuración de la extensión o agente de supervisión
Actualmente no ofrecemos opciones para configurar la extensión de supervisión para ASP.NET Core.
Para configurar el muestreo, algo que antes se podía controlar mediante el archivo applicationinsights.config, ahora puede interactuar con él a través de la configuración de la aplicación con el prefijo MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor correspondiente.
Por ejemplo, para cambiar el porcentaje de muestreo inicial, puede crear una configuración de la aplicación de MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor_InitialSamplingPercentage y un valor de 100.
Para deshabilitar el muestreo, establezca MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor_MinSamplingPercentage en un valor de 100.
Para obtener la lista de valores y definiciones de procesador de telemetría de muestreo adaptable compatibles, puede consultar el código y la documentación de muestreo.
Después de especificar qué recurso usar, puede configurar el agente de Java. Si no configura el agente de Java, se aplican las configuraciones predeterminadas.
El conjunto de configuraciones completo está disponible. Solo tiene que pegar un archivo JSON válido. Excluya la cadena de conexión y las configuraciones que se encuentran en versión preliminar: puede agregar los elementos que actualmente se encuentran en versión preliminar a medida que estén disponibles con carácter general.
Una vez que modifique las configuraciones a través de Azure Portal, APPLICATIONINSIGHTS_CONFIGURATION_FILE variable de entorno se rellenan automáticamente y aparecen en el panel de configuración de App Service. Esta variable contiene el contenido JSON completo que ha pegado en el cuadro de texto de configuración de Azure Portal para la aplicación Java.
El agente Node.js se puede configurar mediante JSON. Establezca la variable de entorno APPLICATIONINSIGHTS_CONFIGURATION_CONTENT en la cadena JSON o establezca la variable de entorno APPLICATIONINSIGHTS_CONFIGURATION_FILE en la ruta de acceso del archivo que contiene el JSON.
Si se establece en None, deshabilita la recopilación y exportación de la telemetría de registros.
OTEL_METRICS_EXPORTER
Si se establece en None, deshabilita la recopilación y exportación de la telemetría de métricas.
OTEL_TRACES_EXPORTER
Si se establece en None, deshabilita la recopilación y exportación de la telemetría de seguimiento distribuido.
OTEL_BLRP_SCHEDULE_DELAY
Especifica el intervalo de exportación de registros en milisegundos. Tiene como valor predeterminado 5000.
OTEL_BSP_SCHEDULE_DELAY
Especifica el intervalo de exportación del seguimiento distribuido en milisegundos. Tiene como valor predeterminado 5000.
OTEL_TRACES_SAMPLER_ARG
Especifica la proporción de telemetría de seguimiento distribuido que se va a muestrear. Los valores aceptados van del 0 al 1. El valor predeterminado es 1.0, lo que significa que no se muestrean datos de telemetría.
OTEL_PYTHON_DISABLED_INSTRUMENTATIONS
Especifica qué instrumentaciones de OpenTelemetry se deben deshabilitar. Cuando se deshabilita, las instrumentaciones no se ejecutan como parte de la instrumentación automática. Acepta una lista separada por comas de nombres de biblioteca en minúscula. Por ejemplo, establézcalo en "psycopg2,fastapi" para deshabilitar las instrumentaciones de Psycopg2 y FastAPI. El valor predeterminado es una lista vacía, lo que habilita todas las instrumentaciones admitidas.
La supervisión de cliente está habilitada de manera predeterminada para las aplicaciones de ASP.NET Core con la recopilación recomendada, independientemente de si está presente el valor APPINSIGHTS_JAVASCRIPT_ENABLED de la aplicación.
Si quiere habilitar la supervisión de cliente:
Seleccione Configuración>Configuración.
En Configuración de la aplicación, cree una nueva configuración de aplicación con la siguiente información:
Nombre: APPINSIGHTS_JAVASCRIPT_ENABLED
Valor: false
Guarde la configuración. Reinicie la aplicación.
La supervisión de cliente está habilitada en ASP.NET. Para habilitar la supervisión de cliente:
Seleccione Configuración>Configuración.
En Configuración de la aplicación, cree una configuración de la aplicación:
Nombre: escriba APPINSIGHTS_JAVASCRIPT_ENABLED.
Valor: escriba true.
Guarde la configuración y reinicie la aplicación.
Para deshabilitar la supervisión de cliente, quite el par clave-valor asociado de Configuración de la aplicación o establezca el valor en false.
Para habilitar la supervisión del lado cliente, el agente de Java puede insertar el cargador del SDK del explorador (versión preliminar) en las páginas HTML de la aplicación, incluida la configuración de la cadena de conexión adecuada.
Definiciones de los valores de configuración de la aplicación
Nombre del valor de configuración de la aplicación
Definición
Value
ApplicationInsightsAgent_EXTENSION_VERSION
Extensión principal; controla la supervisión en el entorno en tiempo de ejecución.
~2 para Windows o ~3 para Linux
XDT_MicrosoftApplicationInsights_Mode
En el modo predeterminado, solo están habilitadas las características esenciales para garantizar un rendimiento óptimo.
disabled o recommended.
XDT_MicrosoftApplicationInsights_PreemptSdk
Solo para aplicaciones de ASP.NET Core. Habilita la interoperabilidad con el SDK de Application Insights. Carga la extensión en paralelo con el SDK y la usa para enviar telemetría (deshabilita el SDK de Application Insights).
1
Definiciones de los valores de configuración de la aplicación
Nombre del valor de configuración de la aplicación
Definición
Value
ApplicationInsightsAgent_EXTENSION_VERSION
Extensión principal; controla la supervisión en el entorno en tiempo de ejecución.
~2
XDT_MicrosoftApplicationInsights_Mode
En el modo predeterminado, solo están habilitadas las características esenciales para garantizar un rendimiento óptimo.
default o recommended
InstrumentationEngine_EXTENSION_VERSION
Controla si el motor de reescritura binaria InstrumentationEngine está activado. Esta configuración repercute en el rendimiento y afecta la hora de inicio o el arranque en frío.
~1
XDT_MicrosoftApplicationInsights_BaseExtensions
Controla si se captura el texto de tabla de SQL y Azure junto con las llamadas de dependencia. Advertencia de rendimiento: el tiempo de inicio en frío de la aplicación se ve afectado. Esta configuración requiere el elemento InstrumentationEngine.
~1
Definiciones de los valores de configuración de la aplicación
Nombre del valor de configuración de la aplicación
Definición
Value
ApplicationInsightsAgent_EXTENSION_VERSION
Extensión principal; controla la supervisión en el entorno en tiempo de ejecución.
~2 en Windows o ~3 en Linux.
XDT_MicrosoftApplicationInsights_Java
Marca para controlar si se incluye el agente de Java.
0 o 1 (solo aplicable en Windows).
Nota:
Snapshot Debugger no está disponible para aplicaciones Java.
Definiciones de los valores de configuración de la aplicación
Nombre del valor de configuración de la aplicación
Definición
Value
ApplicationInsightsAgent_EXTENSION_VERSION
Extensión principal; controla la supervisión en el entorno en tiempo de ejecución.
~2 en Windows o ~3 en Linux.
XDT_MicrosoftApplicationInsights_NodeJS
Marca para controlar si el agente de Node.js está incluido.
0 o 1 (solo aplicable en Windows).
Nota:
Snapshot Debugger no está disponible para aplicaciones de Node.js.
Definiciones de los valores de configuración de la aplicación
Nombre del valor de configuración de la aplicación
Definición
Valor
APPLICATIONINSIGHTS_CONNECTION_STRING
Cadena de conexión para el recurso de Application Insights.
Ejemplo: abcd1234-ab12-cd34-abcd1234abcd
ApplicationInsightsAgent_EXTENSION_VERSION
Extensión principal; controla la supervisión en el entorno en tiempo de ejecución.
~3
Nota:
Snapshot Debugger no está disponible para las aplicaciones de Python.
Configuración de aplicaciones de App Service con Azure Resource Manager
La configuración de las aplicaciones de Azure App Service se puede administrar y definir con plantillas de Azure Resource Manager. Use este método para implementar nuevos recursos de App Service con la automatización de Resource Manager o para modificar la configuración de los recursos actuales.
La estructura básica de JSON de la configuración de la aplicación para un recurso de App Service:
Para ver un ejemplo de una plantilla de Resource Manager con la configuración de la aplicación establecida para Application Insights, le puede resultar útil esta plantilla. En concreto, vea la sección que comienza en la línea 238.
Automatización de la creación de un recurso de Application Insights y vínculo al recurso de App Service recién creado
Para crear una plantilla de Resource Manager con la configuración predeterminada de Application Insights, comienza el proceso como si fueses a crear una aplicación web con Application Insights habilitado.
Cree un nuevo recurso de App Service con la información de la aplicación web deseada. Habilite Application Insights en la pestaña Supervisión.
Seleccione Revisar + crear. Seleccione Descargar una plantilla para la automatización.
Esta opción genera la plantilla de Azure Resource Manager más reciente con toda la configuración necesaria establecida.
En el ejemplo siguiente, reemplace todas las instancias de AppMonitoredSite por el nombre del sitio:
Nota:
Si usas Windows, establece ApplicationInsightsAgent_EXTENSION_VERSION en ~2. Si usas Linux, establece ApplicationInsightsAgent_EXTENSION_VERSION en ~3.
Para habilitar la supervisión de la aplicación a través de PowerShell, solo debe cambiar la configuración de la aplicación subyacente. En el ejemplo siguiente, se habilita la supervisión de aplicaciones para un sitio web denominado AppMonitoredSite en el grupo de recursos AppMonitoredRG. Configura los datos que se enviarán a la clave de instrumentación 012345678-abcd-ef01-2345-6789abcd.
Si usas Windows, establece ApplicationInsightsAgent_EXTENSION_VERSION en ~2. Si usas Linux, establece ApplicationInsightsAgent_EXTENSION_VERSION en ~3.
Esta sección proporciona respuestas a preguntas comunes.
¿Qué modifica Application Insights en mi proyecto?
Los detalles dependen del tipo de proyecto. La siguiente lista es un ejemplo de una aplicación web.
Agrega archivos al proyecto:
ApplicationInsights.config
ai.js
Instala paquetes NuGet:
API de Application Insights: la API central
API de Application Insights para aplicaciones web: se usa para enviar la telemetría del servidor
API de Application Insights para aplicaciones JavaScript: se usa para enviar la telemetría del cliente
Incluye ensamblados en paquetes:
Microsoft.ApplicationInsights
Microsoft.ApplicationInsights.Platform
Inserta elementos en:
Web.config
packages.config
Inserte fragmentos de código en el código de cliente y servidor para inicializarlos con el identificador de recursos de Application Insights. Por ejemplo, en una aplicación MVC, el código se inserta en la página principal Views/Shared/_Layout.cshtml. Solo para los nuevos proyectos, agregar Application Insights a un proyecto existente manualmente.
¿Cuál es la diferencia entre las métricas estándar de Application Insights y las métricas de Azure App Service?
Application Insights recopila datos de telemetría de las solicitudes que se enviaron a la aplicación. Si el error se produjo en Web Apps o en el servidor web, y la solicitud no llegó a la aplicación de usuario, Application Insights no tendrá ningún dato de telemetría sobre él.
La duración de serverresponsetime calculada por Application Insights no coincidirá necesariamente con el tiempo de respuesta del servidor observado por Web Apps. Esto se debe a que Application Insights solo cuenta la duración cuando la solicitud llega realmente a la aplicación de usuario. Si la solicitud se bloquea o se pone en cola en el servidor web, ese tiempo de espera se incluirá en las métricas de Web Apps, pero no en las métricas de Application Insights.
Solución de problemas
Prueba de la conectividad entre el host de la aplicación y el servicio de ingesta
Los SDK y agentes de Application Insights envían telemetría para ingerirse como llamadas REST a nuestros puntos de conexión de ingesta. Puede probar la conectividad desde el servidor web o la máquina host de la aplicación a los puntos de conexión del servicio de ingesta mediante clientes REST sin procesar con comandos de PowerShell o curl. Consulte Solución de problemas de telemetría de aplicaciones que faltan en Azure Monitor Application Insights.
Al crear una aplicación web con los entornos de ejecución ASP.NET Core en Azure App Service, implementa una sola página HTML estática como sitio web de inicio. No se recomienda solucionar un problema con la plantilla predeterminada. Implemente una aplicación antes de solucionar un problema.
Telemetría faltante
Windows
Compruebe que la configuración de la aplicación ApplicationInsightsAgent_EXTENSION_VERSION está establecida en un valor de ~2.
Vaya a https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
Confirme que el estado de la extensión de Application Insights es Pre-Installed Site Extension, version 2.8.x.xxxx, is running.
Confirme que el origen de estado existe y tiene el siguiente aspecto: Status source D:\home\LogFiles\ApplicationInsights\status\status_RD0003FF0317B6_4248_1.json.
Si no está presente un valor similar, significa que la aplicación no se admite o no se está ejecutando actualmente. Para asegurarse de que la aplicación se está ejecutando, pruebe a visitar manualmente los puntos de conexión de dirección URL o aplicación de la aplicación, lo que permite que la información en tiempo de ejecución esté disponible.
Confirme que IKeyExists es True. Si es False, agregue APPINSIGHTS_INSTRUMENTATIONKEY y APPLICATIONINSIGHTS_CONNECTION_STRING con el GUID de ikey a la configuración de la aplicación.
Si la aplicación hace referencia a cualquier paquete de Application Insights, es posible que la habilitación de la integración de App Service no tenga efecto y que los datos no aparezcan en Application Insights. Un ejemplo sería si se instrumentó anteriormente o intentó instrumentar la aplicación con el SDK de ASP.NET Core. Para corregir el problema, en Azure Portal, active interoperabilidad con el SDK de Application Insights.
Importante
Esta funcionalidad está en versión preliminar.
Los datos se envían mediante un enfoque sin código, incluso si se usó originalmente el SDK de Application Insights o se intentó usar.
Importante
Si la aplicación usó el SDK de Application Insights para enviar datos de telemetría, se deshabilitará la telemetría. En otras palabras, se deshabilitarán la telemetría personalizada (por ejemplo, cualquier método Track*()) y la configuración personalizada (como el muestreo).
Linux
Compruebe que la configuración de la aplicación ApplicationInsightsAgent_EXTENSION_VERSION está establecida en un valor de ~3.
Vaya a https://your site name.scm.azurewebsites.net/ApplicationInsights.
En este sitio, confirme lo siguiente:
El origen de estado existe y tiene el siguiente aspecto: Status source /var/log/applicationinsights/status_abcde1234567_89_0.json
Se muestra el valor Auto-Instrumentation enabled successfully. Si no está presente un valor similar, significa que la aplicación no se admite o no se está ejecutando. Para asegurarse de que la aplicación se está ejecutando, pruebe a visitar manualmente los puntos de conexión de dirección URL o aplicación de la aplicación, lo que permite que la información en tiempo de ejecución esté disponible.
IKeyExists es True. Si es False, agregue APPINSIGHTS_INSTRUMENTATIONKEY y APPLICATIONINSIGHTS_CONNECTION_STRING con el GUID de ikey a la configuración de la aplicación.
El sitio web predeterminado implementado con las aplicaciones web no admite la supervisión automática del lado del cliente.
Al crear una aplicación web con los entornos de ejecución ASP.NET Core en Azure App Service, implementa una sola página HTML estática como sitio web de inicio. La página web estática también carga un elemento web administrado de ASP.NET en IIS. Este comportamiento permite probar la supervisión sin código del lado del servidor, pero no admite la supervisión automática del lado del cliente.
Si desea probar la supervisión de servidor sin código y del lado cliente para ASP.NET Core en una aplicación web de App Service, se recomienda seguir las guías oficiales para Crear una aplicación web ASP.NET Core. Después, use las instrucciones del artículo actual para habilitar la supervisión.
No se admiten PHP y WordPress.
Los sitios de PHP y WordPress no se admiten. Actualmente, no hay ningún SDK/agente compatible oficialmente para la supervisión del lado servidor de estas cargas de trabajo. Para realizar un seguimiento de las transacciones del lado del cliente en un sitio PHP o WordPress, agregue el JavaScript del lado del cliente a sus páginas web mediante el SDK de JavaScript.
La tabla siguiente proporciona una explicación más detallada de lo que significan estos valores, sus causas subyacente y las correcciones recomendadas.
Valor del problema
Explicación
Fix
AppAlreadyInstrumented:true
Este valor indica que la extensión detectó algún aspecto del SDK que ya está presente en la aplicación y vuelve a desactivarse. Una referencia a Microsoft.ApplicationInsights.AspNetCore o Microsoft.ApplicationInsights puede provocar este valor.
Quite las referencias. Algunas de estas referencias se agregan de manera predeterminada desde determinadas plantillas de Visual Studio y las versiones anteriores de Visual Studio hacen referencia a Microsoft.ApplicationInsights.
AppAlreadyInstrumented:true
La presencia de Microsoft.ApplicationsInsights DLL en la carpeta de la aplicación de una implementación anterior también puede provocar este valor.
Limpie la carpeta de la aplicación para asegurarse de que se han quitado estos archivos DLL. Compruebe el directorio "bin" de la aplicación local y el directorio wwwroot de App Service. (Para comprobar el directorio wwwroot de la aplicación web de App Service, seleccione Herramientas avanzadas (Kudu) >Consola de depuración>CMD>home\site\wwwroot).
IKeyExists:false
Este valor indica que la clave de instrumentación no está presente en la configuración de aplicación APPINSIGHTS_INSTRUMENTATIONKEY. Entre las posibles causas se incluyen quitar accidentalmente los valores o olvidarse de establecer los valores en el script de automatización.
Asegúrese de que la configuración está presente en la configuración de la aplicación de App Service.
Nota:
Al crear una aplicación web con los entornos de ejecución ASP.NET en Azure App Service, implementa una sola página HTML estática como sitio web de inicio. No se recomienda solucionar problemas con una plantilla predeterminada. Implemente una aplicación antes de solucionar un problema.
Telemetría faltante
Compruebe que la configuración de la aplicación ApplicationInsightsAgent_EXTENSION_VERSION está establecida en un valor de ~2.
Vaya a https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
Confirme que Application Insights Extension Status es Pre-Installed Site Extension, version 2.8.x.xxxx y que está en ejecución.
Confirme que el origen de estado existe y tiene el siguiente aspecto: Status source D:\home\LogFiles\ApplicationInsights\status\status_RD0003FF0317B6_4248_1.json.
Si no está presente un valor similar, significa que la aplicación no se admite o no se está ejecutando actualmente. Para asegurarse de que la aplicación se está ejecutando, pruebe a visitar manualmente los puntos de conexión de dirección URL o aplicación de la aplicación, lo que permite que la información en tiempo de ejecución esté disponible.
Confirme que IKeyExists sea true.
Si no es así, agregue APPINSIGHTS_INSTRUMENTATIONKEY y APPLICATIONINSIGHTS_CONNECTION_STRING con el GUID de clave de instrumentación a la configuración de la aplicación.
Confirme que no hay ninguna entrada para AppAlreadyInstrumented, AppContainsDiagnosticSourceAssembly y AppContainsAspNetTelemetryCorrelationAssembly.
Si existe alguna de estas entradas, quite los siguientes paquetes de la aplicación: Microsoft.ApplicationInsights, System.Diagnostics.DiagnosticSource y Microsoft.AspNet.TelemetryCorrelation.
El sitio web predeterminado implementado con las aplicaciones web no admite la supervisión automática del lado del cliente.
Al crear una aplicación web con los entornos de ejecución de ASP.NET en App Service, implementa una sola página HTML estática como un sitio web de inicio. La página web estática también carga un elemento web administrado de ASP.NET en IIS. Esta página permite probar la supervisión sin código del lado servidor, pero no admite la supervisión automática de cliente.
Si desea probar la supervisión del servidor sin código y del lado cliente para ASP.NET en una aplicación web de App Service, se recomienda seguir las guías oficiales para crear una aplicación web del marco de ASP.NET. Después, use las instrucciones del artículo actual para habilitar la supervisión.
No se admite APPINSIGHTS_JAVASCRIPT_ENABLED y urlCompression
Si usa APPINSIGHTS_JAVASCRIPT_ENABLED=true en casos donde el contenido está codificado, podría obtener errores como los siguientes:
Error de reescritura de dirección URL 500.
Error de módulo de reescritura de dirección URL 500.53 con el mensaje "Las reglas de reescritura saliente no se pueden aplicar cuando el contenido de la respuesta HTTP está codificado ("gzip")".
Se produce un error porque la configuración de la aplicación APPINSIGHTS_JAVASCRIPT_ENABLED está establecida en true y la codificación de contenido está presente al mismo tiempo. Este escenario todavía no se admite. La solución consiste en quitar APPINSIGHTS_JAVASCRIPT_ENABLED de la configuración de la aplicación. Lamentablemente, si la instrumentación de JavaScript del lado cliente o explorador sigue siendo necesaria, se necesitan referencias del SDK manuales para las páginas web. Siga las instrucciones para la instrumentación manual con el SDK de JavaScript.
Si desea obtener la información más reciente sobre la extensión o el agente de Application Insights, consulte las notas de la versión.
No se admiten PHP y WordPress.
Los sitios de PHP y WordPress no se admiten. Actualmente, no hay ningún SDK/agente compatible oficialmente para la supervisión del lado servidor de estas cargas de trabajo. Para realizar un seguimiento de las transacciones del lado del cliente en un sitio PHP o WordPress, agregue el JavaScript del lado del cliente a sus páginas web mediante el SDK de JavaScript.
La tabla siguiente proporciona una explicación más detallada de lo que significan estos valores, sus causas subyacente y las correcciones recomendadas.
Valor del problema
Explicación
Fix
AppAlreadyInstrumented:true
Este valor indica que la extensión detectó algún aspecto del SDK que ya está presente en la aplicación y vuelve a desactivarse. Una referencia a System.Diagnostics.DiagnosticSource, Microsoft.AspNet.TelemetryCorrelationo Microsoft.ApplicationInsights puede provocar este valor.
Quite las referencias. Algunas de estas referencias se agregan de manera predeterminada desde determinadas plantillas de Visual Studio Las versiones anteriores de Visual Studio podrían agregar referencias a Microsoft.ApplicationInsights.
AppAlreadyInstrumented:true
La presencia de los archivos DLL anteriores en la carpeta de la aplicación de una implementación anterior también puede provocar este valor.
Limpie la carpeta de la aplicación para asegurarse de que se han quitado estos archivos DLL. Compruebe el directorio bin de la aplicación local y el directorio wwwroot del recurso de App Service. Para comprobar el directorio wwwroot de la aplicación web de App Service, seleccione Herramientas avanzadas (Kudu)>Consola de depuración>CMD>home\site\wwwroot.
Este valor indica que la extensión detectó referencias a Microsoft.AspNet.TelemetryCorrelation en la aplicación y vuelve a desactivarse.
Quite la referencia.
AppContainsDiagnosticSourceAssembly**:true
Este valor indica que la extensión detectó referencias a System.Diagnostics.DiagnosticSource en la aplicación y vuelve a desactivarse.
Para ASP.NET, quite la referencia.
IKeyExists:false
Este valor indica que la clave de instrumentación no está presente en la configuración de aplicación APPINSIGHTS_INSTRUMENTATIONKEY. Las causas posibles podrían ser que se quitaron accidentalmente los valores o que olvidó establecer los valores en el script de automatización.
Asegúrese de que la configuración está presente en la configuración de la aplicación de App Service.
System.IO.FileNotFoundException después de la actualización 2.8.44
La versión 2.8.44 de instrumentación automática actualiza el SDK de Application Insights a la versión 2.20.0. El SDK de Application Insights tiene una referencia indirecta a System.Runtime.CompilerServices.Unsafe.dll a través de System.Diagnostics.DiagnosticSource.dll. Si la aplicación tiene redireccionamiento de enlace para System.Runtime.CompilerServices.Unsafe.dll y si esta biblioteca no está presente en la carpeta de la aplicación, puede generar System.IO.FileNotFoundException.
Para resolver este problema, quite la entrada de redireccionamiento de enlace para System.Runtime.CompilerServices.Unsafe.dll desde el archivo web.config. Si la aplicación quería usar System.Runtime.CompilerServices.Unsafe.dll, establezca el redireccionamiento de enlace tal como se indica a continuación:
Como solución alternativa temporal, puede establecer la configuración ApplicationInsightsAgent_EXTENSION_VERSION de la aplicación en un valor de 2.8.37. Esta configuración desencadena App Service para usar la extensión antigua de Application Insights. Las mitigaciones temporales solo deben usarse como provisionales.
Telemetría faltante
Compruebe que ApplicationInsightsAgent_EXTENSION_VERSION configuración de la aplicación está establecida en un valor de ~2 en Windows, ~3 en Linux
Examine el archivo de registro para ver que el agente se inició correctamente: vaya a https://yoursitename.scm.azurewebsites.net/, en cambio SSH al directorio raíz, el archivo de registro se encuentra en LogFiles/ApplicationInsights.
Después de habilitar la supervisión de aplicaciones para la aplicación de Java, puede validar que el agente funciona si examina las métricas activas, incluso antes de implementar una aplicación en App Service verá algunas solicitudes del entorno. Recuerde que el conjunto completo de telemetría solo estará disponible cuando la aplicación esté implementada y en ejecución.
Establezca la variable de entorno APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_LEVEL en debug si no ve ningún error y no hay telemetría.
Telemetría faltante
Windows
Compruebe que la configuración de la aplicación ApplicationInsightsAgent_EXTENSION_VERSION está establecida en un valor de ~2.
Vaya a https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
Confirme que el Application Insights Extension Status es Pre-Installed Site Extension, version 2.8.x.xxxx, is running..
El uso de la instrumentación automática además de la instrumentación manual podría provocar la duplicación de la telemetría y aumentar el costo. Para usar la instrumentación automática de OpenTelemetry en App Service, quite primero la instrumentación manual de OpenTelemetry del código.
Telemetría faltante
Si falta telemetría, siga estos pasos para confirmar que la instrumentación automática está habilitada correctamente.
Confirme que la instrumentación automática está habilitada en la experiencia de Application Insights en el recurso de App Service.
Confirme que la configuración de ApplicationInsightsAgent_EXTENSION_VERSION de la aplicación está establecida en un valor ~3 y que APPLICATIONINSIGHTS_CONNECTION_STRING apunta al recurso de Application Insights adecuado.
Compruebe los registros de estado y diagnóstico de la instrumentación automática.
a. Vaya a /var/log/applicationinsights/ y abra status_*.json.
b. Confirme que AgentInitializedSuccessfully está establecido en true y que IKey tiene un iKey válido.
El archivo applicationinsights-extension.log de la misma carpeta puede mostrar otros diagnósticos útiles.
Aplicaciones de Django
Si su aplicación usa Django y no se puede iniciar o usa una configuración incorrecta, asegúrese de establecer la variable de entorno DJANGO_SETTINGS_MODULE. Consulte la sección Instrumentación de Django para obtener más información.
Esta sección contiene las notas de la versión de Azure App Service basadas en la versión ANT para la instrumentación en tiempo de ejecución con Application Insights.
Para encontrar la versión de la extensión que está usando actualmente, vaya a https://<yoursitename>.scm.azurewebsites.net/ApplicationInsights.
Separe el paquete .NET/.NET Core, Java y Node.js en diferentes extensiones de sitio de Windows de App Service.
2.8.42
Se han agregado implementaciones independientes y compatibilidad con .NET 6.0 mediante enlace de inicio de .NET.
2.8.41
Se quitó la versión fuera de soporte técnico (2.1). Las versiones compatibles son 3.1 y 5.0.
2.8.39
Se ha agregado compatibilidad con .Net Core 5.0.
2.8.38
Se han quitado las versiones fuera de soporte técnico (2.0, 2.2, 3.0). Las versiones compatibles son 2.1 y 3.1.
2.8.37
Extensión AppSvc de Windows: ha hecho que .NET Core funcione con cualquier versión de System.Diagnostics.DiagnosticSource.dll.
2.8.36
Extensión AppSvc de Windows: se ha habilitado la interoperabilidad con el SDK de AI en .NET Core.
2.8.35
Extensión AppSvc de Windows: se ha agregado compatibilidad con .NET Core 3.1.
2.8.33
Agentes de .NET, .NET Core, Java y Node.js, así como la extensión de Windows: compatibilidad con nubes soberanas. Se pueden usar las cadenas de conexiones para enviar datos a nubes soberanas.
2.8.31
El agente de ASP.NET Core ha corregido un problema con el SDK de Application Insights. Si el runtime carga la versión incorrecta de System.Diagnostics.DiagnosticSource.dll, la extensión sin código no bloqueará la aplicación y se interrumpirá. Para corregir el problema, los clientes deben quitar System.Diagnostics.DiagnosticSource.dll de la carpeta de rango o usar la versión anterior de la extensión estableciendo ApplicationInsightsAgent_EXTENSIONVERSION=2.8.24. Si no lo hacen, la supervisión de aplicaciones no está habilitada.
2.8.26
se ha corregido un problema relacionado con el SDK actualizado de Application Insights. El agente no intentará cargar AiHostingStartup si el archivo ApplicationInsights.dll ya está presente en la carpeta de rango. Esto resuelve los problemas relacionados con la reflexión a través de Assembly<AiHostingStartup>.GetTypes().
Problemas conocidos: se podría producir la excepción System.IO.FileLoadException: Could not load file or assembly 'System.Diagnostics.DiagnosticSource, Version=4.0.4.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' si se carga otra versión del archivo dll DiagnosticSource. Esto puede ocurrir, por ejemplo, si System.Diagnostics.DiagnosticSource.dll está presente en la carpeta de publicación. Para mitigarlo, use la versión anterior de la extensión mediante el establecimiento de la configuración de la aplicación en App Services: ApplicationInsightsAgent_EXTENSIONVERSION=2.8.24.
2.8.24
Versión reempaquetada de 2.8.21.
2.8.23
Se ha agregado compatibilidad con la supervisión sin código de ASP.NET Core 3.0.
Se ha actualizado el SDK de ASP.NET Core a 2.8.0 para las versiones de entorno de ejecución 2.1, 2.2 y 3.0. Las aplicaciones que tienen como destino .NET Core 2.0 siguen usando la versión 2.1.1 del SDK.
2.8.14
Se ha actualizado la versión del SDK de ASP.NET Core de 2.3.0 a la más reciente (2.6.1) para las aplicaciones que tienen como destino .NET Core 2.1 y 2.2. Las aplicaciones que tienen como destino .NET Core 2.0 siguen usando la versión 2.1.1 del SDK.
2.8.12
Compatibilidad con aplicaciones de ASP.NET Core 2.2.
Se ha corregido un error en la extensión de ASP.NET Core que producía la inserción del SDK incluso cuando la aplicación ya estaba instrumentada con el SDK. En el caso de las aplicaciones de la versión 2.1 y 2.2, la presencia de ApplicationInsights.dll en la carpeta de la aplicación ahora hace que la extensión se interrumpa. En el caso de las aplicaciones de la versión 2.0, la extensión solo se interrumpe si ApplicationInsights está habilitado con una llamada UseApplicationInsights().
Se ha corregido de forma permanente la respuesta HTML incompleta para aplicaciones de ASP.NET Core. Esta corrección ahora se ha ampliado para que funcione con aplicaciones de .NET Core 2.2.
Se ha agregado compatibilidad para desactivar la inserción de JavaScript para aplicaciones de ASP.NET Core (APPINSIGHTS_JAVASCRIPT_ENABLED=false appsetting). En el caso de ASP.NET Core, la inserción de JavaScript está en modo deshabilitado de forma predeterminada, a menos que se desactive explícitamente. (La configuración predeterminada está destinada a conservar el comportamiento actual).
Se ha corregido un error de extensión de ASP.NET Core que provocaba la inserción aunque ikey no estuviera presente.
Se ha corregido un error en la lógica del prefijo de la versión del SDK que provocaba una versión incorrecta del SDK en la telemetría.
Se ha agregado el prefijo de versión del SDK para las aplicaciones de ASP.NET Core con el fin de identificar cómo se recopiló la telemetría.
Se ha corregido la página SCM- ApplicationInsights para mostrar correctamente la versión de la extensión preinstalada.
2.8.10
Se ha corregido la respuesta HTML incompleta para aplicaciones de ASP.NET Core.
Separe el paquete .NET/.NET Core, Java y Node.js en diferentes extensiones de sitio de Windows de App Service.
2.8.33
Agentes de .NET, .NET Core, Java y Node.js, así como la extensión de Windows: compatibilidad con nubes soberanas. Se pueden usar las cadenas de conexiones para enviar datos a nubes soberanas.
2.8.24
Versión reempaquetada de 2.8.21.
2.8.43
Separe el paquete .NET/.NET Core, Java y Node.js en diferentes extensiones de sitio de Windows de App Service.
Agentes de .NET, .NET Core, Java y Node.js, así como la extensión de Windows: compatibilidad con nubes soberanas. Se pueden usar las cadenas de conexiones para enviar datos a nubes soberanas.
2.8.24
Versión reempaquetada de 2.8.21.
2.8.43
Separe el paquete .NET/.NET Core, Java y Node.js en diferentes extensiones de sitio de Windows de App Service.
2.8.42
Se ha actualizado el SDK de IA a la versión 2.1.8 de la versión 2.1.7. Se ha agregado compatibilidad con identidades administradas de Microsoft Entra asignadas por el usuario y el sistema.
2.8.41
Se ha actualizado el SDK de IA a la versión 2.1.7 de la versión 2.1.3.
2.8.40
Se ha actualizado el SDK de IA a la versión 2.1.3 de la versión 1.8.8.
2.8.38
Se ha actualizado el SDK de AI a la versión 1.8.8 de la versión 1.8.7.
2.8.33
Agentes de .NET, .NET Core, Java y Node.js, así como la extensión de Windows: compatibilidad con nubes soberanas. Se pueden usar las cadenas de conexiones para enviar datos a nubes soberanas.
2.8.24
Versión reempaquetada de 2.8.21.
Las notas de la versión de Python se mostrarán aquí.