Monitorização de toda a solução

Concluído

Nesta unidade, procuramos monitorizar toda a solução.

Introdução

Permitir 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 esses dados e combiná-los com diferentes perspetivas para apoiar a multiplicidade de partes interessadas em sua organização.

O Azure Monitor coleta dados de diferentes tipos de fontes, onde você pode usá-los para análise, visualização e alerta. Ele fornece insights profundos em todos os seus recursos monitorados e até mesmo com dados de outros serviços que armazenam seus dados no Azure Monitor.

Log Analytics

Os registos são eventos que ocorreram dentro do sistema. Os logs podem conter diferentes tipos de dados e podem ser texto estruturado ou de forma livre com um carimbo de data/hora. Os logs podem ser criados esporadicamente à medida que eventos no ambiente geram entradas de log. Um sistema sob carga pesada normalmente gera mais volume de log.

Os logs no Azure Monitor são valiosos para identificar as causas raiz dos problemas. Os dados que os Logs do Azure Monitor coletam são armazenados em um ou mais espaços de trabalho do Log Analytics. Os dados são recuperados de um espaço de trabalho 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 em KQL (Kusto Query Language), que é a mesma linguagem de consulta usada pelo Azure Data Explorer.

Nota

Seu aplicativo de exemplo do Azure Spring Apps já foi configurado com um espaço de trabalho do Log Analytics. Para obter mais informações sobre a sintaxe KQL , consulte a unidade Resumo no final deste treinamento.

Utilizar o Log Analytics

Na verdade, existem três maneiras de acessar os logs do seu aplicativo: Armazenamento do Azure, Hub de Eventos do Azure e Análise de Log. Vamos nos concentrar aqui no Log Analytics porque é o mais comum e está integrado ao Azure Spring Apps para monitoramento de métricas.

Importante

O tempo de ingestão de dados de log no Azure Monitor pode levar até 15 minutos. Se os dados não forem encontrados no Log Analytics, pode levar mais tempo para ingerir os dados de log do Azure Spring Apps.

  1. Abra o portal do Azure.

  2. Selecione Azure Spring Apps na lista de serviços do Azure.

  3. Selecione sua instância do Azure Spring Apps.

  4. Em seguida, na seção Monitoramento , selecione Logs.

  5. Na caixa de pesquisa Consultar:

    Captura de tela mostrando a consulta para logs do Azure Spring Apps.

    • Para exibir logs, execute uma consulta como:

      AppPlatformLogsforSpring
      | limit 50
      
    • Para visualizar métricas, insira uma consulta como:

      AzureMetrics
      | limit 50
      
    • Você pode pesquisar os logs do aplicativo ou instância específica definindo uma condição de filtro:

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

Analise os logs do aplicativo

Os logs de aplicativos fornecem informações críticas e logs detalhados sobre a integridade, o desempenho e muito mais do seu aplicativo. Na próxima seção, fornecemos consultas para ajudá-lo a entender os estados atuais e passados do seu aplicativo.

Mostrar logs de aplicativos do Azure Spring Apps

  1. Abra o portal do Azure.

  2. Selecione Azure Spring Apps na lista de serviços do Azure.

  3. Selecione sua instância do Azure Spring Apps.

  4. Em seguida, na seção Monitoramento , selecione Logs.

  5. Na caixa de pesquisa Consultar:

    • 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
      
    • 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"
      
    • Para criar um gráfico de pizza que exiba 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
      

Monitorização de bases de dados

O monitoramento de dados sobre seus servidores ajuda a solucionar problemas e otimizar sua carga de trabalho. O Banco de Dados do Azure para MySQL fornece várias métricas que fornecem informações sobre o comportamento do seu servidor.

No Banco de Dados do Azure para MySQL, o log de consulta lenta está disponível para os usuários. O acesso ao log de transações não é suportado. Você pode usar o log de consulta lenta para identificar gargalos de desempenho para solução de problemas.

Em nosso aplicativo de exemplo, seus logs de consulta lenta são configurados para serem canalizados para os Logs do Azure Monitor por meio de Logs de Diagnóstico, e você pode fazer uma análise mais aprofundada de suas consultas lentas. A seguir estão exemplos de consultas para ajudá-lo a começar/

Importante

O tempo de ingestão de dados do MySQL Log no Azure Monitor pode levar até 30 minutos. Se os dados não forem encontrados no Log Analytics, pode levar mais tempo para ingerir os dados de log do MySQL.

  1. Inicie sessão no portal do Azure.

  2. Selecione seu Banco de Dados do Azure para o servidor MySQL que você usa para seus Azure Spring Apps.

  3. Em seguida, na seção Monitoramento , selecione Logs.

    Captura de ecrã a mostrar consultas com mais de um segundo.

  4. Na caixa de pesquisa Consultar:

    • 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 principais 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 por tempo de consulta mínimo, máximo, médio e 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 representar graficamente a 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
      
  5. Você também pode usar o log de auditoria para controlar a atividade no nível do banco de dados. É comumente usado para conformidade. Os registos de auditoria estão integrados nos Registos de Diagnósticos do Azure Monitor. Em seu exemplo, habilitamos os logs de auditoria em seu servidor MySQL para que você possa fazer uma análise mais aprofundada de seus eventos auditados.

    • Aqui está 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 você adicionar o Application Insights ao seu script de página, obterá tempos de carregamentos de página e chamadas AJAX, contagens e detalhes de exceções do navegador e falhas AJAX, além de usuários e contagens de sessão. Você pode segmentar todas essas métricas por página, sistema operacional do cliente e versão do navegador, geolocalização e outras dimensões. Você pode definir alertas sobre contagens de falhas ou carregamento lento de páginas e, inserindo chamadas de rastreamento em seu código JavaScript, pode acompanhar como os diferentes recursos do seu 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 entender o desempenho do seu aplicativo.

Nota

Para obter mais informações sobre o monitoramento da interface do usuário, consulte a unidade Resumo no final deste treinamento.