Como monitorar toda a solução
Nesta unidade, vamos examinar o monitoramento de toda a solução.
Introdução
Habilitar o monitoramento nos ambientes de computação complexos de hoje requer a coleta de dados operacionais de cada camada e componente de um sistema distribuído. Você precisa de insights profundos sobre esse dados e combiná-los com diferentes perspectivas para dar suporte à infinidade de stakeholders na sua organização.
O Azure Monitor coleta dados de uma variedade de fontes, que podem pode ser usados para análise, visualização e alertas. Ele fornece insights aprofundados sobre todos os seus recursos monitorados e, até mesmo, com os dados de outros serviços que armazenam os respectivos dados no Azure Monitor.
Log Analytics
Os logs são eventos que ocorreram no sistema. Os logs podem conter diferentes tipos de dados e podem ser um texto estruturado ou com forma livre com um carimbo de data/hora. Os logs podem ser criados esporadicamente como eventos nas entradas de log geradas pelo ambiente. Um sistema sob carga pesada normalmente gera um volume maior de logs.
Os logs no Azure Monitor são valiosos para identificar as causas raiz de problemas. Os dados coletados dos Logs do Azure Monitor são armazenados em um ou mais workspaces do Log Analytics. Os dados são recuperados de um workspace do Log Analytics usando uma consulta de log, que é uma solicitação somente leitura para processar dados e retornar resultados. As consultas de log são escritas na KQL (Linguagem de Consulta Kusto), que é a mesma linguagem de consulta que o Azure Data Explorer usa.
Observação
Seu aplicativo de exemplo dos Aplicativos Spring do Azure já foi configurado com um workspace do Log Analytics. Para obter mais informações sobre a sintaxe KQL, confira a unidade Resumo no final deste treinamento.
Usar o Log Analytics
Na verdade, há três maneiras de acessar os logs do aplicativo: Armazenamento do Azure, Hub de Eventos do Azure e Log Analytics. Vamos nos concentrar aqui no Log Analytics, pois ele é o mais comum e é integrado ao monitoramento de métricas dos Aplicativos Spring do Azure.
Importante
O tempo de ingestão de dados de log no Azure Monitor pode ser de até 15 minutos. Se os dados não forem encontrados no Log Analytics, poderá levar mais tempo para ingerir dados de log dos Aplicativos Spring do Azure.
Abra o portal do Azure.
Selecione Aplicativos Spring do Azure na lista de serviços do Azure.
Selecione sua instância dos Aplicativos Spring do Azure.
A seguir, na seção Monitoramento, selecione Logs.
Na caixa de pesquisa Consulta:
Para exibir os logs, execute uma consulta como:
AppPlatformLogsforSpring | limit 50
Para exibir as métricas, insira uma consulta como:
AzureMetrics | limit 50
Você pode pesquisar os logs do aplicativo ou da instância específica definindo uma condição de filtro:
AppPlatformLogsforSpring | where ServiceName == "YourServiceName" and AppName == "YourAppName" and InstanceName == "YourInstanceName" | limit 50
Analisar os logs do aplicativo
Os logs de aplicativo fornecem informações críticas e logs detalhados sobre a integridade, o desempenho e muito mais do aplicativo. Na próxima seção, fornecemos consultas para ajudar você a entender os estados atuais e antigos do seu aplicativo.
Mostrar logs do aplicativo do Azure Spring Apps
Abra o portal do Azure.
Selecione Aplicativos Spring do Azure na lista de serviços do Azure.
Selecione sua instância dos Aplicativos Spring do Azure.
A seguir, na seção Monitoramento, selecione Logs.
Na caixa de pesquisa Consulta:
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
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"
Para criar um gráfico de pizza que exibe o número de erros e exceções registrados pelo seu aplicativo, 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
Monitoramento de bancos de dados
Monitorar os dados dos seus servidores ajuda a solucionar problemas e otimizar sua carga de trabalho. O Banco de Dados do Azure para MySQL oferece várias métricas que fornecem insights sobre o comportamento do seu servidor.
No Banco de Dados do Azure para MySQL, o log de consultas lentas está disponível para os usuários. No entanto, não há suporte para acesso ao log de transação. Você pode usar o log de consultas lentas para identificar gargalos de desempenho para solução de problemas.
Em nosso aplicativo de exemplo, os logs de consulta lenta são configurados para serem canalizados para o Azure Monitor Logs por meio de Logs de Diagnóstico e você pode fazer uma análise mais detalhada de suas consultas lentas. Abaixo estão consultas de exemplo para ajudar você a começar:
Importante
O tempo de ingestão de dados de Log do MySQL no Azure Monitor pode ser de até 30 minutos. Se os dados não são encontrados no Log Analytics, pode levar mais tempo para ingerir dados de log do MySQL.
Entre no portal do Azure.
Selecione o servidor do Banco de Dados do Azure para MySQL que você usa para os Aplicativos Spring do Azure.
A seguir, na seção Monitoramento, selecione Logs.
Na caixa de pesquisa Consulta:
Para recuperar todas as consultas com mais de um segundo, execute a seguinte consulta:
AzureDiagnostics | where Category == 'MySqlSlowLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s
Para listar as cinco consultas mais longas, execute a seguinte consulta:
AzureDiagnostics | where Category == 'MySqlSlowLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s | order by query_time_d desc | take 5
Para resumir consultas lentas pelo tempo de consulta mínimo, máximo, médio e de desvio padrão, execute a seguinte consulta:
AzureDiagnostics | where Category == 'MySqlSlowLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s | summarize count(), min(query_time_d), max(query_time_d), avg(query_time_d), stdev(query_time_d), percentile(query_time_d, 95) by LogicalServerName_s
Para gerar um grafo da distribuição de consulta lenta em um servidor específico, execute a seguinte consulta:
AzureDiagnostics | where Category == 'MySqlSlowLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s | summarize count() by LogicalServerName_s, bin(TimeGenerated, 5m) | render timechart
Você também pode usar o log de auditoria para acompanhar a atividade no nível do banco de dados. Isso é usado frequentemente para fins de conformidade. Os logs de auditoria são integrados aos logs de diagnóstico do Azure Monitor. Em seu exemplo, habilitamos os logs de auditoria no servidor MySQL para que você possa fazer uma análise mais detalhada dos eventos auditados.
Veja abaixo uma consulta de exemplo que recupera o log geral do MySQL:
AzureDiagnostics | where Category == 'MySqlAuditLogs' and event_class_s == "general_log" | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | order by TimeGenerated desc
Monitoramento da interface do usuário
Se adicionar o Application Insights ao script de página, você obterá intervalos de carregamentos de página e chamadas AJAX, contagens e detalhes de exceções de navegador e falhas de AJAX, além de contagens de usuários e sessões. Todas essas métricas podem ser segmentadas por página, sistema operacional cliente e versão do navegador, localização geográfica e outras dimensões. Você pode definir alertas sobre contagens de falha ou carregamento lento de páginas e, inserindo chamadas de rastreamento em seu código JavaScript, você pode acompanhar como os diferentes recursos do aplicativo de página da Web são usados.
Você pode usar o Application Insights com qualquer página da Web; basta adicionar um pequeno pedaço de JavaScript. Se o seu serviço Web for Java, você poderá usar os SDKs do lado do servidor com o SDK JavaScript do lado do cliente para obter uma compreensão do desempenho do aplicativo.
Observação
Para obter mais informações sobre o monitoramento da interface do usuário, confira a unidade Resumo no final deste treinamento.