Monitoramento

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

Além disso, muitas ferramentas de monitoramento permitem configurar alertas para suas métricas. Assim, você recebe uma notificação quando um determinado limite é atingido. Por exemplo, é possível configurar um alerta para notificá-lo quando a porcentagem de solicitações com falha aumentar em mais de x% dos níveis normais. As ferramentas de monitoramento podem ajudar você 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 IU o mais responsiva possível, observando que os usuários esperam padrões ainda mais altos dos apps para dispositivos móveis. A latência também precisa ser medida e rastreada para os serviços de back-end, principalmente porque ela pode levar a problemas de capacidade se não for verificada.

Confira algumas das métricas sugeridas:

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

Estas são 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
  • Utilização de recursos, como 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 medição do desempenho é analisar apenas o caso médio. Ainda que isso seja útil, ele não fornece insights sobre a distribuição de latência. Os percentis de desempenho são melhores para rastrear, por exemplo, o 50o/75o/90o/99o percentil de 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 levam muito mais tempo para serem concluídas.

Monitoramento do lado do servidor para resultados detalhados

Geralmente, 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 devido a problemas de conectividade.

Monitoramento do navegador para visibilidade de ponta a ponta

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, que você pode correlacionar ao monitoramento do lado do servidor para análise mais detalhada.

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

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

Como monitorar na nuvem

Há muitas ferramentas que podem ser usadas para capturar e monitorar as métricas de desempenho do seu 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 do Logging para ver um exemplo de geração de registros no Google Cloud Logging de um interceptador 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 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.

Também é possível usar as bibliotecas de cliente do Monitoring para definir métricas no seu 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 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 nas 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 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 ErrorCount

Alertas

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