Usar o Agente Java em processo do Application Insights no Azure Spring Apps
Observação
Os planos Básico, Standard e Enterprise serão preteridos a partir de meados de março de 2025, com um período de desativação de 3 anos. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para mais informações, confira o anúncio de desativação dos Aplicativos Spring do Azure.
O plano Consumo Standard e dedicado será preterido a partir de 30 de setembro de 2024, com desligamento completo após seis meses. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para mais informações, confira Migrar o plano dedicado e consumo Standard dos Aplicativos Spring do Azure para os Aplicativos de Contêiner do Azure.
Com os aplicativos Spring Boot Native Image, use o projeto Azure Monitor OpenTelemetry Distro/Application Insights no aplicativo Java de imagem nativa do Spring Boot em vez do agente Java do Application Insights.
Este artigo se aplica a: ✔️ Consumo Standard e dedicado (versão prévia) ✔️ Básico/Standard ✔️ Enterprise
Este artigo explica como monitorar aplicativos ao usar o agente do Java para Application Insights no Azure Spring Apps.
Com esse recurso, é possível:
- Pesquisar dados de rastreamento com diferentes filtros.
- Exibir um mapa de dependência dos aplicativos do Spring.
- Verificar o desempenho da solicitação.
- Monitorar métricas dinâmicas em tempo real.
- Verificar falhas de solicitação.
- Verificar métricas de aplicativo.
- Verificar logs do aplicativo.
O Application Insights pode apresentar muitas perspectivas observáveis, incluindo:
- Mapa do aplicativo
- Desempenho
- Falhas
- Métricas
- Live Metrics
- Disponibilidade
- Logs
Usando o recurso Application Insights
Quando o recurso Application Insights estiver habilitado, você poderá:
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 em Mapa do aplicativo para ver o status das chamadas entre aplicativos.
Selecione o link entre customers-service e
petclinic
para ver mais detalhes, como uma consulta do SQL.Selecione um ponto de extremidade para ver todos os aplicativos que estão fazendo 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 falhas ou exceções inesperadas de 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 Dinâmicas para ver as métricas em tempo real para dimensões diferentes.
No painel de navegação, selecione Disponibilidade para monitorar a disponibilidade e a capacidade de resposta dos 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 agente em processo do Java usando o procedimento a seguir.
Vá para a página serviço | Visão geral da 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.
Escolha 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%).
Selecione Salvar para salvar as alterações.
Observação
Não use a mesma instância do Application Insights em instâncias diferentes dos Aplicativos Spring do Azure 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.
Habilitar o Insights aplicativo selecionando Editar vinculação ou o hiperlink Desvincular.
Edite o Application Insights ou a Taxa de Amostragem e selecione Salvar.
Desabilitar o Application Insights
Selecione Application Insights.
Selecione Desvincular associação para desabilitar o Application Insights.
Alterar as configurações do Application Insights
Selecione o nome na coluna Aplicativo Insights para abrir a seção do Aplicativo Insights.
Editar as associações de buildpack do Application Insights no Serviço Build
Para verificar e atualizar as configurações atuais das associações de buildpack do Application Insights no Serviço Build, siga estas etapas:
- Selecione Build Service.
- Escolha seu construtor.
- Selecione Editar na coluna Associações.
As configurações do Application Insights são encontradas no item ApplicationInsights listado na coluna Tipo de associação.
Selecione o hiperlink Associado ou selecione Editar Associação na elipse para abrir e editar as associações de buildpack do Application Insights.
Edite as configurações de associação e selecione Salvar.
Gerenciar o Application Insights usando a CLI do Azure
Você pode gerenciar o Application Insights usando os comandos da CLI do Azure. Nos comandos a seguir, substitua o texto <espaço reservado> pelos valores descritos. O espaço reservado <service-instance-name> se refere ao nome da instância do Azure Spring Apps.
Habilitar 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 app-insights
, você pode especificar um nome do Application Insights ou a ID do 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 a 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
Desabilitar 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
Verificar 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
A fim de atualizar o Application Insights para usar uma cadeia de conexão (preferencial) ou uma chave de instrumentação, use o comando a seguir:
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>
A fim de atualizar o Application Insights para usar o nome ou a ID do recurso, use o comando a seguir:
az spring app-insights update \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--app-insights <name-or-resource-ID> \
--sampling-rate <sampling-rate>
Desabilitar 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 de buildpack do Application Insights
Esta seção se aplica somente ao plano Enterprise e fornece instruções que complementam a seção anterior.
O plano Enterprise dos Aplicativos Spring do Azure usa associações de buildpack para integrar o Azure Application Insights ao tipo ApplicationInsights
. Para obter mais informações, consulte Como configurar a integração do APM e os certificados de AC.
Para criar uma associação de 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 de buildpack e encontrar as associações do Application Insights de tipo 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 de 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 de 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 de 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>
Automação
As seções a seguir descrevem como automatizar a implantação usando o Bicep, os modelos do ARM (Azure Resource Manager) ou o Terraform.
Bicep
Para implantar usando um arquivo Bicep, copie o conteúdo a seguir em um arquivo main.bicep. Para obter mais informações, confira 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 do ARM, copie o conteúdo a seguir em um arquivo azuredeploy.json. Para obter mais informações, confira 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, confira 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á com suporte pendente. A documentação é adicionada assim que estiver disponível.
Fazer upgrade/atualização do agente Java
O agente Java é atualizado/atualizado regularmente com o JDK, o que pode afetar os cenários a seguir.
Observação
A versão do JDK é atualizada/atualizada trimestralmente por ano.
- Aplicativos existentes que usam o agente Java antes da atualização/atualização não são afetados.
- Os aplicativos criados após a atualização/atualização usam a nova versão do agente Java.
- Aplicativos existentes que não usavam anteriormente o agente Java exigem reinicialização ou reimplantação para usar a nova versão do agente Java.
O agente Java é atualizado/atualizado quando o buildpack é atualizado.
Carregamento frequente da configuração do agente Java
Os Aplicativos Spring do Azure têm um mecanismo de carregamento frequente para ajustar as configurações de configuração do agente sem reiniciar aplicativos.
Observação
O mecanismo de carregamento frequente tem um atraso em minutos.
Se o agente Java já estiver habilitado, as alterações na instância do Application Insights ou valor
SamplingRate
não exigirão a reinicialização do aplicativo.Se habilitar o agente Java, você deve reiniciar os aplicativos.
Quando você desabilitar o agente Java, os aplicativos param de enviar todos os dados de monitoramento após um atraso em minutos. Você pode reiniciar os aplicativos para remover o agente do ambiente de runtime do Java.
Comparação de conceito entre o Azure Spring Apps e o Application Insights
Azure Spring Apps | Application Insights |
---|---|
App |
* Mapa do Aplicativo/Função * Métricas dinâmicas/Função * Falhas/Funções/Função da nuvem * Desempenho/Funções/Função da nuvem |
App Instance |
* Mapa do Aplicativo/Instância de função * Métricas Dinâmicas/Nome do Serviço * Falhas/Funções/Instância da nuvem * Desempenho/Funções/Instância da nuvem |
O nome App Instance
dos Aplicativos Spring do Azure é alterado ou gerado nos seguintes cenários:
- Você criar um novo aplicativo.
- Você implantar um arquivo JAR ou código-fonte em um aplicativo existente.
- Você inicia uma implantação azul/verde.
- Você reiniciar o aplicativo.
- Você interrompe a implantação de um aplicativo e o reinicia.
Quando os dados são armazenados no Application Insights, ele contém o histórico das instâncias de aplicativo do Azure Spring Apps criadas ou implantadas desde que o agente Java foi habilitado. Por exemplo, no portal Application Insights, você pode ver os dados do aplicativo criados ontem, mas, em seguida, excluídos em um intervalo de tempo específico, como as últimas 24 horas. Os cenários a seguir mostram como isso funciona:
- Você criou um aplicativo aproximadamente às 8h00 de hoje no Azure Spring Apps com o agente Java habilitado e depois implantou um arquivo JAR para este aplicativo aproximadamente às 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 um intervalo e ao voltar, aproximadamente às 11h00, você verifica alguns dados do Application Insights. Você verá:
- Três instâncias no mapa do aplicativo com intervalos de tempo nas últimas 24 horas, Falhas, Desempenho e Métricas.
- Uma instância no mapa do aplicativo com um intervalo de tempo na última hora, Falhas, Desempenho e Métricas.
- Uma instância em Métricas Dinâmicas.
- Você criou um aplicativo aproximadamente às 8h00 de hoje no Azure Spring Apps com o agente Java habilitado e depois implantou um arquivo JAR para este aplicativo aproximadamente às 8h10 de hoje. Aproximadamente às 8h30 de hoje, você tenta uma implantação azul/verde com outro arquivo JAR. No momento, você tem duas implantações para este aplicativo. Após um intervalo aproximadamente às 11h00 de hoje, você deseja verificar alguns dados do Application Insights. Você verá:
- Três instâncias no mapa do aplicativo com intervalos de tempo nas últimas 24 horas, Falhas, Desempenho e Métricas.
- Duas instâncias no mapa do aplicativo com intervalos de tempo na última hora, Falhas, Desempenho e Métricas.
- Duas instâncias em Métricas Dinâmicas.