Monitoramento

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

Além disso, muitas ferramentas de monitoramento permitem configurar alertas para as métricas. Assim, você recebe uma notificação quando um determinado limite é atingido. Por exemplo, é possível configurar um alerta para receber notificações quando a porcentagem de solicitações com falha aumentar em mais de x% dos níveis normais. As ferramentas de monitoramento ajudam a identificar o desempenho normal e a identificar picos incomuns 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 para os negócios ou após o envio de um novo código para produção.

Identificar métricas de latência

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

Estas são as métricas sugeridas para acompanhamento:

  • 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

A capacidade é uma medida do número total de solicitações exibidas em 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.

Veja algumas métricas sugeridas para acompanhamento:

  • Consultas por segundo
  • Tamanho dos dados transferidos por segundo
  • Número de operações de E/S por segundo
  • Uso de recursos, como uso de CPU ou memória
  • Tamanho do backlog de processamento, como Pub/Sub ou número de linhas de execução

Não apenas a média

Um erro comum na avaliação do desempenho é analisar apenas o caso médio. Embora isso seja útil, ele não fornece informações sobre a distribuição da latência. Uma métrica melhor a ser monitorada são os percentis de desempenho, por exemplo, o 50o/75o/90o/99o percentil de uma métrica.

A otimização geralmente tem duas etapas. Primeiro, otimize 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 levam muito mais tempo para serem concluídas.

Monitoramento do lado do servidor para resultados detalhados

Em geral, a criação de perfil do lado do servidor é preferível para métricas de rastreamento. Geralmente, o lado do servidor é muito mais fácil de instrumentar, permite acesso a dados mais granulares e está menos sujeito a perturbações causadas por problemas de conectividade.

Monitoramento do navegador para visibilidade de ponta a ponta

A criação de perfis do navegador pode fornecer mais insights sobre a experiência do usuário final. Ele pode mostrar quais páginas têm solicitações lentas, que você pode correlacionar ao monitoramento do lado do servidor para uma análise mais detalhada.

O Google Analytics fornece monitoramento imediato dos tempos de carregamento de página no Relatório de tempos de página. Isso fornece várias visualizações úteis para entender melhor a experiência do usuário no seu site, especificamente:

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

Monitoramento na nuvem

Há muitas ferramentas que podem ser usadas para capturar e monitorar 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, em seguida, configurar painéis no Google Cloud Monitoring para monitorar e segmentar as métricas registradas.

Confira o guia de geração de registros para um exemplo de como gerar registros no Google Cloud Logging a partir de um interceptador personalizado na biblioteca de cliente do Python. Com esses dados disponíveis no Google Cloud, é possível criar métricas sobre os dados registrados para ter visibilidade do aplicativo por meio do Google Cloud Monitoring. Siga o guia de 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

Suponha que você queira monitorar o valor is_fault para entender melhor as taxas de erro no seu aplicativo. Extraia o valor de is_fault dos registros em 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 as métricas em categorias com base em outros dados nos registros. Você pode configurar um rótulo para o campo method enviado ao Cloud Logging para ver como a contagem de erros é dividida 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 da ErrorCount

Alertas

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