Monitoramento

A otimização de desempenho começa com a identificação das principais métricas, geralmente relacionadas à latência e à capacidade de processamento. A adição de 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 receber notificações quando a porcentagem de solicitações com falha aumentar em mais de X% dos níveis normais. As ferramentas de monitoramento podem ajudar a identificar como é o desempenho normal e 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 depois que um novo código é enviado para produção.

Identificar métricas de latência

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

As métricas sugeridas para monitoramento 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 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 de processamento.

Confira algumas métricas sugeridas para monitorar:

  • Consultas por segundo
  • Tamanho da transferência de dados por segundo
  • Número de operações de E/S por segundo
  • Utilização de recursos, como uso de CPU ou uso da 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 o desempenho é 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 desempenho, por exemplo, os percentis 50, 75, 90 e 99 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

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

Monitoramento de navegadores para visibilidade de ponta a ponta

Se a integração da API Google Ads exibir um front-end da Web para os usuários finais, a criação de perfis do navegador poderá fornecer mais insights sobre a experiência do usuário. 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 também oferece monitoramento pronto para uso dos tempos de carregamento de páginas no relatório de Tempo na página do Analytics. Isso oferece várias visualizações úteis para entender a experiência do usuário no seu site, em especial:

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

Consulte o guia de geração de registros para ver um exemplo de interceptador de geração de registros gRPC personalizado escrito para a biblioteca de cliente do Python. Nesse exemplo, o interceptador chama logger.log_struct() para enviar um dicionário Python de dados de registro estruturados para o Cloud Logging, que os armazena no campo jsonPayload da entrada de registro:

logger.log_struct({
    "method": method_name,
    "elapsed_ms": elapsed_milliseconds,
    "is_fault": is_fault,
})

Com esses dados disponíveis no Google Cloud, é possível criar métricas com base nos dados registrados para ter visibilidade do aplicativo pelo 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, use as bibliotecas de cliente do Cloud Monitoring para definir métricas no código e enviá-las diretamente ao 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. Como logger.log_struct() grava campos de dicionário estruturados em jsonPayload em cada entrada de registro do Cloud Logging, é possível criar uma métrica de contador chamada ErrorCount com um filtro que corresponda a solicitações com falha, como jsonPayload.is_fault = true.

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 STRING chamado Method no campo jsonPayload.method enviado ao Cloud Logging para detalhar a contagem de erros 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 no Cloud Monitoring para monitorar ErrorCount, agrupado por Method.

Alertas

No Cloud Monitoring e em outras ferramentas, é possível configurar políticas de alerta 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 para alertas sobre métricas com base em registros.