Guia de início rápido: Monitoramento de aplicativos do Azure Spring Apps com logs, métricas e rastreamento

Observação

Azure Spring Apps é o novo nome do serviço Azure Spring Cloud. Embora o serviço tenha um novo nome, você verá o nome antigo em alguns locais por um tempo enquanto trabalhamos para atualizar ativos como capturas de tela, vídeos e diagramas.

Este artigo se aplica a: ✔️ Básico/Standard ❌ Enterprise

Com a funcionalidade de monitoramento interno no Azure Spring Apps, você pode depurar e monitorar problemas complexos. O Azure Spring Apps integra o rastreamento distribuído do Steeltoe ao Application Insights do Azure. Essa integração fornece uma funcionalidade avançada de logs, métricas e rastreamento distribuído no portal do Azure.

Os procedimentos a seguir explicam como usar o streaming de log, o Log Analytics, as métricas e o rastreamento distribuído com o aplicativo de exemplo que você implantou nos guias de início rápido anteriores.

Pré-requisitos

Logs

Há duas maneiras de ver logs no Azure Spring Apps: o Streaming de Log de logs em tempo real por instância de aplicativo ou o Log Analytics para logs agregados com capacidade de consulta avançada.

Streaming de log

Você pode usar o streaming de log na CLI do Azure com o comando a seguir.

az spring app logs --name solar-system-weather --follow

Será mostrado um resultado semelhante ao seguinte exemplo:

=> ConnectionId:0HM2HOMHT82UK => RequestPath:/weatherforecast RequestId:0HM2HOMHT82UK:00000003, SpanId:|e8c1682e-46518cc0202c5fd9., TraceId:e8c1682e-46518cc0202c5fd9, ParentId: => Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.Controllers.WeatherForecastController.Get (Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather)
Executing action method Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.Controllers.WeatherForecastController.Get (Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather) - Validation state: Valid
←[40m←[32minfo←[39m←[22m←[49m: Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.Controllers.WeatherForecastController[0]

=> ConnectionId:0HM2HOMHT82UK => RequestPath:/weatherforecast RequestId:0HM2HOMHT82UK:00000003, SpanId:|e8c1682e-46518cc0202c5fd9., TraceId:e8c1682e-46518cc0202c5fd9, ParentId: => Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.Controllers.WeatherForecastController.Get (Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather)
Retrieved weather data from 4 planets
←[40m←[32minfo←[39m←[22m←[49m: Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker[2]

=> ConnectionId:0HM2HOMHT82UK => RequestPath:/weatherforecast RequestId:0HM2HOMHT82UK:00000003, SpanId:|e8c1682e-46518cc0202c5fd9., TraceId:e8c1682e-46518cc0202c5fd9, ParentId: => Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.Controllers.WeatherForecastController.Get (Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather)
Executing ObjectResult, writing value of type 'System.Collections.Generic.KeyValuePair`2[[System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]][]'.
←[40m←[32minfo←[39m←[22m←[49m: Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker[2]

Dica

Use az spring app logs -h para explorar mais parâmetros e funcionalidade de fluxo de log.

Log Analytics

  1. No portal do Azure, acesse a página serviço | Visão geral e selecione Logs na seção Monitoramento. Selecione Executar em uma das consultas de exemplo do Azure Spring Apps.

    Captura de tela do portal do Azure que mostra o painel Logs com a página Consultas aberta e Executar realçada.

  2. Edite a consulta para remover as cláusulas Where que limitam a exibição a logs de aviso e de erro.

  3. Selecione Executar. Os logs são mostrados a você. Para obter mais informações, consulte Introdução às consultas de log no Azure Monitor.

    Captura de tela do portal do Azure que mostra o resultado da consulta do Log Analytics.

  4. Para saber mais sobre a linguagem de consulta usada no Log Analytics, confira Consultas de log do Azure Monitor. Para consultar todos os logs do Log Analytics de um cliente centralizado, confira Azure Data Explorer.

Métricas

  1. No portal do Azure, acesse a página serviço | Visão geral e selecione Métricas na seção Monitoramento. Adicione sua primeira métrica selecionando uma das métricas do .NET em Desempenho (.NET) ou Solicitação (.NET) na lista suspensa Métrica, e Média para Agregação para ver a linha do tempo para essa métrica.

    Captura de tela do portal do Azure que mostra a página Métricas com filtros disponíveis.

  2. Selecione Adicionar filtro na barra de ferramentas, selecione App=solar-system-weather para ver o uso da CPU somente para o aplicativo solar-system-weather.

    Captura de tela do portal do Azure que mostra a página Métricas com as opções Propriedade, Operador e Valores de filtro realçadas.

  3. Ignore o filtro criado na etapa anterior, selecione Aplicar Divisão e selecione Aplicativopara Valores para ver o uso da CPU por aplicativos diferentes.

    Captura de tela do portal do Azure que mostra a página Métricas com as opções Valores, Limite e Classificar de divisão realçadas.

Rastreamento distribuído

  1. No portal do Azure, acesse a página serviço | Visão geral e selecione Rastreamento distribuído na seção Monitoramento. Em seguida, selecione a guia Exibir o mapa do aplicativo à direita.

    Captura de tela do portal do Azure que mostra a página Rastreamento distribuído.

  2. Agora você pode ver o status de chamadas entre aplicativos.

    Captura de tela do portal do Azure que mostra a página Mapa do aplicativo.

  3. Selecione o link entre solar-system-weather e planet-weather-provider para ver mais detalhes, como chamadas mais lentas por métodos HTTP.

    Captura de tela do portal do Azure que mostra os detalhes do Mapa do aplicativo.

  4. Por fim, selecione Investigar Desempenho para explorar uma análise de desempenho interna mais avançada.

    Captura de tela do portal do Azure que mostra a página Desempenho.

Com a funcionalidade de monitoramento interno no Azure Spring Apps, você pode depurar e monitorar problemas complexos. O Azure Spring Apps integra o Spring Cloud Sleuth ao Application Insights do Azure. Essa integração fornece uma funcionalidade avançada de logs, métricas e rastreamento distribuído no portal do Azure. Os procedimentos a seguir explicam como usar o streaming de log, o Log Analytics, as métricas e o rastreamento distribuído com os aplicativos PetClinic implantados.

Pré-requisitos

Logs

Há duas maneiras de ver logs no Azure Spring Apps: o Streaming de Log de logs em tempo real por instância de aplicativo ou o Log Analytics para logs agregados com capacidade de consulta avançada.

Streaming de log

Você pode usar o streaming de log na CLI do Azure com o comando a seguir.

az spring app logs \
    --resource-group <resource-group-name> \
    --service <service-instance-name> \
    --name api-gateway \
    --follow

Você verá logs como este:

Captura de tela da saída de streaming de log da CLI do Azure.

Dica

Use az spring app logs -h para explorar mais parâmetros e funcionalidades de fluxo de log.

Para saber mais sobre a linguagem de consulta usada no Log Analytics, confira Consultas de log do Azure Monitor. Para consultar todos os logs do Log Analytics de um cliente centralizado, confira Azure Data Explorer.

Log Analytics

  1. Acesse a página serviço | Visão geral e selecione Logs na seção Monitoramento. Selecione Executar em uma das consultas de exemplo do Azure Spring Apps.

    Captura de tela do portal do Azure que mostra a página Consultas com a Executar realçada.

  2. Em seguida, você verá os logs filtrados. Para obter mais informações, consulte Introdução às consultas de log no Azure Monitor.

    Captura de tela do portal do Azure que mostra o resultado da consulta de logs filtrados.

Métricas

Navegue até a página Insights do aplicativo e, em seguida, navegue até a página Métricas. Você pode conferir as métricas contribuídas por aplicativos Spring Boot, módulos Spring e dependências.

O gráfico abaixo mostra gateway_requests (Gateway do Spring Cloud), hikaricp_connections (Conexões JDBC) e http_client_requests.

Captura de tela do portal do Azure que mostra a página Métricas do Application Insights com um grafo dos valores selecionados.

O Spring Boot registra várias métricas principais, incluindo JVM, CPU, Tomcat e Logback. A configuração automática do Spring Boot permite a instrumentação de solicitações tratadas pelo MVC do Spring. Todos os três controladores REST (OwnerResource, PetResource e VisitResource) são instrumentados pela anotação do Micrômetro @Timed no nível da classe.

O aplicativo customers-service tem as seguintes métricas personalizadas habilitadas:

  • @Timed: petclinic.owner
  • @Timed: petclinic.pet

O aplicativo visits-service tem as seguintes métricas personalizadas habilitadas:

  • @Timed: petclinic.visit

Você pode ver essas métricas personalizadas na página Métricas:

Captura de tela do portal do Azure que mostra a página Métricas do Application Insights com métricas personalizadas.

Use o recurso Teste de Disponibilidade no Application Insights e monitorar a disponibilidade dos aplicativos:

Captura de tela do portal do Azure que mostra a página Disponibilidade do Application Insights com a seção Teste de Disponibilidade realçada.

Navegue até a página Métricas Dinâmicas para ver métricas dinâmicas com latências baixas (menos de um segundo):

Captura de tela do portal do Azure que mostra os grafos de latência baixa na página Métricas Dinâmicas do Application Insights.

Rastreamento

Abra o Application Insights criado pelo Azure Spring Apps e comece a monitorar aplicativos Spring.

Navegue até a página Mapa do Aplicativo:

Captura de tela do portal do Azure que mostra a página Mapa do Aplicativo do Application Insights com componentes de mapa.

Navegue até a página Desempenho:

Captura de tela do portal do Azure que mostra a página Desempenho do Application Insights com detalhes da Operação.

Navegue até a guia Dependências, onde é possível ver o número de desempenho para dependências, principalmente chamadas SQL:

Captura de tela do portal do Azure que mostra a página Desempenho do Application Insights com a tabela Dependências realçada.

Selecione uma chamada SQL para ver a transação de ponta a ponta no contexto:

Captura de tela do portal do Azure que mostra a página Detalhes da transação de ponta a ponta.

Navegue até a página Falhas e a guia Exceções, na qual você pode ver uma coleção de exceções:

Captura de tela do portal do Azure que mostra a página Falhas do Application Insights.

Selecione uma exceção para ver a transação de ponta a ponta e o rastreamento de pilha no contexto:

Captura de tela do portal do Azure que mostra a página Detalhes da transação de ponta a ponta com os detalhes da exceção e a pilha de chamadas.

Limpar os recursos

Se planejar continuar trabalhando com os tutoriais e inícios rápidos subsequentes, deixe esses recursos onde estão. Quando não for mais necessário, exclua o grupo de recursos, que excluirá os recursos no grupo de recursos. Para excluir o grupo de recursos usando a CLI do Azure, use os seguintes comandos:

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

Em um início rápido anterior, você também definiu o nome do grupo de recursos padrão. Se você não pretende avançar para o próximo início rápido, desmarque esse padrão executando o seguinte comando da CLI:

az config set defaults.group=

Próximas etapas

Para explorar mais recursos de monitoramento do Azure Spring Apps, confira: