Solución de problemas de App de Azure lication Insights en un proyecto web de Java
En este artículo se proporcionan soluciones para solucionar problemas comunes en un formato de preguntas y respuestas para Application Insights Java 2.x.
Precaución
Este documento se aplica a Application Insights para Java 2.x, que ya no se recomienda.
La documentación de la versión más reciente se puede encontrar en Application Insights para Java 3.x.
Preguntas o problemas relacionados con Azure Application Insights en Java. a continuación se incluyen algunas sugerencias.
Errores de compilación
En Eclipse o Intellij Idea, cuando agrego el SDK de Application Insights a través de Maven o Gradle, obtengo errores de validación de compilación o suma de comprobación.
Si el elemento de versión> de <dependencia usa un patrón que contiene caracteres comodín (por ejemplo, <version>[2.0,)</version>
en Maven o version:'2.+'
en Gradle), intente especificar una versión específica en su lugar, como 2.6.4
.
Sin datos
He agregado Application Insights correctamente y ejecuté mi aplicación, pero nunca he visto datos en el portal
Espere aproximadamente un minuto y, a continuación, seleccione Actualizar. Los gráficos se actualizan automáticamente de forma periódica, pero puede actualizarlos manualmente. El intervalo de actualización depende del intervalo de tiempo del gráfico.
Asegúrese de que ha definido una clave de instrumentación en el archivo ApplicationInsights.xml (en la carpeta resources del proyecto) o ha configurado una como una variable de entorno.
Compruebe que no hay ningún
<DisableTelemetry>true</DisableTelemetry>
nodo en el archivo XML.Si es necesario, abra los puertos TCP 80 y 443 en el firewall para el tráfico saliente a
dc.services.visualstudio.com
. Consulte la lista completa de excepciones de firewall.En el panel de inicio de Microsoft Azure, observe el mapa de estado del servicio. Si hay algunas indicaciones de alerta, espere hasta que hayan vuelto a Aceptar y, a continuación, cierre y vuelva a abrir la hoja de la aplicación de Application Insights.
Active el registro agregando un <elemento SDKLogger> en el nodo raíz del archivo ApplicationInsights.xml (en la carpeta resources del proyecto). A continuación, compruebe si hay entradas precedidas de
AI: INFO/WARN/ERROR
los registros sospechosos.Asegúrese de que el SDK de Java ha cargado correctamente el archivo ApplicationInsights.xml correcto. Compruebe los mensajes de salida de la consola para ver una instrucción "El archivo de configuración se ha encontrado correctamente".
Si no se encuentra el archivo de configuración, compruebe los mensajes de salida para ver dónde se está buscando el archivo de configuración. Asegúrese de que el ApplicationInsights.xml se encuentra en una de esas ubicaciones de búsqueda. Como regla general, puede colocar el archivo de configuración cerca de los JAR de SDK de Application Insights. Por ejemplo, en Tomcat, la carpeta sería WEB-INF/classes. Durante el desarrollo, puede colocar ApplicationInsights.xml en la carpeta resources del proyecto web.
Consulte la página problemas de GitHub para ver si hay problemas conocidos con el SDK.
Asegúrese de usar la misma versión de los anexadores principales, web, agente y registro de Application Insights para evitar problemas de conflicto de versiones.
Nota:
Este artículo se actualizó recientemente para usar el término registros de Azure Monitor en lugar de Log Analytics. Los datos de registro todavía se almacenan en un área de trabajo de Log Analytics y todavía se recopilan y analizan mediante el mismo servicio de Log Analytics. Estamos actualizando la terminología para reflejar mejor el rol de los registros en Azure Monitor. Consulte Azure Monitor terminology changes (Cambios en la terminología de Azure Monitor) para obtener más información.
Solía ver los datos, pero se ha detenido
¿Ha alcanzado su cuota mensual de puntos de datos? Abra Configuración>Cuota y precios para averiguarlo. Si es así, puede actualizar el plan o pagar por más capacidad. Para obtener más información, consulte el esquema de precios.
¿Ha actualizado el SDK recientemente? Asegúrese de que solo hay archivos JAR de SDK únicos en el directorio del proyecto. No debe haber dos versiones diferentes del SDK presentes.
¿Busca en el recurso correcto de AI? Asegúrese de que coincida con la clave iKey de la aplicación con el recurso en el que espera telemetría. Deben ser iguales.
No veo todos los datos que esperaba
Abra la página Uso y costo estimado y compruebe si el muestreo está en funcionamiento. (La transmisión al 100 % significa que el muestreo no está en funcionamiento). El servicio Application Insights se puede configurar para que acepte únicamente una fracción de la telemetría procedente de la aplicación. Esa configuración le ayuda a mantenerse dentro de la cuota mensual de telemetría.
¿Tiene activado el muestreo del SDK? En caso afirmativo, los datos se muestrearían a la velocidad especificada para todos los tipos aplicables.
¿Ejecuta una versión anterior del SDK de Java? A partir de la versión 2.0.1, hemos introducido un mecanismo de tolerancia a errores para controlar errores intermitentes de red y back-end, así como la persistencia de datos en unidades locales.
Compruebe si la telemetría excesiva ha causado una limitación. Si activa el registro de INFORMACIÓN, verá un mensaje de registro "La aplicación está limitada". Nuestro límite actual es de aproximadamente 32 000 elementos de telemetría por segundo.
El agente de Java no puede capturar datos de dependencia
¿Ha configurado el agente de Java?
Asegúrese de que tanto el archivo jar del agente de Java como el archivo AI-Agent.xml se colocan en la misma carpeta.
Asegúrese de que la dependencia que intenta recopilar automáticamente es compatible con la recopilación automática. Actualmente solo se admiten MySQL, Microsoft SQL Server, Oracle DB y la colección de dependencias de Azure Cache for Redis.
No aparecen datos de uso
Veo datos sobre solicitudes y tiempos de respuesta, pero no veo datos de página, explorador ni datos de usuario.
La aplicación se ha configurado correctamente para enviar datos de telemetría desde el servidor. El paso siguiente consiste en configurar las páginas web para enviar datos de telemetría desde el explorador web.
Como alternativa, si el cliente es una aplicación de teléfono o de cualquier otro dispositivo, puede enviar datos de telemetría desde este.
Use la misma clave de instrumentación para configurar la telemetría tanto de cliente como de servidor. Los datos aparecerán en el mismo recurso de Application Insights y podrá correlacionar eventos del cliente y el servidor.
Deshabilitar la telemetría
¿Cómo puedo deshabilitar la recopilación de telemetría?
Siga una de estas soluciones:
Deshabilite la colección en el código:
TelemetryConfiguration config = TelemetryConfiguration.getActive(); config.setTrackingIsDisabled(true);
Actualice ApplicationInsights.xml (en la carpeta resources del proyecto). Agregue el siguiente elemento XML en el nodo raíz:
<DisableTelemetry>true</DisableTelemetry>
Si usa el método XML, debe reiniciar la aplicación al cambiar el valor.
Cambiar el destino
¿Cómo puedo cambiar el recurso de Azure al que mi proyecto envía datos?
Si agregó Application Insights al proyecto mediante El kit de herramientas de Azure para Eclipse, haga clic con el botón derecho en el proyecto web, seleccione Azure>Configure Application Insights y, a continuación, cambie la clave.
Si ha configurado la clave de instrumentación como una variable de entorno, asegúrese de actualizar el valor de la variable de entorno con la nueva iKey.
De lo contrario, actualice la clave en ApplicationInsights.xml en la carpeta resources del proyecto.
Depuración de datos del SDK
¿Cómo puedo averiguar lo que está haciendo el SDK?
Para obtener más información sobre lo que sucede en la API, agregue el elemento SDKLogger> dentro del nodo raíz del archivo de configuración de ApplicationInsights.xml.<
ApplicationInsights.xml
En el <elemento SDKLogger> , también puede indicar al registrador que se va a generar en un archivo:
<SDKLogger type="FILE"><!-- or "CONSOLE" to print to stderr -->
<Level>TRACE</Level>
<UniquePrefix>AI</UniquePrefix>
<BaseFolderPath>C:/agent/AISDK</BaseFolderPath>
</SDKLogger>
Spring Boot Starter
Para habilitar el registro del SDK con aplicaciones de Spring Boot mediante el inicio de Spring Boot de Application Insights, agregue las siguientes líneas al archivo application.properties :
azure.application-insights.logger.type=file
azure.application-insights.logger.base-folder-path=C:/agent/AISDK
azure.application-insights.logger.level=trace
Como alternativa, puede imprimir en el flujo de error estándar:
azure.application-insights.logger.type=console
azure.application-insights.logger.level=trace
Agente de Java
Para habilitar el registro del agente JVM, actualice el archivo AI-Agent.xml:
<AgentLogger type="FILE"><!-- or "CONSOLE" to print to stderr -->
<Level>TRACE</Level>
<UniquePrefix>AI</UniquePrefix>
<BaseFolderPath>C:/agent/AIAGENT</BaseFolderPath>
</AgentLogger>
Propiedades de la línea de comandos de Java
A partir de la versión 2.4.0
Para habilitar el registro mediante opciones de línea de comandos en lugar de cambiar los archivos de configuración, ejecute el siguiente comando:
java -Dapplicationinsights.logger.file.level=trace \
-Dapplicationinsights.logger.file.uniquePrefix=AI \
-Dapplicationinsights.logger.baseFolderPath="C:/my/log/dir" \
-jar MyApp.jar
O bien, ejecute el siguiente comando para imprimir en el flujo de error estándar:
java -Dapplicationinsights.logger.console.level=trace -jar MyApp.jar
Pantalla de inicio de Azure
Estoy mirando el portal de Azure. ¿El mapa indica algo sobre mi aplicación?
No, este muestra el estado de los servidores de Azure en todo el mundo.
Cómo encontrar datos sobre mi aplicación desde el panel de inicio de Azure (pantalla principal)?
Suponiendo que configura la aplicación para Application Insights, seleccione Examinar>Application Insights y, a continuación, seleccione el recurso de aplicación que creó para la aplicación. Para llegar más rápido en el futuro, ancle la aplicación al panel de inicio.
Servidores de intranet
¿Puedo supervisar un servidor de mi intranet?
Sí, siempre que dicho servidor pueda enviar datos de telemetría al portal de Application Insights a través de una conexión pública a Internet.
Es posible que deba abrir algunos puertos de salida en el firewall del servidor para permitir que el SDK envíe datos al portal.
Retención de datos
¿Cuánto tiempo se retienen los datos en el portal? ¿Es seguro?
Consulte Privacidad y retención de los datos.
Registro de depuración
Application Insights usa org.apache.http
. Este espacio de nombres se reubica en los archivos jar principales de Application Insights en el espacio de nombres com.microsoft.applicationinsights.core.dependencies.http
. Esta reubicación permite a Application Insights controlar escenarios en los que existen diferentes versiones del mismo org.apache.http
en una base de código.
Nota:
Si habilita DEBUG
el registro de nivel para todos los espacios de nombres de la aplicación, se respetará en todos los módulos en ejecución (incluido el org.apache.http
nombre cambiado como com.microsoft.applicationinsights.core.dependencies.http
). Application Insights no podrá aplicar el filtrado para estas llamadas porque la biblioteca de Apache realiza la llamada de registro. DEBUG
El registro de nivel produce una cantidad considerable de datos de registro y no se recomienda para las instancias de producción dinámicas.
Pasos siguientes
He configurado Application Insights para mi aplicación de servidor Java. ¿Qué más puedo hacer?
Realizar el seguimiento del uso y diagnosticar los problemas en las aplicaciones de su dispositivo
Escribir código para realizar un seguimiento del uso de la aplicación
Obtener ayuda
Aviso de declinación de responsabilidades sobre la información de terceros
Los productos de otros fabricantes que se mencionan en este artículo han sido creados por compañías independientes de Microsoft. Microsoft no ofrece ninguna garantía, ya sea implícita o de otro tipo, sobre la confiabilidad o el rendimiento de dichos productos.
Ponte en contacto con nosotros para obtener ayuda
Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.