Analisar logs e métricas com configurações de diagnóstico

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 aposentadoria 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.

Este artigo aplica-se a: ✔️ Java ✔️ C#

Este artigo se aplica ao: ✔️ nível Básico/Standard ✔️ nível Enterprise

Este artigo mostra como analisar dados de diagnóstico no Azure Spring Apps.

Usando a funcionalidade de diagnóstico do Azure Spring Apps, você pode analisar os logs e as métricas com qualquer um dos seguintes serviços:

  • Usar o Log Analytics do Azure. Há um atraso ao exportar logs para o Log Analytics.
  • Salve os logs em uma conta de armazenamento para auditoria ou inspeção manual. Você pode especificar o tempo de retenção (em dias).
  • Transmita logs para seu hub de eventos para ingestão por um serviço de terceiros ou uma solução de análise personalizada.

Escolha a categoria de logs e a categoria de métricas que você deseja monitorar.

Dica

Se você quiser apenas transmitir seus logs, poderá usar o comando az spring app logs da CLI do Azure.

Logs

Log Descrição
ApplicationConsole Log do console de todos os aplicativos do cliente.
SystemLogs Os valores LogType disponíveis são ConfigServer(apenas Básico/Standard), ServiceRegistry(todos os planos), ApiPortal(apenas plano Enterprise), ApplicationConfigurationService(apenas plano Enterprise), SpringCloudGateway (apenas plano Enterprise) e SpringCloudGatewayOperator (apenas plano Enterprise)
IngressLogs Logs de entrada de todos os aplicativos do cliente, somente logs de acesso.
BuildLogs Crie logs de todos os aplicativos do cliente para cada estágio de build.

Observação

Para proteger seu aplicativo contra possíveis vazamentos de credenciais, todos os conteúdos de log com credenciais ou outras informações confidenciais são mascarados com ***. Por exemplo, qualquer conteúdo de log com os seguintes padrões é tratado como informação confidencial, e os valores correspondentes são mascarados:

  • dbpass, password, key, secret, sig e signature seguidos por : ou =. Esses padrões normalmente aparecem em parâmetros de URL e despejos de carga. Por exemplo, https://somestorage.blob.core.windows.net?sv=2021-08-06&st=2024-04-30T10%3A01%3A19Z&se=2024-04-30T11%3A01%3A19Z&sr=b&sp=r&sig=xxxxxxxxxxxxxx passa a ser https://somestorage.blob.core.windows.net?sv=2021-08-06&st=2024-04-30T10%3A01%3A19Z&se=2024-04-30T11%3A01%3A19Z&sr=b&sp=r&sig=***
  • Cadeias de caracteres codificadas em token de JWT no formato: eyJxxxxxx.eyJxxxxxx

Se você encontrar valores mascarados nos seus logs, atualize o código do aplicativo para eliminar o vazamento de credenciais.

Métricas

Para obter uma lista completa de métricas, consulte a seção Opções de métricas do usuário das Métricas para o Azure Spring Apps.

Para começar, habilite um desses serviços para receber os dados. Para saber mais sobre como configurar o Log Analytics, confira Introdução ao Log Analytics no Azure Monitor.

Configurar definições de diagnóstico

  1. No portal do Azure, vá para a sua instância do Azure Spring Apps.

  2. Selecione a opção Configurações de diagnóstico e, em seguida, selecione Adicionar configuração de diagnóstico.

  3. Insira um nome para a configuração e escolha para onde deseja enviar os logs. É possível selecionar qualquer combinação das seguintes opções:

    • Arquivar em uma conta de armazenamento
    • Transmitir por streaming para um hub de eventos
    • Enviar para o Log Analytics
    • Enviar para uma solução de parceiro
  4. Escolha qual categoria de log e categoria de métrica você deseja monitorar e especifique o tempo de retenção (em dias). O tempo de retenção se aplica somente à conta de armazenamento.

  5. Selecione Salvar.

Observação

Pode haver um intervalo de até 15 minutos entre o momento em que os logs ou as métricas são emitidos e quando aparecem na sua conta de armazenamento, no hub de eventos ou no Log Analytics. Se a instância do Azure Spring Apps for excluída ou movida, a operação não será colocada em cascata para os recursos de configurações de diagnóstico. Os recursos de configuração de diagnóstico precisam ser excluídos manualmente antes da operação no pai, a instância do Azure Spring Apps. Caso contrário, se uma nova instância do Azure Spring Apps for provisionada com a mesma ID de recurso que a excluída, ou se a instância do Azure Spring Apps for movida de volta, os recursos das configurações de diagnóstico anteriores continuarão a estendê-la.

Analisar logs e métricas

Há vários métodos para exibir os logs e as métricas, conforme descrito nos cabeçalhos a seguir.

Usar o painel Logs

  1. No portal do Azure, vá para a sua instância do Azure Spring Apps.

  2. Para abrir o painel Pesquisa de logs, selecione Logs.

  3. Na caixa de pesquisa Tabelas, use uma das seguintes consultas:

    • Para exibir logs, insira uma consulta como a do exemplo a seguir:

      AppPlatformLogsforSpring
      | limit 50
      
    • Para exibir as métricas, insira uma consulta como a do exemplo a seguir:

      AzureMetrics
      | limit 50
      
  4. Para exibir o resultado da pesquisa, selecione Executar.

Usar o Log Analytics

  1. No portal do Azure, no painel esquerdo, selecione Log Analytics.

  2. Selecione o espaço de trabalho do Log Analytics que você escolheu ao adicionar as configurações de diagnóstico.

  3. Para abrir o painel Pesquisa de logs, selecione Logs.

  4. Na caixa de pesquisa Tabelas, use uma das seguintes consultas:

    • Para exibir logs, insira uma consulta como a do exemplo a seguir:

      AppPlatformLogsforSpring
      | limit 50
      
    • Para exibir as métricas, insira uma consulta como a do exemplo a seguir:

    AzureMetrics
    | limit 50
    
  5. Para exibir o resultado da pesquisa, selecione Executar.

  6. Você pode pesquisar os logs do aplicativo ou da instância específica definindo uma condição de filtro, conforme mostrado no exemplo a seguir:

    AppPlatformLogsforSpring
    | where ServiceName == "YourServiceName" and AppName == "YourAppName" and InstanceName == "YourInstanceName"
    | limit 50
    

    Observação

    == diferencia maiúsculas de minúsculas, mas =~ não.

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.

Use sua conta de armazenamento

  1. No portal do Azure, localize Contas de armazenamento no painel de navegação esquerdo ou na caixa de pesquisa.
  2. Selecione a conta de armazenamento que você escolheu ao adicionar as configurações de diagnóstico.
  3. Para abrir o painel Contêiner de blob, selecione Blobs.
  4. Para examinar os logs de aplicativo, procure um contêiner chamado insights-logs-applicationconsole.
  5. Para examinar as métricas de aplicativo, procure um contêiner chamado insights-metrics-pt1m.

Para saber mais sobre como enviar informações de diagnóstico para uma conta de armazenamento, confira Armazenar e exibir dados de diagnóstico no Armazenamento do Azure.

Use seu hub de eventos

  1. No portal do Azure, localize Hubs de Eventos no painel de navegação esquerdo ou na caixa de pesquisa.

  2. Pesquise e selecione o hub de eventos que você escolheu quando adicionou as configurações de diagnóstico.

  3. Para abrir o painel Lista do Hub de Eventos, selecione Hub de Eventos.

  4. Para examinar os logs de aplicativo, procure um hub de eventos chamado insights-logs-applicationconsole.

  5. Para examinar as métricas de aplicativo, procure um hub de eventos chamado insights-metrics-pt1m.

Para saber mais sobre como enviar informações de diagnóstico para um hub de eventos, confira Transmitindo de dados de Diagnóstico do Azure no caminho crítico usando os Hubs de Eventos.

Analisar os logs

O Log Analytics do Azure está em execução com um mecanismo Kusto para que você possa consultar seus logs para análise. Para obter uma breve introdução à consulta de logs usando o Kusto, confira o Tutorial do Log Analytics.

Os logs de aplicativo fornecem informações críticas e logs detalhados sobre a integridade, o desempenho e muito mais do aplicativo. Nas próximas seções estão algumas consultas simples para ajudá-lo a entender os estados atuais e antigos do seu aplicativo.

Mostrar logs do aplicativo do Azure Spring Apps

Para examinar uma lista de logs do aplicativo do Azure Spring Apps, classificados por tempo com os logs mais recentes mostrados primeiro, execute a seguinte consulta:

AppPlatformLogsforSpring
| project TimeGenerated , ServiceName , AppName , InstanceName , Log
| sort by TimeGenerated desc

Mostrar entradas de logs contendo erros ou exceções

Para examinar as entradas de log não classificadas que mencionam um erro ou uma exceção, execute a seguinte consulta:

AppPlatformLogsforSpring
| project TimeGenerated , ServiceName , AppName , InstanceName , Log
| where Log contains "error" or Log contains "exception"

Use essa consulta para localizar erros ou modificar os termos da consulta para localizar códigos de erro ou exceções específicas.

Mostrar o número de erros e exceções relatados pelo seu aplicativo na última hora

Para criar um gráfico de pizza que exibe o número de erros e exceções registrados pelo seu aplicativo na última hora, execute a seguinte consulta:

AppPlatformLogsforSpring
| where TimeGenerated > ago(1h)
| where Log contains "error" or Log contains "exception"
| summarize count_per_app = count() by AppName
| sort by count_per_app desc
| render piechart

Mostrar logs de entrada que contêm um host específico

Para revisar as entradas de log geradas por um host específico, execute a seguinte consulta:

AppPlatformIngressLogs
| where TimeGenerated > ago(1h) and Host == "ingress-asc.test.azuremicroservices.io"
| project TimeGenerated, RemoteIP, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated

Use essa consulta para encontrar a resposta Status, RequestTime e outras propriedades dos logs de entrada desse host específico.

Mostrar logs de entrada de um requestId específico

Para analisar as entradas de log de um requestIdvalor < específico request_ID>, execute a seguinte consulta:

AppPlatformIngressLogs
| where TimeGenerated > ago(1h) and ReqId == "<request_ID>"
| project TimeGenerated, RemoteIP, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated

Mostrar entradas de log de build para um aplicativo específico

Para revisar as entradas de log de um aplicativo específico durante o processo de build, execute a seguinte consulta:

AppPlatformBuildLogs
| where TimeGenerated > ago(1h) and PodName contains "<app-name>"
| sort by TimeGenerated

Mostrar entradas de log de build para um aplicativo específico em um estágio de build específico

Para revisar as entradas de log de um aplicativo específico em um estágio de build específico, execute a consulta a seguir. Substitua o espaço reservado <app-name> pelo nome do aplicativo. Substitua o espaço reservado <build-stage> por um dos seguintes valores, que representam os estágios do processo prepare de build: prepare, detect, restore, analyze, build, export, ou completion.

AppPlatformBuildLogs
| where TimeGenerated > ago(1h) and PodName contains "<app-name>" and ContainerName == "<build-stage>"
| sort by TimeGenerated

Mostrar logs do VMware Spring Cloud Gateway no plano Enterprise

Para analisar as entradas de log dos logs do VMware Spring Cloud Gateway no plano Enterprise, execute a seguinte consulta:

AppPlatformSystemLogs 
| where LogType == "SpringCloudGateway"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

Outro componente, chamado Operador do Spring Cloud Gateway, controla o ciclo de vida do Spring Cloud Gateway e rotas. Se você se deparar com o problema de a rota não entrar em vigor, verifique os logs desse componente. Para analisar as entradas de log do Operador do VMware Spring Cloud Gateway no plano Enterprise, execute a seguinte consulta:

AppPlatformSystemLogs 
| where LogType == "SpringCloudGatewayOperator"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

Mostrar logs do Serviço de configuração de aplicativos para Tanzu no plano Enterprise

Para analisar as entradas de log dos logs do Serviço de configuração de aplicativos para Tanzu no plano Enterprise, execute a seguinte consulta:

AppPlatformSystemLogs 
| where LogType == "ApplicationConfigurationService"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

Mostrar logs do Registro de serviço do Tanzu no plano Enterprise

Para analisar as entradas de log dos logs do Registro de serviço do Tanzu no plano Enterprise, execute a seguinte consulta:

AppPlatformSystemLogs 
| where LogType == "ServiceRegistry"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

Mostrar o portal de API para logs do VMware Tanzu no plano Enterprise

Para analisar as entradas de log do portal de API dos logs do VMware Tanzu no plano Enterprise, execute a seguinte consulta:

AppPlatformSystemLogs 
| where LogType == "ApiPortal"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId 
| limit 100

Saiba mais sobre como consultar logs de aplicativos

O Azure Monitor fornece amplo suporte para consultar logs de aplicativos usando o Log Analytics. Para saber mais sobre este serviço, confira Introdução às consultas de log no Azure Monitor. Para obter mais informações sobre como criar consultas para analisar os logs do aplicativo, confira Visão geral das consultas de log no Azure Monitor.

Pontos de entrada convenientes no portal do Azure

Use as seguintes etapas para navegar até o painel do Log Analytics com consultas predefinidas:

  1. Vá para a página Visão Geral da sua instância do serviço de Aplicativos Spring do Azure e selecione Aplicativos no painel de navegação.

  2. Encontre seu aplicativo de destino e, em seguida, selecione o menu de contexto.

  3. No menu de contexto pop-up, selecione Exibir logs.

    Captura de tela do portal do Azure que mostra a página Aplicativos com o item de menu de contexto Exibir logs destacado.

    Essa ação navegar você até o painel do Log Analytics com consultas predefinidas.

Há outros pontos de entrada para exibir logs. Você também pode encontrar o botão Exibir logs para componentes gerenciados, como o Serviço de Build e o Registro de Serviço.

Perguntas frequentes

Como converter rastreamentos de pilha Java de várias linhas em uma única linha?

Há uma solução alternativa para converter os rastreamentos de pilha de várias linhas em uma única linha. Você pode modificar a saída de log do Java para reformatar mensagens de rastreamento de pilha, substituindo caracteres de nova linha com um token. Se você usar a biblioteca Java Logback, poderá reformatar as mensagens de rastreamento de pilha adicionando %replace(%ex){'[\r\n]+', '\\n'}%nopex da seguinte maneira:

<configuration>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>
                level: %level, message: "%logger{36}: %msg", exceptions: "%replace(%ex){'[\r\n]+', '\\n'}%nopex"%n
            </pattern>
        </encoder>
    </appender>
    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
    </root>
</configuration>

Depois, você pode substituir o token por caracteres de nova linha no Log Analytics como mostrado no exemplo abaixo:

AppPlatformLogsforSpring
| extend Log = array_strcat(split(Log, '\\n'), '\n')

Talvez você possa usar a mesma estratégia para outras bibliotecas de log do Java.

Próximas etapas