Supervisión de aplicaciones de Spring Boot con el agente de Java de AppDynamics
Nota:
Los planes Básico, Estándar y Enterprise quedarán en desuso a partir de mediados de marzo de 2025, con un período de retirada de 3 años. Se recomienda realizar la transición a Azure Container Apps. Para más información, consulte el anuncio de retirada de Azure Spring Apps.
El plan Estándar por consumo y dedicado quedará obsoleto a partir del 30 de septiembre de 2024, con un cierre completo al cabo de seis meses. Se recomienda realizar la transición a Azure Container Apps. Para más información, consulte Migrar el plan Estándar por consumo y dedicado de Azure Spring Apps a Azure Container Apps.
Este artículo se aplica a: ✔️ Consumo dedicado estándar (versión preliminar) ✔️ Básico/Estándar ✔️ ❌Enterprise
En este artículo se explica cómo usar el agente de Java de AppDynamics para supervisar aplicaciones Spring Boot en Azure Spring Apps.
Con el agente de Java de AppDynamics puede:
- Supervisión de aplicaciones
- Configurar el agente de Java de AppDynamics mediante variables de entorno
- Comprobar todos los datos de supervisión del panel de AppDynamics
En el vídeo siguiente se presenta el agente In-Process de Java de AppDynamics.
Requisitos previos
Activación del agente In-Process de Java de AppDynamics
Para el flujo de trabajo completo, debe:
- Activar el agente In-Process de Java de AppDynamics en Azure Spring Apps para generar datos de métricas de aplicación.
- Conectar el agente de AppDynamics al controlador de AppDynamics para recopilar y visualizar los datos del controlador.
Activación de una aplicación con el agente de AppDynamics mediante la CLI de Azure
Para activar una aplicación mediante la CLI de Azure, siga estos pasos.
Cree un grupo de recursos.
Cree una instancia de Azure Spring Apps.
Cree una aplicación con el comando siguiente. Reemplace los marcadores de posición <...> por sus propios valores.
az spring app create \ --resource-group "<your-resource-group-name>" \ --service "<your-Azure-Spring-Apps-instance-name>" \ --name "<your-app-name>" \ --is-public true
Cree una implementación con el agente de AppDynamics mediante variables de entorno.
az spring app deploy \ --resource-group "<your-resource-group-name>" \ --service "<your-Azure-Spring-Apps-instance-name>" \ --name "<your-app-name>" \ --artifact-path app.jar \ --jvm-options="-javaagent:/opt/agents/appdynamics/java/javaagent.jar" \ --env APPDYNAMICS_AGENT_APPLICATION_NAME=<your-app-name> \ APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY=<your-agent-access-key> \ APPDYNAMICS_AGENT_ACCOUNT_NAME=<your-agent-account-name> \ APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME=true \ APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX=<your-agent-node-name> \ APPDYNAMICS_AGENT_TIER_NAME=<your-agent-tier-name> \ APPDYNAMICS_CONTROLLER_HOST_NAME=<your-AppDynamics-controller-host-name> \ APPDYNAMICS_CONTROLLER_SSL_ENABLED=true \ APPDYNAMICS_CONTROLLER_PORT=443
Azure Spring Apps preinstala el agente de Java de AppDynamics en la ruta de acceso /opt/agents/appdynamics/java/javaagent.jar. Puede activar el agente desde las opciones de JVM de las aplicaciones y luego configurarlo mediante variables de entorno. Puede encontrar valores para estas variables en Supervisión de Azure Spring Apps con el agente de Java. Para obtener más información sobre cómo ayudan estas variables a ver y organizar informes en la interfaz de usuario de AppDynamics, vea Niveles y nodos.
Activación de una aplicación con el agente de AppDynamics mediante Azure Portal
Para activar una aplicación mediante Azure Portal, siga estos pasos.
Vaya a la instancia de Azure Spring Apps en Azure Portal.
Seleccione Aplicaciones en la sección Configuración del panel de navegación.
Seleccione la aplicación y a continuación, seleccione Configuración en el panel de navegación.
Use la pestaña Configuración general para actualizar valores como las opciones de JVM.
Seleccione Variables de entorno para agregar o actualizar las variables que usa la aplicación.
Aprovisionamiento automatizado
También puede ejecutar una canalización de automatización de aprovisionamiento mediante Terraform, Bicep o plantilla de Azure Resource Manager (plantilla de ARM). Esta canalización puede proporcionar una experiencia práctica completa para instrumentar y supervisar las nuevas aplicaciones que cree e implemente.
Aprovisionamiento automatizado mediante Terraform
Para configurar las variables de entorno en una plantilla de Terraform, agregue el código que se muestra a continuación a la plantilla y reemplace los marcadores de posición <...> por sus propios valores. Para más información, consulte Administración de una implementación activa de Azure Spring Apps.
resource "azurerm_spring_cloud_java_deployment" "example" {
...
jvm_options = "-javaagent:/opt/agents/appdynamics/java/javaagent.jar"
...
environment_variables = {
"APPDYNAMICS_AGENT_APPLICATION_NAME" : "<your-app-name>",
"APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY" : "<your-agent-access-key>",
"APPDYNAMICS_AGENT_ACCOUNT_NAME" : "<your-agent-account-name>",
"APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME" : "true",
"APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX" : "<your-agent-node-name>",
"APPDYNAMICS_AGENT_TIER_NAME" : "<your-agent-tier-name>",
"APPDYNAMICS_CONTROLLER_HOST_NAME" : "<your-AppDynamics-controller-host-name>",
"APPDYNAMICS_CONTROLLER_SSL_ENABLED" : "true",
"APPDYNAMICS_CONTROLLER_PORT" : "443"
}
}
Aprovisionamiento automatizado mediante Bicep
Para configurar las variables de entorno en un archivo de Bicep, agregue el código siguiente al archivo y reemplace los marcadores de posición <…> por sus propios valores. Para obtener más información, consulte Microsoft.AppPlatform Spring/apps/deployments.
deploymentSettings: {
environmentVariables: {
APPDYNAMICS_AGENT_APPLICATION_NAME : '<your-app-name>'
APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY : '<your-agent-access-key>'
APPDYNAMICS_AGENT_ACCOUNT_NAME : '<your-agent-account-name>'
APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME : 'true'
APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX : '<your-agent-node-name>'
APPDYNAMICS_AGENT_TIER_NAME : '<your-agent-tier-name>'
APPDYNAMICS_CONTROLLER_HOST_NAME : '<your-AppDynamics-controller-host-name>'
APPDYNAMICS_CONTROLLER_SSL_ENABLED : 'true'
APPDYNAMICS_CONTROLLER_PORT : '443'
}
jvmOptions: '-javaagent:/opt/agents/appdynamics/java/javaagent.jar'
}
Aprovisionamiento automatizado mediante una plantilla de ARM
Para configurar las variables de entorno en una plantilla de ARM, agregue el código a la plantilla que se muestra a continuación y reemplace los marcadores de posición <...> por sus propios valores. Para obtener más información, consulte Microsoft.AppPlatform Spring/apps/deployments.
"deploymentSettings": {
"environmentVariables": {
"APPDYNAMICS_AGENT_APPLICATION_NAME" : "<your-app-name>",
"APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY" : "<your-agent-access-key>",
"APPDYNAMICS_AGENT_ACCOUNT_NAME" : "<your-agent-account-name>",
"APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME" : "true",
"APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX" : "<your-agent-node-name>",
"APPDYNAMICS_AGENT_TIER_NAME" : "<your-agent-tier-name>",
"APPDYNAMICS_CONTROLLER_HOST_NAME" : "<your-AppDynamics-controller-host-name>",
"APPDYNAMICS_CONTROLLER_SSL_ENABLED" : "true",
"APPDYNAMICS_CONTROLLER_PORT" : "443"
},
"jvmOptions": "-javaagent:/opt/agents/appdynamics/java/javaagent.jar",
...
}
Revisión de informes en el panel de AppDynamics
En esta sección se muestran varios informes en AppDynamics.
En la captura de pantalla siguiente se muestra información general de las aplicaciones en el panel de AppDynamics:
La pestaña Aplicaciones muestra la información general de cada una de las aplicaciones, como se muestra en las capturas de pantalla siguientes mediante aplicaciones de ejemplo:
En la captura de pantalla siguiente se muestra cómo obtener información básica del panel Llamadas a base de datos.
También se puede obtener información sobre las llamadas a base de datos más lentas, como se muestra en estas capturas de pantalla:
En la captura de pantalla siguiente se muestra el análisis de uso de memoria en la sección Montón de la página Memoria:
También puede ver el proceso de recolección de elementos no utilizados, como se muestra en esta captura de pantalla:
En la captura de pantalla siguiente se muestra la página Transacciones lentas:
Puede definir más métricas para JVM, como se muestra en esta captura de pantalla del explorador de métricas:
Visualización de registros del agente de AppDynamics
De manera predeterminada, Azure Spring Apps imprime los registros de nivel de información del agente de AppDynamics en STDOUT
. Los registros se mezclan con los registros de la aplicación. Puede encontrar la versión explícita del agente en los registros de aplicaciones.
También puede obtener los registros del agente de AppDynamics desde las siguientes ubicaciones:
- Registros de Azure Spring Apps
- Application Insights de Azure Spring Apps
- LogStream de Azure Spring Apps
Más información sobre la actualización del agente de AppDynamics
El agente de AppDynamics se actualiza periódicamente con JDK (trimestralmente). La actualización del agente puede afectar a los escenarios siguientes:
- Las aplicaciones existentes que usaban el agente de AppDynamics antes de la actualización no se modifican, pero necesitan reiniciarse o volver a implementarse para interactuar con la nueva versión del agente de AppDynamics.
- Las aplicaciones creadas después de la actualización usan la nueva versión del agente de AppDynamics.
Configuración del tráfico de salida de la instancia de inyección de red virtual
En el caso de las instancias de inyección de red virtual de Azure Spring Apps, asegúrese de que el tráfico de salida esté configurado correctamente para el agente de AppDynamics. Para obtener detalles, consulte e Intervalos IP y dominios SaaS de Cisco AppDynamics y Responsabilidades del cliente para ejecutar Azure Spring Apps en una red virtual.
Descripción de las limitaciones
Para comprender las limitaciones del agente de AppDynamics, vea Supervisión de Azure Spring Apps con el agente de Java.
Pasos siguientes
Uso del agente In-Process de Java de Application Insights en Azure Spring Apps