Monitoramento

A otimização de desempenho começa com a identificação das métricas principais, geralmente relacionadas à latência e à capacidade de processamento. A adição do monitoramento para capturar e rastrear essas métricas expõe pontos fracos no aplicativo. Com as métricas, é possível realizar a otimização para melhorar as métricas de desempenho.

Além disso, muitas ferramentas de monitoramento permitem que você configure alertas para suas métricas e receba notificações quando determinados limites forem atingidos. Por exemplo, é possível configurar um alerta para avisar quando a porcentagem de solicitações com falha estiver mais de x% acima dos níveis normais. As ferramentas de monitoramento ajudam você a identificar o desempenho normal e identificar picos anormais de latência, quantidades de erros e outras métricas importantes. A capacidade de monitorar essas métricas é especialmente importante durante períodos críticos da empresa ou depois do envio do novo código para produção.

Identificar métricas de latência

Mantenha a IU o mais responsiva possível, observando que os usuários esperam padrões ainda mais altos de aplicativos para dispositivos móveis. A latência também precisa ser medida e rastreada para serviços de back-end, especialmente porque ela pode levar a problemas de capacidade se não for marcada.

Algumas métricas sugeridas para acompanhar incluem:

  • Duração da solicitação
  • Duração da solicitação na granularidade do subsistema (como chamadas de API)
  • Duração do job

Identificar métricas de capacidade de processamento

A capacidade de processamento é uma medida do número total de solicitações exibidas durante um determinado período. A capacidade de processamento pode ser afetada pela latência dos subsistemas. Portanto, talvez seja necessário otimizar a latência para melhorar a capacidade de processamento.

Algumas métricas sugeridas para acompanhar incluem:

  • Consultas por segundo
  • Tamanho dos dados transferidos por segundo
  • Número de operações de E/S por segundo
  • Utilização de recursos (uso de CPU/memória etc.)
  • Tamanho do backlog de processamento (pub/sub, número de threads etc.)

Não seja médio

Um erro comum na medição do desempenho é apenas analisar o caso médio (médio). Isso é útil, mas não fornece insights sobre a distribuição de latência. Uma melhor métrica para rastrear são os percentis de desempenho, por exemplo, selecione o 50o/75o/90o/99o percentil para uma métrica.

Geralmente, a otimização pode ser feita em duas etapas. Primeiro, otimize para a latência do 90o percentil. Em seguida, considere o 99o percentil (também conhecido como latência de cauda): a pequena parte das solicitações que demoram muito mais para serem concluídas.

Monitoramento do lado do servidor para resultados detalhados

A criação de perfil do lado do servidor geralmente é preferível para métricas de rastreamento. O lado do servidor geralmente é muito mais fácil de instrumentar, permite o acesso a dados mais granulares e está menos sujeito a perturbação a partir de problemas de conectividade.

Monitoramento da navegação de ponta a ponta do navegador

A criação de perfil do navegador pode fornecer insights adicionais sobre a experiência do usuário final. Ele pode mostrar quais páginas têm solicitações lentas, e você pode mapeá-las para o monitoramento do lado do servidor para uma investigação mais aprofundada.

O Google Analytics oferece monitoramento pronto para uso para tempos de carregamento da página no relatório de tempo da página. Isso oferece várias visualizações úteis para entender a experiência do usuário no seu site, em particular:

  • Tempos de carregamento da página
  • Tempos de carregamento de redirecionamento
  • Tempos de resposta do servidor

Monitoramento na nuvem

Há muitas ferramentas que você pode usar para capturar e monitorar as métricas de desempenho do aplicativo. Por exemplo, é possível usar o Google Cloud Logging para registrar métricas de desempenho no seu projeto do Google Cloud e configurar painéis no Google Cloud Monitoring para monitorar e segmentar as métricas registradas.

No guia do Logging, compartilhamos um exemplo de geração de registros no Google Cloud Logging de um interceptador personalizado na biblioteca de cliente Python. Com os dados disponíveis no Google Cloud, podemos criar métricas sobre os dados registrados para ter visibilidade do nosso aplicativo com o Google Cloud Monitoring. Siga o guia para métricas com base em registros definidas pelo usuário para criar métricas usando os registros enviados ao Google Cloud Logging.

Como alternativa, é possível usar as bibliotecas de cliente do Monitoring para definir métricas no código e enviá-las diretamente para o Monitoring, separadas dos registros.

Exemplo de métricas com base em registros

Como exemplo de métricas com base em registros, é possível configurar uma métrica personalizada no Google Cloud Logging com base nos registros enviados no nosso exemplo do Python. Suponha que queremos monitorar o valor is_fault para entender melhor as taxas de erros em nosso aplicativo. Podemos extrair o valor is_fault dos nossos dados registrados para uma nova métrica de contador, ErrorCount.

Configuração da métrica

Filtros e rótulos em métricas

No Cloud Logging, os rótulos permitem agrupar suas métricas em categorias com base em outros dados nos registros.

Neste exemplo, configuramos um rótulo para o campo method, que também é enviado ao Cloud Logging no exemplo do Python. Dessa forma, podemos observar como o número de erros é dividido pelo método da API Google Ads.

Com a métrica ErrorCount e o rótulo Method configurados, é possível criar um novo gráfico em um painel do Monitoring para monitorar ErrorCount, agrupado por Method.

Painel do ErrorCount

Alertas

Também é possível no Cloud Monitoring e em outras ferramentas configurar políticas de alertas que especificam quando e como os alertas devem ser acionados por suas métricas. Para instruções sobre como configurar alertas do Cloud Monitoring, siga o guia de alertas.