Uso del agente In-Process de Java de Application Insights en Azure Spring Apps
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.
Con las aplicaciones de imagen nativa Spring Boot, use el proyecto de Aplicación Java de imagen nativa openTelemetry / Application Insights de Azure Monitor en lugar del agente java de Application Insights.
Este artículo se aplica a: ✔️ Consumo y dedicado estándar (versión preliminar) ✔️ Básico/Estándar ✔️ Enterprise
En este artículo se explica cómo supervisar las aplicaciones mediante el agente Java de Application Insights en Azure Spring Apps.
Con esta característica, puede:
- Buscar datos de seguimiento con distintos filtros.
- Vea un mapa de dependencias de aplicaciones de Spring.
- Comprobar el rendimiento de la solicitud.
- Supervisar las métricas en directo en tiempo real.
- Comprobar los errores de solicitud.
- Comprobar las métricas de aplicación.
- Compruebe los registros de la aplicaciones.
Application Insights puede proporcionar muchas perspectivas observables, entre las que se incluyen las siguientes:
- Mapa de aplicación
- Rendimiento
- Errores
- Métricas
- Live Metrics
- Disponibilidad
- Registros
Uso de la característica Application Insights
Cuando está habilitada la característica Application Insights, puede hacer lo siguiente:
En el panel de navegación, seleccione Application Insights para ver la página Información general de Application Insights. En la página Información general se muestra un resumen de todas las aplicaciones en ejecución.
Seleccione Mapa de aplicación para ver el estado de las llamadas entre las aplicaciones.
Seleccione el vínculo entre el servicio para los clientes y
petclinic
para ver más detalles, como una consulta de SQL.Seleccione un punto de conexión para ver todas las aplicaciones que realizan solicitudes al punto de conexión.
En el panel de navegación, seleccione Rendimiento para ver los datos de rendimiento de las operaciones de todas las aplicaciones, así como las dependencias y los roles.
En el panel de navegación, seleccione Errores para ver los errores o excepciones inesperados de las aplicaciones.
En el panel de navegación, seleccione Métricas y elija el espacio de nombres para ver las métricas de Spring Boot y las personalizadas, si las hay.
En el panel de navegación, seleccione Live Metrics para ver las métricas en tiempo real de las distintas dimensiones.
En el panel de navegación, seleccione Disponibilidad para supervisar la disponibilidad y la capacidad de respuesta de las aplicaciones web mediante la creación de Pruebas de disponibilidad en Application Insights.
En el panel de navegación, seleccione Registros para ver todos los registros de las aplicaciones o uno de ellos si filtra por
cloud_RoleName
.
Administración de Application Insights mediante Azure Portal
Habilite el agente In-Process de Java mediante el procedimiento siguiente.
Vaya a la página servicio | Información general de la instancia del servicio y seleccione Application Insights en la sección Supervisión.
Seleccione Habilitar Application Insights para habilitar Application Insights en Azure Spring Apps.
Seleccione una instancia existente de Application Insights o cree una.
Cuando Application Insights está habilitada, puede configurar una frecuencia de muestreo opcional (valor predeterminado del 10,0 %).
Seleccione Guardar para guardar el cambio.
Nota:
No use la misma instancia de Application Insights en otras instancias de Azure Spring Apps, o verá datos mezclados.
Puede usar el portal para comprobar o actualizar la configuración actual en Application Insights.
Habilitación de Application Insights mediante Azure Portal
Haga clic en Application Insights.
Para habilitar Application Insights, seleccione Editar enlace o el hipervínculo Sin enlazar.
Edite Application Insights o Frecuencia de muestreo y, luego, seleccione Guardar.
Deshabilitación de Application Insights
Haga clic en Application Insights.
Seleccione Unbind binding (Desenlazar enlace) para deshabilitar Application Insights.
Cambio de la configuración de Application Insights
Seleccione el nombre en la columna Application Insights para abrir la sección Application Insights.
Edición de enlaces de paquete de compilación de Application Insights en el servicio de compilación
Para comprobar y actualizar la configuración actual de los enlaces de paquete de compilación de Application Insights en el servicio de compilación, siga estos pasos:
- Seleccione Build Service (Servicio de compilación).
- Elija el generador.
- Seleccione Editar en la columna Enlaces.
La configuración de Application Insights se encuentra en el elemento ApplicationInsights que aparece en la columna Tipo de enlace.
Seleccione el hipervínculo Enlazado o Editar enlace en el botón de puntos suspensivos para abrir y editar los enlaces de paquete de compilación de Application Insights.
Edite la configuración de enlace y, luego, seleccione Guardar.
Administración de Application Insights mediante la CLI de Azure
Puede administrar Application Insights mediante comandos de la CLI de Azure. En los siguientes comandos, asegúrese de reemplazar el texto del <marcador de posición> por los valores descritos. El marcador de posición <service-instance-name> hace referencia al nombre de la instancia de Azure Spring Apps.
Habilitación de Application Insights
Para configurar Application Insights al crear una instancia de Azure Spring Apps, use el siguiente comando. Para el argumento app-insights
, puede especificar un nombre de Application Insights o un identificador de recurso.
az spring create \
--resource-group <resource-group-name> \
--name "service-instance-name" \
--app-insights <name-or-resource-ID> \
--sampling-rate <sampling-rate>
az spring create \
--resource-group <resource-group-name> \
--name "service-instance-name" \
--app-insights <name-or-resource-ID> \
--sampling-rate <sampling-rate> \
--sku Enterprise
También puede usar una cadena de conexión (preferida) o una clave de instrumentación de Application Insights, como se muestra en el ejemplo siguiente.
az spring create \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--app-insights-key <connection-string-or-instrumentation-key> \
--sampling-rate <sampling-rate>
az spring create \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--app-insights-key <connection-string-or-instrumentation-key> \
--sampling-rate <sampling-rate> \
--sku Enterprise
Deshabilitación de Application Insights
Para deshabilitar Application Insights al crear una instancia de Azure Spring Apps, use el siguiente comando:
az spring create \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--disable-app-insights
az spring create \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--disable-app-insights \
--sku Enterprise
Comprobación de la configuración de Application Insights
Para comprobar la configuración de Application Insights de una instancia de Azure Spring Apps existente, use el siguiente comando:
az spring app-insights show \
--resource-group <resource-group-name> \
--name <service-instance-name>
Actualización de Application Insights
Para actualizar Application Insights para que use una cadena de conexión (preferida) o una clave de instrumentación, utilice el siguiente comando:
az spring app-insights update \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--app-insights-key <connection-string-or-instrumentation-key> \
--sampling-rate <sampling-rate>
Para actualizar Application Insights para que use el nombre o el identificador del recurso, use el siguiente comando:
az spring app-insights update \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--app-insights <name-or-resource-ID> \
--sampling-rate <sampling-rate>
Deshabilitación de Application Insights con el comando de actualización
Para deshabilitar Application Insights en una instancia de Azure Spring Apps, use el siguiente comando:
az spring app-insights update \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--disable
Administración de enlaces de paquete de compilación de Application Insights
Esta sección solo se aplica al plan Enterprise y proporciona instrucciones que complementan la sección anterior.
El plan Enterprise de Azure Spring Apps usa enlaces de paquete de compilación para integrar Azure Application Insights con el tipo ApplicationInsights
. Para más información, consulte Cómo configurar la integración de APM y los certificados de CA.
Para crear un enlace de paquete de compilación de Application Insights, use el siguiente comando:
az spring build-service builder buildpack-binding create \
--resource-group <your-resource-group-name> \
--service <your-service-instance-name> \
--name <your-binding-name> \
--builder-name <your-builder-name> \
--type ApplicationInsights \
--properties sampling-percentage=<your-sampling-percentage> \
connection-string=<your-connection-string>
Para enumerar todos los enlaces de paquete de compilación y encontrar los enlaces de Application Insights de tipo ApplicationInsights
, use el siguiente comando:
az spring build-service builder buildpack-binding list \
--resource-group <your-resource-group-name> \
--service <your-service-resource-name> \
--builder-name <your-builder-name>
Para reemplazar un enlace de paquete de compilación de Application Insights, use el siguiente comando:
az spring build-service builder buildpack-binding set \
--resource-group <your-resource-group-name> \
--service <your-service-instance-name> \
--name <your-binding-name> \
--builder-name <your-builder-name> \
--type ApplicationInsights \
--properties sampling-percentage=<your-sampling-percentage> \
connection-string=<your-connection-string>
Para obtener un enlace de paquete de compilación de Application Insights, use el siguiente comando:
az spring build-service builder buildpack-binding show \
--resource-group <your-resource-group-name> \
--service <your-service-instance-name> \
--name <your-binding-name> \
--builder-name <your-builder-name>
Para eliminar un enlace de paquete de compilación de Application Insights, use el siguiente comando:
az spring build-service builder buildpack-binding delete \
--resource-group <your-resource-group-name> \
--service <your-service-instance-name> \
--name <your-binding-name> \
--builder-name <your-builder-name>
Automation
En las secciones siguientes se describe cómo automatizar la implementación mediante Bicep, plantillas de Azure Resource Manager (plantillas de ARM) o Terraform.
Bicep
Para realizar la implementación mediante un archivo de Bicep, copie el contenido siguiente en un archivo main.bicep. Para obtener más información, consulte Microsoft.AppPlatform Spring/monitoringSettings.
param springName string
param location string = resourceGroup().location
resource spring 'Microsoft.AppPlatform/Spring@2020-07-01' = {
name: springName
location: location
properties: {}
}
resource monitorSetting 'Microsoft.AppPlatform/Spring/monitoringSettings@2020-11-01-preview' = {
parent: spring
name: 'default'
properties: {
appInsightsInstrumentationKey: '00000000-0000-0000-0000-000000000000'
appInsightsSamplingRate: 88
}
}
Plantillas de ARM
Para realizar la implementación con una plantilla de ARM, copie el siguiente contenido en un archivo azuredeploy.json. Para obtener más información, consulte Microsoft.AppPlatform Spring/monitoringSettings.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"springName": {
"type": "string"
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.AppPlatform/Spring",
"apiVersion": "2020-07-01",
"name": "[parameters('springName')]",
"location": "[parameters('location')]",
"properties": {}
},
{
"type": "Microsoft.AppPlatform/Spring/monitoringSettings",
"apiVersion": "2020-11-01-preview",
"name": "[format('{0}/{1}', parameters('springName'), 'default')]",
"properties": {
"appInsightsInstrumentationKey": "00000000-0000-0000-0000-000000000000",
"appInsightsSamplingRate": 88
},
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring', parameters('springName'))]"
]
}
]
}
Terraform
Para una implementación de Terraform, use la plantilla siguiente. Para más información, consulte azurerm_spring_cloud_service.
provider "azurerm" {
features {}
}
resource "azurerm_resource_group" "example" {
name = "example-resources"
location = "West Europe"
}
resource "azurerm_application_insights" "example" {
name = "tf-test-appinsights"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
application_type = "web"
}
resource "azurerm_spring_cloud_service" "example" {
name = "example-springcloud"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
sku_name = "S0"
config_server_git_setting {
uri = "https://github.com/Azure-Samples/piggymetrics"
label = "config"
search_paths = ["dir1", "dir2"]
}
trace {
connection_string = azurerm_application_insights.example.connection_string
sample_rate = 10.0
}
tags = {
Env = "staging"
}
}
La automatización en el plan Enterprise está pendiente de soporte técnico. La documentación se agregará en cuanto esté disponible.
Actualización del agente de Java
El agente de Java se actualiza periódicamente con el JDK, lo que puede afectar a los escenarios siguientes.
Nota:
La versión de JDK se actualiza trimestralmente cada año.
- Las aplicaciones existentes que usan el agente de Java antes de la actualización no se ven afectadas.
- Las aplicaciones creadas después de la actualización usan la nueva versión del agente de Java.
- Las aplicaciones existentes que previamente no usaban el agente de Java necesitan un reinicio o una nueva implementación para usar la nueva versión del agente de Java.
El agente de Java se actualiza cuando se actualiza el paquete de compilación.
Carga activa de la configuración del agente de Java
Azure Spring Apps tiene un mecanismo de carga frecuente para ajustar la configuración del agente sin reiniciar las aplicaciones.
Nota:
El mecanismo de carga activa tiene un retraso en minutos.
Si el agente de Java ya está habilitado, los cambios realizados en la instancia de Application Insights o el valor
SamplingRate
no necesitan el reinicio de la aplicación.Si habilita el agente de Java, debe reiniciar las aplicaciones.
Al deshabilitar el agente de Java, las aplicaciones dejan de enviar todos los datos de supervisión después de un retraso en minutos. Puede reiniciar las aplicaciones para quitar el agente del entorno en tiempo de ejecución de Java.
Coincidencia de conceptos entre Azure Spring Apps y Application Insights
Azure Spring Apps | Application Insights |
---|---|
App |
* Mapa de aplicación/Rol * Live Metrics/Rol * Errores/Roles/Rol en la nube * Rendimiento/Roles/Rol en la nube |
App Instance |
* Mapa de aplicación/Instancia de rol * Live Metrics/Nombre del servicio * Errores/Roles/Instancia en la nube * Rendimiento/Roles/Instancia en la nube |
El nombre App Instance
de Azure Spring Apps se cambia o se genera en los escenarios siguientes:
- Creación de una aplicación.
- Implementación de un archivo JAR o un código fuente en una aplicación existente.
- Inicio de una implementación azul-verde.
- Reinicio de la aplicación.
- Detención de la implementación de una aplicación y posterior reinicio.
Cuando los datos se almacenan en Application Insights, este contiene el historial de las instancias de aplicación de Azure Spring Apps creadas o implementadas desde que se habilitó el agente de Java. Por ejemplo, en el portal de Application Insights, puede ver los datos de aplicación creados ayer, pero que se eliminaron luego durante un intervalo de tiempo específico, por ejemplo, las últimas 24 horas. En los escenarios siguientes, se muestra el funcionamiento:
- Ha creado una aplicación alrededor de las 8:00 de hoy desde Azure Spring Apps con el agente de Java habilitado y, después, ha implementado un archivo JAR en esta aplicación alrededor de las 8:10 de hoy. Después de algunas pruebas, cambia el código e implementa un nuevo archivo JAR en esta aplicación a las 8:30 de hoy. A continuación, se toma un respiro y, cuando vuelve a ello alrededor de las 11:00, comprueba algunos datos de Application Insights. Se ve lo siguiente:
- Tres instancias de Application Map con intervalos de tiempo en las últimas 24 horas, así como información de errores, rendimiento y métricas.
- Una instancia de Application Map con un intervalo de tiempo en la última hora, así como información de errores, rendimiento y métricas.
- Una instancia de Live Metrics.
- Ha creado una aplicación alrededor de las 8:00 de hoy desde Azure Spring Apps con el agente de Java habilitado y, después, ha implementado un archivo JAR en esta aplicación alrededor de las 8:10 de hoy. Alrededor de las 8:30 de hoy, probará una implementación azul-verde con otro archivo JAR. Actualmente, tiene dos implementaciones para esta aplicación. Después de un descanso, alrededor de las 11:00 de hoy, quiere comprobar algunos datos de Application Insights. Se ve lo siguiente:
- Tres instancias de Application Map con intervalos de tiempo en las últimas 24 horas, así como información de errores, rendimiento y métricas.
- Dos instancias de Application Map con intervalos de tiempo en la última hora, así como información de errores, rendimiento y métricas.
- Dos instancias de Live Metrics.