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.
En este artículo se describe cómo empezar a usar el Agente de diagnóstico de Java. También describe la herramienta de diagnóstico de Java en el complemento de AKS para IntelliJ IDEA.
El agente de diagnóstico de Java es un agente de Java para solucionar problemas de un proceso de Java. No es necesario recompilar, volver a implementar ni reiniciar una aplicación. Actualmente, admite la adición de registros en torno a una función en una clase Java. Cuando se llama a la función , el registro se imprime junto con un cálculo del tiempo total consumido por la función.
Prerrequisitos
diag4j instalado en su clúster.
Java LTS versión 11, 17 o 21.
El complemento IntelliJ IDEA, instalado localmente a través de Configuración>Complementos>Instalar plugin desde disco.
Aplicaciones Java con las que solucionar problemas. Para más información, consulte Implementación de una aplicación de Spring Boot en Azure Kubernetes Service.
Establecer el reenvío de puertos
Utilice el siguiente comando para establecer la redirección de puertos al servicio del agente:
kubectl port-forward svc/diag4j-agent-service -n <namespace> <port>:8080
Uso de la herramienta de diagnóstico de Java en el complemento de AKS para IntelliJ IDEA
Utilice el complemento Java Diagnostic Tool para AKS para adjuntar el agente de diagnóstico de Java a la aplicación Java que se ejecuta en un contenedor de un pod en un clúster de Azure Kubernetes Service (AKS).
Después de adjuntar el agente, puede solucionar problemas agregando registros en torno a una función de clase. Use este registro para comprobar si se ejecuta la función y calcular el tiempo total invertido en la función. Este análisis puede ayudarle a localizar cuellos de botella de rendimiento en su aplicación.
La pestaña Diagnóstico muestra la configuración del complemento. Aquí, puede hacer lo siguiente:
- Configure el puerto local que reenvía al servicio del agente.
- Visualice los pods listados con
kubeconfigen su entorno local. - Seleccione Actualizar para actualizar la tabla de pods. Después de cambiar los clústeres, actualice la tabla para cargar los pods en el nuevo clúster.
Adjuntar el agente
El contenedor de pods debe tener una carpeta /tmp y debe tener permiso de escritura en la carpeta /tmp .
Para habilitar la adjunción del agente en la JVM, no añada -XX:+DisableAttachMechanism a las opciones de la JVM.
El servidor de diagnóstico de back-end se cierra después de 6 horas.
Para asociar el agente, seleccione el pod al que desea asociarlo y, a continuación, seleccione el contenedor. Solo puede adjuntar el agente a un contenedor del pod. A continuación, espere a que se complete el proceso de adjunto.
Establecer el contenedor del pod activo
Una vez que haya conectado correctamente el agente, utilícelo para solucionar problemas.
Múltiples pods pueden haber inyectado el agente, por lo que debe establecer un pod activo. En IntelliJ IDEA, en la pestaña Diagnóstico, haga clic con el botón derecho en un pod y, a continuación, seleccione Seleccionar como el activo.
Añadir registros en una función de clase
El registro configurado se quita automáticamente después de 30 minutos.
Puede usar la herramienta para agregar registros en torno a funciones de clase, pero no interfaces, constructores, etc.
Para agregar el registro a una función, haga clic con el botón derecho en ella en el editor y seleccione Java Diagnostic>Agregar AroundLog, como se muestra en la captura de pantalla siguiente.
En este ejemplo, después de agregar el registro, puede llamar a <host>/infor para ver una salida similar al ejemplo siguiente antes y después de llamar a la función:
===== START ===== Method: updateInformation Start Time: 2024-12-12T07:37:55.404107848Z
Done with the validation
Done with the DB access
Done with the data filtering
===== END ===== Method: updateInformation End Time: 2024-12-12T07:37:55.404316940Z Total Time: 0 milliseconds
Eliminación de todos los registros configurados
Para eliminar todos los registros que añade el agente, seleccione Remove All AroundLogs.
Nota
Un contenedor efímero en el pod usa el agente Java de backend. Una vez reiniciado el pod, se elimina el agente.
Solución de problemas
Se puede producir un tiempo de espera al intentar asociar el agente a un pod que se ejecuta en un nodo que aún no está habilitado para la característica. El tiempo de espera se produce porque el nodo primero necesita recuperar la imagen del agente, lo que provoca un retraso. Cuando se produzca este retraso, seleccione Actualizar para comprobar si el agente está asociado o intente asociar el agente de nuevo.
Si falla la operación de adjuntar, compruebe el registro llamado diagnostic-container-<hashcode> en el contenedor efímero.
Puede encontrar información sobre las operaciones del plugin en los registros del contenedor del pod denominado diag4j-agent-service-<hashcode>.