Analise logs e métricas com configurações de diagnóstico
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.
Este artigo aplica-se a:✅ Java ✅ C#
Este artigo aplica-se a:✅ Basic/Standard ✅ 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 logs e métricas com qualquer um dos seguintes serviços:
- Use Azure Log Analytics. 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 solução de análise personalizada.
Escolha a categoria de log e a categoria de métrica que deseja monitorar.
Gorjeta
Se você quiser apenas transmitir seus logs, você pode usar o comando azur CLI az spring app logs.
Registos
Registo | Description |
---|---|
ApplicationConsole | Log de console de todos os aplicativos do cliente. |
Registos do Sistema | Os valores disponíveis LogType são ConfigServer (somente plano Básico/Padrão), ServiceRegistry (todos os planos), ApiPortal (somente plano Enterprise), ApplicationConfigurationService (somente plano Enterprise) SpringCloudGateway e SpringCloudGatewayOperator (somente plano Enterprise) |
IngressLogs | Logs de entrada de todos os aplicativos do cliente, apenas logs de acesso. |
BuildLogs | Crie logs de todos os aplicativos do cliente para cada estágio de compilação. |
Nota
Para proteger seu aplicativo contra possíveis vazamentos de credenciais, todo o conteúdo de log com credenciais ou outras informações confidenciais é mascarado com ***
. Por exemplo, qualquer conteúdo de log com os seguintes padrões é tratado como informações confidenciais e os valores correspondentes são mascarados:
dbpass
,password
,key
,secret
, ,sig
esignature
seguido de:
ou=
. Esses padrões normalmente aparecem em parâmetros de URL e despejos de carga útil. 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
torna-sehttps://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 semelhantes a tokens JWT no formato:
eyJxxxxxx.eyJxxxxxx
Se você encontrar valores mascarados em 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 de Métricas para aplicativos Azure Spring.
Para começar, habilite um desses serviços para receber os dados. Para saber mais sobre como configurar o Log Analytics, consulte Introdução ao Log Analytics no Azure Monitor.
Definir definições de diagnóstico
No portal do Azure, vá para sua instância do Azure Spring Apps.
Selecione a opção de configurações de diagnóstico e, em seguida, selecione Adicionar configuração de diagnóstico.
Introduza um nome para a definição e, em seguida, escolha para onde pretende enviar os registos. Você pode selecionar qualquer combinação das seguintes opções:
- Arquivar em uma conta de armazenamento
- Transmitir em fluxo para um hub de eventos
- Enviar para o Log Analytics
- Enviar para solução de parceiro
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 aplica-se apenas à conta de armazenamento.
Selecione Guardar.
Nota
Pode haver um intervalo de até 15 minutos entre quando os logs ou métricas são emitidos e quando eles 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á transferida em cascata para os recursos de configurações de diagnóstico. Os recursos de configurações de diagnóstico devem ser excluídos manualmente antes da operação em relação ao 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 de configurações de diagnóstico anteriores continuarão a estendê-la.
Ver os registos e métricas
Há vários métodos para exibir logs e métricas, conforme descrito nos títulos a seguir.
Usar o painel Logs
No portal do Azure, vá para sua instância do Azure Spring Apps.
Para abrir o painel Pesquisa de Logs, selecione Logs.
Na caixa de pesquisa Tabelas, use uma das seguintes consultas:
Para exibir logs, insira uma consulta como o exemplo a seguir:
AppPlatformLogsforSpring | limit 50
Para exibir métricas, insira uma consulta como o exemplo a seguir:
AzureMetrics | limit 50
Para visualizar o resultado da pesquisa, selecione Executar.
Utilizar o Log Analytics
No portal do Azure, no painel esquerdo, selecione Log Analytics.
Selecione o espaço de trabalho do Log Analytics que você escolheu quando adicionou suas configurações de diagnóstico.
Para abrir o painel Pesquisa de Logs, selecione Logs.
Na caixa de pesquisa Tabelas, use uma das seguintes consultas:
Para exibir logs, insira uma consulta como o exemplo a seguir:
AppPlatformLogsforSpring | limit 50
Para exibir métricas, insira uma consulta como o exemplo a seguir:
AzureMetrics | limit 50
Para visualizar o resultado da pesquisa, selecione Executar.
Você pode pesquisar os logs do aplicativo ou 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
Nota
==
é sensível a maiúsculas e minúsculas, mas=~
não é.
Para saber mais sobre a linguagem de consulta usada no Log Analytics, consulte Consultas de log do Azure Monitor. Para consultar todos os seus logs do Log Analytics a partir de um cliente centralizado, confira o Azure Data Explorer.
Utilizar a sua conta de armazenamento
- No portal do Azure, localize Contas de armazenamento no painel de navegação esquerdo ou na caixa de pesquisa.
- Selecione a conta de armazenamento escolhida quando adicionou as configurações de diagnóstico.
- Para abrir o painel Contêiner de Blob, selecione Blobs.
- Para revisar os logs do aplicativo, procure um contêiner chamado insights-logs-applicationconsole.
- Para revisar as métricas do 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, consulte Armazenar e exibir dados de diagnóstico no Armazenamento do Azure.
Use seu hub de eventos
No portal do Azure, localize Hubs de Eventos no painel de navegação esquerdo ou na caixa de pesquisa.
Procure e selecione o hub de eventos que você escolheu quando adicionou suas configurações de diagnóstico.
Para abrir o painel Lista de Hub de Eventos, selecione Hubs de Eventos.
Para revisar os logs do aplicativo, procure um hub de eventos chamado insights-logs-applicationconsole.
Para revisar as métricas do 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, consulte Streaming de dados de diagnóstico do Azure no caminho ativo usando Hubs de Eventos.
Analise os logs
O Azure Log Analytics está sendo executado com um mecanismo Kusto para que você possa consultar seus logs para análise. Para obter uma introdução rápida à consulta de logs usando o Kusto, revise o tutorial do Log Analytics.
Os logs de aplicativos fornecem informações críticas e logs detalhados sobre a integridade, o desempenho e muito mais do seu aplicativo. Nas próximas seções estão algumas consultas simples para ajudá-lo a entender os estados atuais e passados do seu aplicativo.
Mostrar logs de aplicativos do Azure Spring Apps
Para revisar uma lista de logs de aplicativos 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 revisar entradas de log não ordenadas que mencionam um erro ou exceção, execute a seguinte consulta:
AppPlatformLogsforSpring
| project TimeGenerated , ServiceName , AppName , InstanceName , Log
| where Log contains "error" or Log contains "exception"
Use esta consulta para localizar erros ou modifique os termos de consulta para localizar códigos de erro ou exceções específicos.
Mostrar o número de erros e exceções relatados pelo seu aplicativo na última hora
Para criar um gráfico de pizza que exiba 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 entradas de log de entrada contendo 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 esta consulta para localizar a resposta Status
, RequestTime
e outras propriedades dos logs de entrada desse host específico.
Mostrar entradas de log de entrada para um requestId específico
Para revisar entradas de log para um valor <específico requestId
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 compilação para um aplicativo específico
Para revisar as entradas de log de um aplicativo específico durante o processo de compilação, execute a seguinte consulta:
AppPlatformBuildLogs
| where TimeGenerated > ago(1h) and PodName contains "<app-name>"
| sort by TimeGenerated
Mostrar entradas de log de compilação para um aplicativo específico em um estágio de compilação específico
Para revisar as entradas de log de um aplicativo específico em um estágio de compilação específico, execute a consulta a seguir. Substitua o espaço reservado pelo nome do <app-name>
aplicativo. Substitua o espaço reservado <build-stage>
por um dos seguintes valores, que representam os estágios do processo de compilação: 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 revisar 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 Spring Cloud Gateway Operator, controla o ciclo de vida do Spring Cloud Gateway e rotas. Se você encontrar algum problema com a rota não entrando em vigor, verifique os logs para este componente. Para revisar as entradas de log do VMware Spring Cloud Gateway Operator no plano Enterprise, execute a seguinte consulta:
AppPlatformSystemLogs
| where LogType == "SpringCloudGatewayOperator"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Mostrar o Serviço de Configuração de Aplicativo para logs Tanzu no plano Enterprise
Para revisar entradas de log para logs do Application Configuration Service for 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 Tanzu Service Registry no plano Enterprise
Para revisar entradas de log para logs do Tanzu Service Registry no plano Enterprise, execute a seguinte consulta:
AppPlatformSystemLogs
| where LogType == "ServiceRegistry"
| project TimeGenerated , LogType, Level , ServiceName , Thread , Stack , Log , _ResourceId
| limit 100
Mostrar portal de API para logs do VMware Tanzu no plano Enterprise
Para revisar as entradas de log do portal de API para 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 suporte extensivo para consultar logs de aplicativos usando o Log Analytics. Para saber mais sobre esse serviço, consulte Introdução às consultas de log no Azure Monitor. Para obter mais informações sobre como criar consultas para analisar seus logs de aplicativo, consulte Visão geral das consultas de log no Azure Monitor.
Pontos de entrada convenientes no portal do Azure
Use as etapas a seguir para navegar até o painel do Log Analytics com consultas predefinidas:
Vá para a página Visão geral da sua instância de serviço do Azure Spring Apps e selecione Aplicativos no painel de navegação.
Encontre seu aplicativo de destino e selecione o menu de contexto.
No menu de contexto pop-up, selecione Exibir logs.
Esta ação navega até o painel do Log Analytics com consultas predefinidas.
Existem outros pontos de entrada para visualizar logs. Você também pode encontrar o botão Exibir logs para componentes gerenciados, como Serviço de Criação e Registro de Serviço.
Perguntas mais frequentes (FAQ)
Como faço para converter rastreamentos de pilha Java de várias linhas em uma única linha?
Há uma solução alternativa para converter seus rastreamentos de pilha de várias linhas em uma única linha. Você pode modificar a saída do log Java para reformatar mensagens de rastreamento de pilha, substituindo caracteres de nova linha por um token. Se você usar a biblioteca Java Logback, poderá reformatar mensagens de rastreamento de pilha adicionando %replace(%ex){'[\r\n]+', '\\n'}%nopex
o seguinte:
<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>
Em seguida, você pode substituir o token por caracteres de nova linha no Log Analytics, conforme mostrado no exemplo a seguir:
AppPlatformLogsforSpring
| extend Log = array_strcat(split(Log, '\\n'), '\n')
Talvez seja possível usar a mesma estratégia para outras bibliotecas de log Java.