Observabilidade no Google Cloud

O pacote de operações do Google Cloud inclui serviços de observabilidade que ajudam a entender o comportamento, a integridade e o desempenho dos aplicativos. A visibilidade de como os aplicativos se comportam e como os componentes estão conectados ajuda você a antecipar, identificar e responder a mudanças inesperadas com mais rapidez e eficácia.

Este documento inclui as seguintes informações:

Sobre a observabilidade

A observabilidade é uma abordagem holística para coletar e analisar dados de telemetria e entender o estado do ambiente. Os dados de telemetria são métricas, registros, traces e outros dados gerados pelos seus aplicativos e pela infraestrutura deles, que fornecem informações sobre a integridade e o desempenho deles.

Métricas
As métricas são dados numéricos sobre a integridade ou o desempenho que você mede em intervalos regulares ao longo do tempo, como utilização da CPU e latência da solicitação. Alterações inesperadas em uma métrica podem indicar um problema a ser investigado. Com o tempo, também é possível analisar padrões de métricas para entender melhor os padrões de uso e antecipar as necessidades de recursos.
Registros

Um registro é um registro gerado da atividade do sistema ou do aplicativo ao longo do tempo. Cada registro é uma coleção de entradas de registro com data e hora, e cada entrada descreve um evento em um momento específico.

Um registro geralmente contém informações ricas e detalhadas que ajudam a entender o que aconteceu com uma parte específica do seu aplicativo. No entanto, os registros não fornecem boas informações sobre como uma mudança em um componente do aplicativo se relaciona com a atividade em outro componente. Os rastros podem ajudar a preencher essa lacuna.

Traces

Os traces representam o caminho de uma solicitação nas partes do aplicativo distribuído. Uma métrica ou entrada de registro em um componente de aplicativo que acionou uma notificação de alerta pode ser um sintoma de um problema originado em outro componente. Os traces permitem seguir o fluxo de uma solicitação e examinar os dados de latência para identificar a causa raiz de um problema.

Outros dados

É possível ter mais insights analisando métricas, registros e traces no contexto de outros dados. Por exemplo, um rótulo para a gravidade de um alerta ou o ID de cliente associado a uma solicitação nos registros fornece contexto que pode ser útil para solução de problemas e depuração.

Monitorar, depurar e solucionar problemas de aplicativos distribuídos pode ser difícil porque há muitos sistemas e componentes de software envolvidos, geralmente com uma combinação de software comercial e de código aberto.

As ferramentas de observabilidade ajudam você a lidar com essa complexidade, coletando dados significativos e fornecendo recursos para explorar, analisar e correlacionar dados. Um ambiente observável ajuda você a:

  • Detecte problemas de forma proativa antes que eles afetem os usuários
  • Resolver problemas novos e conhecidos
  • Depurar aplicativos durante o desenvolvimento
  • Planejar e entender os impactos das mudanças nos seus aplicativos
  • Explorar dados para descobrir novos insights

Em resumo, um ambiente observável ajuda a manter a confiabilidade do aplicativo. Um aplicativo é confiável quando atende aos objetivos atuais de disponibilidade e resiliência a falhas.

Para saber mais sobre práticas de confiabilidade, incluindo princípios e práticas relacionados à observabilidade, leia o livro Engenharia de confiabilidade do site: como o Google executa sistemas de produção. Confira alguns temas:

Pacote de operações do Google Cloud

Os serviços no pacote de operações do Google Cloud ajudam a coletar, analisar e correlacionar dados de telemetria. Eles também fornecem padrões integrados para ajudar você a começar mais rapidamente, como painéis padrão e políticas de alerta.

O Cloud Monitoring, o Cloud Logging e o Cloud Trace estão entre os serviços ativados por padrão quando você cria um projeto do Google Cloud.

Monitoramento: use as métricas coletadas para monitorar a integridade e o desempenho, identificar tendências e problemas e notificar mudanças no comportamento.

  • Colete automaticamente as métricas da maioria dos serviços do Google Cloud.
  • Colete métricas do sistema e de aplicativos de terceiros.
  • Visualize e analise métricas com painéis padrão ou personalizados.
  • Use o monitoramento sintético para testar o desempenho dos aplicativos.
  • Definir objetivos de nível de serviço (SLOs) para monitorar a confiabilidade do serviço.
  • Receba alertas quando ocorrerem problemas.

Logging: use os registros coletados para depurar, resolver problemas e ter insights sobre seus aplicativos.

  • Colete registros automaticamente da maioria dos serviços do Google Cloud.
  • Colete registros de auditoria automaticamente da maioria dos serviços do Google Cloud.
  • Coletar registros de softwares de terceiros.
  • Explorar e analisar registros.
  • Use a Análise de registros para realizar uma análise de registros e outros dados com o BigQuery. Por exemplo, use o BigQuery para comparar URLs nos seus registros com um conjunto de dados público de URLs maliciosos conhecidos.
  • Criar métricas a partir de registros
  • Receba alertas quando uma mensagem especificada aparecer em um registro.

Error Reporting: visualize e analise erros de execução de serviços em nuvem:

  • Agregar erros que o Error Reporting detecta nas entradas de registro e visualizar os registros associados.
  • Erros agregados que seus aplicativos enviam para a API Error Reporting.

Trace: visualize e analise o fluxo e a latência das solicitações do aplicativo durante a depuração e a solução de problemas.

  • Acompanhe como as solicitações se propagam pelos seus aplicativos.
  • Colete dados de latência dos seus aplicativos e visualize gráficos dos dados.
  • Visualizar relatórios de latência que mostram degradações de desempenho
  • Receba alertas de alterações no perfil de latência dos seus aplicativos.
  • Anotar traces com atributos personalizados.
  • Exporte rastros para o BigQuery para explorá-los com outros dados.

Cloud Profiler: analisa o uso de CPU e memória dos seus aplicativos para identificar oportunidades para melhorar o desempenho.

  • Colete dados de uso de CPU e de alocação de memória dos seus aplicativos.
  • Identifique as partes de um aplicativo que estão consumindo mais recursos e consiga insights sobre o desempenho geral do aplicativo.

Começar

Nesta seção, descrevemos as etapas que você pode seguir para se familiarizar com os recursos de observabilidade no Google Cloud.

Consultar os guias de início rápido

Use os guias de início rápido para se familiarizar com os serviços disponíveis.

Analisar dados coletados automaticamente

A maioria dos serviços do Google Cloud gera métricas e registros predefinidos automaticamente. Isso significa que é possível analisar alguns dados de observabilidade dos serviços com suporte do Google Cloud sem configurações adicionais.

  • Alguns serviços do Google Cloud, como Google Kubernetes Engine (GKE), Compute Engine e Cloud SQL, fornecem painéis padrão no no console do Google Cloud para visualizar os dados de observabilidade no contexto do serviço.
  • O Compute Engine, o GKE e o Cloud Run geram métricas e registros do sistema por padrão, e você configura a coleta de outros dados.
  • O Cloud Functions e o App Engine geram automaticamente métricas, registros e traces.

Também é possível criar um gráfico das métricas coletadas no Metrics Explorer, ver os registros no Explorador de registros ou ver traces no Trace. Para analisar os dados relacionados juntos, crie painéis personalizados. Por exemplo, é possível criar um painel que inclua registros, métricas de desempenho e políticas de alertas para máquinas virtuais.

Configurar as VMs do Compute Engine para coletar mais dados

Por padrão, as VMs do Compute Engine coletam apenas métricas e registros básicos do sistema, sem o agente de operações.

Instale o Agente de operações para coletar outros dados de telemetria (registros, métricas e traces) das instâncias e aplicativos do Compute Engine para solução de problemas, monitoramento de desempenho e alertas.

Configurar clusters do GKE para coletar mais dados

Por padrão, os clusters do GKE enviam registros e métricas do sistema para o Logging e o Monitoring. O Google Cloud Managed Service para Prometheus processa a coleta de métricas definidas pelo usuário e de terceiros.

  • Use pacotes de métricas de observabilidade para entender melhor o estado dos aplicativos e dos recursos do cluster. Por exemplo, as métricas do plano de controle são úteis para criar SLOs para monitorar a disponibilidade e a latência do serviço.
  • Monitore aplicativos de terceiros, como Postgres, MongoDB e Redis. Essas integrações fornecem painéis pré-configurados e políticas de alerta.

Configurar o Cloud Run para coletar dados personalizados

Se você tiver um serviço do Cloud Run que grava métricas do Prometheus, poderá usar o arquivo secundário do Prometheus para enviar as métricas ao Cloud Monitoring.

Se o serviço do Cloud Run gravar métricas OTLP, você poderá usar um arquivo secundário do OpenTelemetry. Para ver um exemplo, consulte o tutorial para coletar métricas do OTLP usando o arquivo secundário.

Instrumentar os aplicativos

Instrumentação é o código adicionado a um aplicativo para emitir dados de telemetria. Há vários frameworks de instrumentação de código aberto que permitem coletar métricas, registros e traces do aplicativo e enviar esses dados a qualquer fornecedor, incluindo o Google Cloud. No entanto, talvez não seja necessário instrumentar seu aplicativo. Por exemplo, o Cloud Run, o Cloud Functions e o App Engine fornecem rastreamento automático.

Para instrumentar seu aplicativo, recomendamos que você use uma estrutura de instrumentação neutra de fornecedores e que seja de código aberto, como o OpenTelemetry, em vez de APIs específicas do fornecedor e do produto. ou bibliotecas de cliente. Para mais informações sobre como instrumentar seu aplicativo, consulte Instrumentação e observabilidade.

Para amostras de código que ilustram como instrumentar seu aplicativo para enviar telemetria ao Google Cloud, consulte:

Você também pode estar interessado em explorar os tópicos a seguir: