Utilizar o Agente Application Insights Java In-Process no Azure Spring Apps
Nota
Os planos Basic, Standard e Enterprise serão preteridos a partir de meados de março de 2025, com um período de aposentadoria de 3 anos. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para obter mais informações, consulte o anúncio de aposentadoria do Azure Spring Apps.
O plano de consumo padrão e dedicado será preterido a partir de 30 de setembro de 2024, com um desligamento completo após seis meses. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para obter mais informações, consulte Migrar consumo padrão e plano dedicado do Azure Spring Apps para Aplicativos de Contêiner do Azure.
Com os aplicativos Spring Boot Native Image, use o Azure Monitor OpenTelemetry Distro / Application Insights no projeto de aplicativo Java de imagem nativa do Spring Boot em vez do agente Java do Application Insights.
Este artigo aplica-se a:✅ Consumo padrão e dedicado (Pré-visualização) ✅ Básico/Standard ✅ Enterprise
Este artigo explica como monitorar aplicativos usando o agente Java do Application Insights no Azure Spring Apps.
Com este recurso você pode:
- Pesquisar dados de rastreamento com diferentes filtros.
- Veja um mapa de dependência de aplicativos Spring.
- Verifique o desempenho da solicitação.
- Monitore métricas ao vivo em tempo real.
- Verifique as falhas na solicitação.
- Verifique as métricas do aplicativo.
- Verifique os logs do aplicativo.
O Application Insights pode fornecer muitas perspetivas observáveis, incluindo:
- Mapa da aplicação
- Desempenho
- Falhas
- Métricas
- Live Metrics
- Disponibilidade
- Registos
Usando o recurso Application Insights
Quando o recurso Application Insights está habilitado, você pode:
No painel de navegação, selecione Application Insights para exibir a página Visão geral do Application Insights. A página Visão geral mostra uma visão geral de todos os aplicativos em execução.
Selecione Mapa do aplicativo para ver o status das chamadas entre os aplicativos.
Selecione o link entre o atendimento ao cliente e
petclinic
para ver mais detalhes, como uma consulta do SQL.Selecione um ponto de extremidade para ver todos os aplicativos que fazem solicitações para o ponto de extremidade.
No painel de navegação, selecione Desempenho para ver os dados de desempenho de todas as operações, dependências e funções de todos os aplicativos.
No painel de navegação, selecione Falhas para ver quaisquer falhas ou exceções inesperadas dos seus aplicativos.
No painel de navegação, selecione Métricas e selecione o namespace para ver as métricas do Spring Boot e as métricas personalizadas, se houver.
No painel de navegação, selecione Métricas em tempo real para ver as métricas em tempo real para diferentes dimensões.
No painel de navegação, selecione Disponibilidade para monitorar a disponibilidade e a capacidade de resposta de aplicativos Web criando testes de disponibilidade no Application Insights.
No painel de navegação, selecione Logs para exibir os logs de todos os aplicativos ou os logs de um aplicativo ao filtrar por
cloud_RoleName
.
Gerenciar o Application Insights usando o portal do Azure
Habilite o Java In-Process Agent usando o procedimento a seguir.
Ir para o serviço | Página de visão geral da sua instância de serviço e, em seguida, selecione Application Insights na seção Monitoramento.
Selecione Habilitar Application Insights para habilitar o Application Insights no Azure Spring Apps.
Selecione uma instância existente do Application Insights ou crie uma nova.
Quando o Application Insights está habilitado, você pode configurar uma taxa de amostragem opcional (padrão 10,0%).
Selecione Guardar para guardar as alterações.
Nota
Não use a mesma instância do Application Insights em instâncias diferentes do Azure Spring Apps ou você verá dados mistos.
Você pode usar o Portal para verificar ou atualizar as configurações atuais no Application Insights.
Habilitar o Application Insights usando o portal do Azure
Selecione Application Insights.
Habilite o Application Insights selecionando Editar vinculação ou o hiperlink Não acoplado .
Edite o Application Insights ou a taxa de amostragem e selecione Salvar.
Desativar o Application Insights
Selecione Application Insights.
Selecione Desvincular vinculação para desabilitar o Application Insights.
Alterar configurações do Application Insights
Selecione o nome na coluna Application Insights para abrir a seção Application Insights.
Editar associações buildpack do Application Insights no Serviço de Criação
Para verificar e atualizar as configurações atuais para as associações buildpack do Application Insights no Serviço de Compilação, siga estas etapas:
- Selecione Build Service.
- Escolha o seu construtor.
- Selecione Editar na coluna Ligações.
As configurações do Application Insights são encontradas no item ApplicationInsights listado na coluna Tipo de ligação.
Selecione o hiperlink Acoplado ou selecione Editar vinculação sob a elipse para abrir e editar as associações buildpack do Application Insights.
Edite as configurações de vinculação e selecione Salvar.
Gerenciar o Application Insights usando a CLI do Azure
Você pode gerenciar o Application Insights usando comandos da CLI do Azure. Nos comandos a seguir, substitua o texto do <espaço reservado> pelos valores descritos. O <espaço reservado service-instance-name> refere-se ao nome da sua instância do Azure Spring Apps.
Ativar o Application Insights
Para configurar o Application Insights ao criar uma instância do Azure Spring Apps, use o comando a seguir. Para o argumento, você pode especificar um nome do Application Insights ou ID de app-insights
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
Você também pode usar uma cadeia de conexão do Application Insights (preferencial) ou uma chave de instrumentação, conforme mostrado no exemplo a seguir.
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
Desativar o Application Insights
Para desabilitar o Application Insights ao criar uma instância do Azure Spring Apps, use o seguinte 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
Verifique as configurações do Application Insights
Para verificar as configurações do Application Insights de uma instância existente do Azure Spring Apps, use o seguinte comando:
az spring app-insights show \
--resource-group <resource-group-name> \
--name <service-instance-name>
Atualizar o Application Insights
Para atualizar o Application Insights para usar uma cadeia de conexão (preferencial) ou chave de instrumentação, use o seguinte 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 atualizar o Application Insights para usar o nome ou ID do recurso, use o seguinte 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>
Desative o Application Insights com o comando update
Para desabilitar o Application Insights em uma instância existente do Azure Spring Apps, use o seguinte comando:
az spring app-insights update \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--disable
Gerenciar associações buildpack do Application Insights
Esta secção aplica-se apenas ao plano Enterprise e fornece instruções que complementam a secção anterior.
O plano do Azure Spring Apps Enterprise usa associações buildpack para integrar o Azure Application Insights com o tipo ApplicationInsights
. Para obter mais informações, consulte Como configurar a integração APM e certificados de CA.
Para criar uma associação buildpack do Application Insights, use o seguinte 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 listar todas as associações buildpack e encontrar associações do tipo Application Insights , ApplicationInsights
use o seguinte 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 substituir uma associação buildpack do Application Insights, use o seguinte 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 obter uma associação buildpack do Application Insights, use o seguinte 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 excluir uma associação buildpack do Application Insights, use o seguinte 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>
Automatização
As seções a seguir descrevem como automatizar sua implantação usando Bicep, modelos do Azure Resource Manager (modelos ARM) ou Terraform.
Bicep
Para implantar usando um arquivo Bicep, copie o conteúdo a seguir em um arquivo main.bicep . Para obter mais informações, 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
}
}
Modelos do ARM
Para implantar usando um modelo ARM, copie o conteúdo a seguir em um arquivo azuredeploy.json . Para obter mais informações, 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 uma implantação do Terraform, use o modelo a seguir. Para obter mais informações, 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"
}
}
A automação no plano Enterprise está pendente de suporte. A documentação é adicionada assim que estiver disponível.
Atualização/upgrade do agente Java
O agente Java é atualizado/atualizado regularmente com o JDK, o que pode afetar os seguintes cenários.
Nota
A versão JDK é atualizada/atualizada trimestralmente por ano.
- Os aplicativos existentes que usam o agente Java antes de atualizar/atualizar não são afetados.
- As aplicações criadas após a atualização/atualização usam a nova versão do agente Java.
- Os aplicativos existentes que não usavam anteriormente o agente Java exigem reinicialização ou reimplementação para usar a nova versão do agente Java.
O agente Java é atualizado/atualizado quando o buildpack é atualizado.
Configuração do agente Java hot-loading
O Azure Spring Apps tem um mecanismo de carregamento a quente para ajustar as definições de configuração do agente sem reiniciar os aplicativos.
Nota
O mecanismo de carregamento a quente tem um atraso em minutos.
Se o agente Java já estiver ativado, as alterações na instância ou
SamplingRate
no valor do Application Insights não exigirão a reinicialização do aplicativo.Se você ativar o agente Java, deverá reiniciar os aplicativos.
Quando você desabilita o agente Java, os aplicativos param de enviar todos os dados de monitoramento após um atraso em minutos. Você pode reiniciar aplicativos para remover o agente do Java Runtime Environment.
Correspondência de conceitos entre o Azure Spring Apps e o Application Insights
Azure Spring Apps | Application Insights |
---|---|
App |
* Mapa de Aplicação/Função * Métricas ao vivo/função * Falhas/Funções/Função na nuvem * Desempenho/Funções/Função Poderia |
App Instance |
* Mapa do aplicativo/instância de função * Métricas em tempo real/nome do serviço * Falhas/funções/instância de nuvem * Desempenho/Funções/Instância Poderia |
O nome App Instance
do Azure Spring Apps é alterado ou gerado nos seguintes cenários:
- Você cria um novo aplicativo.
- Você implanta um arquivo JAR ou código-fonte em um aplicativo existente.
- Você inicia uma implantação azul/verde.
- Reinicie o aplicativo.
- Parar a implantação de um aplicativo e, em seguida, reiniciá-lo.
Quando os dados são armazenados no Application Insights, eles contêm o histórico das instâncias do aplicativo Azure Spring Apps criadas ou implantadas desde que o agente Java foi habilitado. Por exemplo, no portal do Application Insights, você pode ver os dados do aplicativo criados ontem, mas excluídos dentro de um intervalo de tempo específico, como as últimas 24 horas. Os cenários a seguir mostram como isso funciona:
- Você criou um aplicativo por volta das 8h00 de hoje a partir do Azure Spring Apps com o agente Java habilitado e, em seguida, implantou um arquivo JAR nesse aplicativo por volta das 8h10 de hoje. Após alguns testes, você altera o código e implanta um novo arquivo JAR neste aplicativo às 8h30 de hoje. Em seguida, você faz uma pausa e, quando volta por volta das 11h00, verifica alguns dados do Application Insights. Estás a ver:
- Três instâncias no Mapa do Aplicativo com intervalos de tempo nas últimas 24 horas e Falhas, Desempenho e Métricas.
- Uma instância no Mapa do Aplicativo com um intervalo de tempo na última hora e Falhas, Desempenho e Métricas.
- Uma instância no Live Metrics.
- Você criou um aplicativo por volta das 8h00 de hoje a partir do Azure Spring Apps com o agente Java habilitado e, em seguida, implantou um arquivo JAR nesse aplicativo por volta das 8h10 de hoje. Por volta das 8h30 de hoje, você tenta uma implantação azul/verde com outro arquivo JAR. Atualmente, você tem duas implantações para este aplicativo. Depois de uma pausa por volta das 11h00 de hoje, você deseja verificar alguns dados do Application Insights. Estás a ver:
- Três instâncias no Mapa do Aplicativo com intervalos de tempo nas últimas 24 horas e Falhas, Desempenho e Métricas.
- Duas instâncias no Mapa de Aplicativos com intervalos de tempo na última hora e Falhas, Desempenho e Métricas.
- Duas instâncias no Live Metrics.