Inicio rápido: Supervisión de aplicaciones de un extremo a otro
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 de Consumo estándar 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 consumo estándar y el plan dedicado de Azure Spring Apps a Azure Container Apps.
Este artículo se aplica a:❌ Básico o Estándar ✔️ Enterprise
En este inicio rápido se muestra cómo supervisar las aplicaciones que ejecutan el plan Enterprise de Azure Spring Apps mediante Application Insights y Log Analytics.
Nota
Puede supervisar las cargas de trabajo de Spring de un extremo a otro con la herramienta y plataforma que prefiera, incluidos App Insights, Log Analytics, New Relic, Dynatrace, AppDynamics, Elastic o Splunk. Para más información, vea Trabajo con otras herramientas de supervisión más adelante en este artículo.
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Comprenda y cumpla la sección Requisitos del plan Enterprise en Azure Marketplace.
- La versión 2.45.0 o superior de la CLI de Azure.
- Git.
- La extensión del plan Enterprise de Azure Spring Apps. Use el siguiente comando para eliminar las versiones anteriores e instalar la extensión del plan Enterprise más reciente. Si ya ha instalado la extensión
spring-cloud
, desinstálela para evitar errores de coincidencia de la configuración y la versión.az extension add --upgrade --name spring az extension remove --name spring-cloud
- Recursos para supervisar, como los creados en los siguientes inicios rápidos:
Actualización de aplicaciones
Debe proporcionar manualmente la cadena de conexión de Application Insights a las aplicaciones Order Service (ASP.NET Core) y Cart Service (Python). En las instrucciones siguientes se describe cómo proporcionar esta cadena de conexión y aumentar la frecuencia de muestreo a Application Insights.
Nota
Actualmente, solo los paquetes de compilación para aplicaciones de Java y NodeJS admiten la instrumentación de Application Insights.
Cree variables para contener los nombres del recurso mediante los siguientes comandos. Asegúrese de reemplazar los marcadores de posición por sus propios valores. El nombre de la instancia de servicio de Azure Spring Apps debe tener entre 4 y 32 caracteres y solo puede contener letras minúsculas, números y guiones. El primer carácter del nombre del servicio debe ser una letra y el último debe ser una letra o un número.
export RESOURCE_GROUP="<resource-group-name>" export APP_INSIGHTS_NAME="<app-insights-name>" export KEY_VAULT_NAME="<key-vault-name>" export AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME="<Azure-Spring-Apps-service-instance-name>"
Nota:
De manera predeterminada, el nombre APP_INSIGHTS_NAME es el mismo que AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME.
Use los comandos siguientes para recuperar la cadena de conexión de Application Insights y establecerla en Key Vault:
export CONNECTION_STRING=$(az monitor app-insights component show \ --resource-group ${RESOURCE_GROUP} \ --app ${APP_INSIGHTS_NAME} \ --query "connectionString" \ --output tsv) az keyvault secret set \ --vault-name ${KEY_VAULT_NAME} \ --name "ApplicationInsights--ConnectionString" \ --value ${CONNECTION_STRING}
Use el comando siguiente para actualizar la frecuencia de muestreo del enlace de Application Insights para aumentar la cantidad de datos disponibles:
az spring build-service builder buildpack-binding set \ --resource-group ${RESOURCE_GROUP} \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \ --builder-name default \ --name default \ --type ApplicationInsights \ --properties sampling-rate=100 connection_string=${CONNECTION_STRING}
Use los comandos siguientes a fin de reiniciar las aplicaciones para volver a cargar la configuración:
az spring app restart \ --resource-group ${RESOURCE_GROUP} \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \ --name cart-service az spring app restart \ --resource-group ${RESOURCE_GROUP} \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \ --name order-service az spring app restart \ --resource-group ${RESOURCE_GROUP} \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \ --name catalog-service az spring app restart \ --resource-group ${RESOURCE_GROUP} \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \ --name frontend az spring app restart \ --resource-group ${RESOURCE_GROUP} \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \ --name payment-service
Si ha configurado el inicio de sesión único, use los siguientes comandos para reiniciar las aplicaciones y volver a cargar la configuración de la aplicación identity-service:
az spring app restart \ --resource-group ${RESOURCE_GROUP} \ --service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \ --name identity-service
En el caso de las aplicaciones de Java y NodeJS, el reinicio permitirá que la nueva frecuencia de muestreo surta efecto. En el caso de las aplicaciones que no son de Java, el reinicio les permitirá acceder a la clave de instrumentación recién agregada desde Key Vault.
Ver registros
Hay dos maneras de ver los registros en Azure Spring Apps: streaming de registro de registros en tiempo real por instancia de aplicación o Log Analytics para registros agregados con la funcionalidad de consulta avanzada
Uso de streaming de registro
Para generar tráfico en la aplicación, recórrala, vea el catálogo y realice pedidos. Use los comandos siguientes para generar tráfico de forma continuada, hasta que se cancele:
export GATEWAY_URL=$(az spring gateway show \
--resource-group ${RESOURCE_GROUP} \
--service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
--query "properties.url" \
--output tsv)
export GATEWAY_URL=https://${GATEWAY_URL}
cd azure-spring-apps-enterprise/load-test/traffic-generator
./gradlew gatlingRun-com.vmware.acme.simulation.GuestSimulation.java
Use el comando siguiente para obtener las últimas 100 líneas de registros de consola de aplicación de la aplicación Servicio de catálogo:
az spring app logs \
--resource-group ${RESOURCE_GROUP} \
--name catalog-service \
--service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
--lines 100
Al agregar la opción --follow
, puede obtener el streaming de registro en tiempo real de una aplicación. Use el comando siguiente para probar el streaming de registro para la aplicación Servicio de catálogo:
az spring app logs \
--resource-group ${RESOURCE_GROUP} \
--name catalog-service \
--service ${AZURE_SPRING_APPS_SERVICE_INSTANCE_NAME} \
--follow
Sugerencia
Puede usar az spring app logs --help
para explorar más parámetros y funcionalidades de flujo de registro.
Uso de Log Analytics
Vaya a Azure Portal y abra la instancia de Log Analytics que ha creado. Puede encontrar la instancia de Log Analytics en el mismo grupo de recursos donde ha creado la instancia de servicio de Azure Spring Apps.
En la página Log Analytics, seleccione el panel Registros y ejecute cualquiera de las siguientes consultas de ejemplo para Azure Spring Apps.
Escriba y ejecute la siguiente consulta Kusto para ver los registros de aplicación:
AppPlatformLogsforSpring
| where TimeGenerated > ago(24h)
| limit 500
| sort by TimeGenerated
| project TimeGenerated, AppName, Log
Esta consulta genera resultados similares a los que se muestran en la captura de pantalla siguiente:
Escriba y ejecute la siguiente consulta Kusto para ver los registros de aplicación de catalog-service
:
AppPlatformLogsforSpring
| where AppName has "catalog-service"
| limit 500
| sort by TimeGenerated
| project TimeGenerated, AppName, Log
Esta consulta genera resultados similares a los que se muestran en la captura de pantalla siguiente:
Escriba y ejecute la siguiente consulta Kusto para ver los errores y excepciones creados por cada aplicación:
AppPlatformLogsforSpring
| where Log contains "error" or Log contains "exception"
| extend FullAppName = strcat(ServiceName, "/", AppName)
| summarize count_per_app = count() by FullAppName, ServiceName, AppName, _ResourceId
| sort by count_per_app desc
| render piechart
Esta consulta genera resultados similares a los que se muestran en la captura de pantalla siguiente:
Escriba y ejecute la siguiente consulta Kusto para ver todas las llamadas entrantes a Azure Spring Apps:
AppPlatformIngressLogs
| project TimeGenerated, RemoteAddr, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated
Escriba y ejecute la siguiente consulta de Kusto para ver todos los registros de la instancia administrada de Spring Cloud Config Gateway administrada por Azure Spring Apps:
AppPlatformSystemLogs
| where LogType contains "SpringCloudGateway"
| project TimeGenerated,Log
Esta consulta genera resultados similares a los que se muestran en la captura de pantalla siguiente:
Escriba y ejecute la siguiente consulta de Kusto para ver todos los registros de la instancia administrada de Spring Cloud Service Registry administrada por Azure Spring Apps:
AppPlatformSystemLogs
| where LogType contains "ServiceRegistry"
| project TimeGenerated, Log
Esta consulta genera resultados similares a los que se muestran en la captura de pantalla siguiente:
Uso del seguimiento
En Azure Portal, abra la instancia de Application Insights creada por Azure Spring Apps y empiece a supervisar las aplicaciones de Spring Boot. Puede encontrar la instancia de Application Insights en el mismo grupo de recursos donde ha creado un instancia de servicio de Azure Spring Apps.
Vaya al panel Mapa de aplicación, que será similar a la captura de pantalla siguiente:
Vaya al panel Rendimiento, que será similar a la captura de pantalla siguiente:
Vaya al panel Rendimiento/Dependencias. Aquí puede ver el número de rendimiento de las dependencias, especialmente las llamadas SQL, similar a lo que se muestra en la captura de pantalla siguiente:
Vaya al panel Rendimiento/Roles. Aquí puede ver las métricas de rendimiento de instancias o roles individuales, similar a lo que se muestra en la captura de pantalla siguiente:
Seleccione una llamada SQL para ver la transacción de un extremo a otro en contexto, similar a lo que se muestra en la captura de pantalla siguiente:
Vaya al panel Errores o excepciones. Aquí puede ver una colección de excepciones, similar a lo que se muestra en la captura de pantalla siguiente:
Visualización de métricas
Vaya al panel Métricas. Aquí puede ver las métricas aportadas por las aplicaciones de Spring Boot, los módulos de Spring Cloud y las dependencias. En el gráfico de la captura de pantalla siguiente se muestran http_server_requests y Memoria de montón usada:
Spring Boot registra un gran número de métricas principales: JVM, CPU, Tomcat, Logback, etc.
La configuración automática de Spring Boot permite la instrumentación de las solicitudes que controla Spring MVC.
Los controladores REST ProductController
y PaymentController
los ha instrumentado la anotación de Micrometer @Timed
en el nivel de clase.
La aplicación acme-catalog
tiene habilitadas las siguientes métricas personalizadas: @Timed: store.products
La aplicación acem-payment
tiene habilitadas las siguientes métricas personalizadas: @Timed: store.payment
Puede ver estas métricas personalizadas en el panel Métricas, como se muestra en la captura de pantalla siguiente.
Vaya al panel Métricas en directo. Aquí puede ver las métricas en directo en pantalla con latencias < 1 segundo, como se muestra en la captura de pantalla siguiente:
Trabajo con otras herramientas de supervisión
El plan Enterprise de Azure Spring Apps también admite la exportación de métricas a otras herramientas, incluidas las siguientes:
- AppDynamics
- ApacheSkyWalking
- Dynatrace
- ElasticAPM
- NewRelic
Puede agregar más enlaces a un generador en Tanzu Build Service mediante el siguiente comando:
az spring build-service builder buildpack-binding create \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-service-instance-name> \
--builder-name <builder-name> \
--name <binding-name> \
--type <ApplicationInsights|AppDynamics|ApacheSkyWalking|Dynatrace|ElasticAPM|NewRelic> \
--properties <connection-properties>
--secrets <secret-properties>
Limpieza de recursos
Si planea seguir trabajando en otros inicios rápidos y tutoriales, considere la posibilidad de dejar estos recursos activos. Cuando ya no lo necesite, elimine el grupo de recursos, que elimina los recursos que contiene. Para eliminar el grupo de recursos mediante la CLI de Azure, use estos comandos:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Pasos siguientes
Continúe con cualquiera de los siguientes artículos de inicio rápido opcionales: