Monitoramento

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

Além disso, muitas ferramentas de monitoramento permitem configurar alertas para suas métricas, para que você seja notificado quando um determinado limite for atingido. Por exemplo, é possível configurar um alerta para notificar 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 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 depois que um novo código é enviado para produção.

Identificar métricas de latência

Mantenha a capacidade de resposta da interface o máximo possível, lembrando 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 monitorada para serviços de back-end, principalmente porque pode causar problemas de capacidade se não for verificada.

As métricas sugeridas para acompanhamento 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 é uma medida do número total de solicitações atendidas em um determinado período. A capacidade pode ser afetada pela latência dos subsistemas. Portanto, talvez seja necessário otimizar a latência para melhorar a capacidade.

Confira algumas métricas sugeridas para acompanhar:

  • Consultas por segundo
  • Tamanho dos dados transferidos por segundo
  • Número de operações de E/S por segundo
  • Utilização 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 ao medir a performance é analisar apenas o caso médio. Embora isso seja útil, não fornece insights sobre a distribuição da latência. Uma métrica melhor para acompanhar são os percentis de performance, por exemplo, o 50º/75º/90º/99º percentil de uma métrica.

Em geral, a otimização pode ser feita em duas etapas. Primeiro, otimize para a latência do 90º percentil. Em seguida, considere o 99º 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 rastrear métricas. Normalmente, é muito mais fácil instrumentar o lado do servidor, que 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 podem ser correlacionadas ao monitoramento do lado do servidor para uma análise mais detalhada.

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

  • 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 performance 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.

Confira o guia de geração de registros para um exemplo de geração de registros no Cloud Logging do Google Cloud usando um interceptor personalizado na biblioteca de cliente Python. Com esses dados disponíveis no Google Cloud, é possível criar métricas com base nos dados registrados para ter visibilidade do aplicativo pelo Cloud Monitoring. Siga o guia para métricas com base em registros definidas pelo usuário e crie métricas usando os registros enviados ao Google Cloud Logging.

Como alternativa, use as bibliotecas do cliente do Monitoring para definir métricas no seu código e enviá-las diretamente ao Monitoring, separadas dos registros.

Exemplo de métricas com base em registros

Imagine que você quer monitorar o valor is_fault para entender melhor as taxas de erro no seu aplicativo. É possível extrair o valor is_fault dos registros 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 as métricas em categorias com base em outros dados nos registros. É possível configurar um rótulo para o campo method enviado ao Cloud Logging para analisar 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 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 suas métricas. Para instruções sobre como configurar alertas do Cloud Monitoring, siga o guia de alertas.