O Google Cloud Observability inclui serviços de observabilidade que ajudam a compreender o comportamento, o estado e o desempenho das suas aplicações. A visibilidade do comportamento das aplicações e da forma como os componentes estão ligados ajuda a antecipar, identificar e responder a alterações inesperadas de forma mais rápida e eficaz.
Este documento inclui as seguintes informações:
- Uma vista geral da observabilidade e por que motivo a observabilidade é importante para manter as suas aplicações disponíveis e fiáveis.
- Como a observabilidade do Google Cloud ajuda a monitorizar e manter o estado de funcionamento da aplicação e da infraestrutura.
- Como começar a usar a observabilidade no Google Cloud.
Acerca da observabilidade
A observabilidade é uma abordagem holística à recolha e análise de dados de telemetria para compreender o estado do seu ambiente. Os dados de telemetria são métricas, registos, rastreios e outros dados gerados pelas suas aplicações e pela infraestrutura de aplicações que fornecem informações sobre o estado e o desempenho das aplicações. A observabilidade centrada na aplicação refere-se a ferramentas que lhe permitem visualizar e analisar os dados de telemetria a partir da perspetiva de uma aplicação.
- Métrica
- As métricas são dados numéricos sobre o estado ou o desempenho que mede a intervalos regulares ao longo do tempo, como a utilização da CPU e a latência dos pedidos. As alterações inesperadas a uma métrica podem indicar um problema a investigar. Ao longo do tempo, também pode analisar os padrões das métricas para compreender melhor os padrões de utilização e antecipar as necessidades de recursos.
- Registos
Um registo é um registo gerado da atividade do sistema ou da aplicação ao longo do tempo. Cada registo é uma coleção de entradas de registo com indicação de data/hora, e cada entrada de registo descreve um evento num momento específico.
Um registo contém frequentemente informações detalhadas e avançadas que ajudam a compreender o que aconteceu com uma parte específica da sua aplicação. No entanto, os registos não fornecem boas informações sobre a forma como uma alteração num componente da sua aplicação se relaciona com a atividade noutro componente. Os rastreios podem ajudar a colmatar essa lacuna.
- Rastreios
Os rastreios representam o caminho de um pedido nas partes da sua aplicação distribuída. Uma métrica ou uma entrada de registo num componente de aplicação que acionou uma notificação de alerta pode ser um sintoma de um problema que tem origem noutro componente. Os rastreios permitem-lhe seguir o fluxo de um pedido e examinar os dados de latência para ajudar a identificar a causa principal de um problema.
- Outros dados
Pode obter estatísticas adicionais analisando métricas, registos e rastreios no contexto de outros dados. Por exemplo, uma etiqueta para a gravidade de um alerta ou o ID do cliente associado a um pedido nos registos fornece contexto que pode ser útil para a resolução de problemas e a depuração.
A monitorização, a depuração e a resolução de problemas de aplicações distribuídas podem ser difíceis porque envolvem muitos sistemas e componentes de software, muitas vezes com uma combinação de software comercial e de código aberto.
As ferramentas de observabilidade ajudam a navegar nesta complexidade através da recolha de dados significativos e da disponibilização de funcionalidades para explorar, analisar e correlacionar os dados. Um ambiente observável ajuda a:
- Detete problemas de forma proativa antes que afetem os seus utilizadores
- Resolva problemas conhecidos e novos
- Depure aplicações durante o desenvolvimento
- Planeie e compreenda os impactos das alterações às suas aplicações
- Explore dados para descobrir novas estatísticas
Em resumo, um ambiente observável ajuda a manter a fiabilidade da aplicação. Uma aplicação é fiável quando cumpre os seus objetivos atuais de disponibilidade e resiliência a falhas.
Para saber mais sobre as práticas de fiabilidade, incluindo princípios e práticas relacionados com a observabilidade, leia o livro Site Reliability Engineering: How Google Runs Production Systems. Os tópicos incluem:
- Objetivos ao nível do serviço
- Monitorizar sistemas distribuídos
- Alertar
- Resolução de problemas
- Testar a fiabilidade
Observabilidade do Google Cloud
Os serviços no Google Cloud Observability ajudam a recolher, analisar e correlacionar dados de telemetria, tanto das suas aplicações como da infraestrutura subjacente. Estes serviços também oferecem predefinições incorporadas para ajudar a começar mais rapidamente, como painéis de controlo predefinidos para as suas aplicações do App Hub e políticas de alertas pré-configuradas.
O Cloud Monitoring, o Cloud Logging e o Cloud Trace estão entre os serviços ativados por predefinição quando cria um Google Cloud projeto.
Monitorização: use as métricas recolhidas para monitorizar o estado e o desempenho, identificar tendências e problemas, e enviar notificações sobre alterações no comportamento.
- Veja o estado de funcionamento das suas aplicações do App Hub.
- Recolher automaticamente métricas para a maioria dos Google Cloud serviços.
- Recolha métricas do sistema e da aplicação de aplicações de terceiros.
- Visualize e analise métricas com painéis de controlo predefinidos ou personalizados.
- Use a monitorização sintética para testar o desempenho das suas aplicações.
- Defina objetivos ao nível do serviço (SLOs) para monitorizar a fiabilidade do serviço.
- Receba alertas quando ocorrerem problemas.
Registo: use os registos recolhidos para depurar, resolver problemas e obter estatísticas sobre as suas aplicações.
- Recolha automaticamente registos para a maioria dos Google Cloud serviços.
- Recolher automaticamente registos de auditoria para a maioria dos Google Cloud serviços.
- Recolher registos de software de terceiros.
- Explore e analise registos.
- Use o Log Analytics para fazer uma análise nos seus registos e noutros dados com o BigQuery. Por exemplo, pode usar o BigQuery para comparar URLs nos seus registos com um conjunto de dados público de URLs maliciosos conhecidos.
- Crie métricas a partir de registos.
- Receber alertas quando uma mensagem especificada aparece num registo.
Relatórios de erros: veja e analise erros de serviços na nuvem em execução:
- Agregue os erros que o Relatório de erros deteta nas entradas do registo e veja os registos associados.
- Agregue os erros que as suas aplicações enviam para a API Error Reporting.
Rastreio: veja e analise o fluxo e a latência dos pedidos de aplicações quando estiver a depurar e resolver problemas.
- Monitorize a forma como os pedidos se propagam através das suas aplicações.
- Recolha dados de latência das suas aplicações e veja gráficos dos dados.
- Veja relatórios de latência que mostram degradações do desempenho.
- Receba alertas sobre alterações no perfil de latência das suas aplicações.
- Exporte rastreios para o BigQuery para os poder explorar com outros dados.
Cloud Profiler: analise a utilização de CPU e memória das suas aplicações para poder identificar oportunidades de melhoria do desempenho.
- Recolha dados de utilização da CPU e de atribuição de memória das suas aplicações.
- Identifique as partes de uma aplicação que estão a consumir mais recursos e obtenha estatísticas sobre o desempenho geral da aplicação.
Começar
Esta secção descreve os passos que pode seguir para se familiarizar com as funcionalidades de observabilidade no Google Cloud.
Experimente os inícios rápidos
Experimente os inícios rápidos para se familiarizar com os serviços disponíveis.
Analise os dados recolhidos automaticamente
A maioria dos Google Cloud serviços gera automaticamente métricas e registos predefinidos. Isto significa que pode começar a analisar alguns dados de observabilidade para serviçosGoogle Cloud suportados sem configuração adicional.
- Alguns Google Cloud serviços, como o Google Kubernetes Engine (GKE), Compute Engine e Cloud SQL, oferecem painéis de controlo predefinidos na Google Cloud consola para ver dados de observabilidade no contexto do serviço.
- O Compute Engine, o GKE e o Cloud Run geram métricas e registos do sistema por predefinição, e configura a recolha de dados adicionais.
- As funções do Cloud Run e do App Engine geram automaticamente métricas, registos e rastreios.
Também pode representar graficamente as métricas recolhidas no Explorador de métricas, ver registos no Explorador de registos ou ver rastreios no Rastreio. Para rever dados relacionados em conjunto, crie painéis de controlo personalizados. Por exemplo, pode criar um painel de controlo que inclua registos, métricas de desempenho e políticas de alerta para máquinas virtuais.
Configure VMs do Compute Engine para recolher dados adicionais
Por predefinição, as VMs do Compute Engine apenas recolhem métricas e registos básicos do sistema sem o agente do Ops
Instale o agente de operações para recolher dados de telemetria adicionais (registos, métricas e rastreios) das suas instâncias e aplicações do Compute Engine para resolução de problemas, monitorização do desempenho e alertas.
- Recolher automaticamente métricas do anfitrião, como métricas de CPU, GPU, memória e processos.
- Recolha automaticamente registos do sistema, como o syslog de VMs Linux e o registo de eventos do Windows de VMs Windows.
- Observe as suas aplicações com:
- Integrações de aplicações de terceiros para software popular, como o Postgres, o MongoDB e a Java Virtual Machine, com painéis de controlo e políticas de alertas pré-configurados
- Métricas do Prometheus
- Métricas e rastreios do protocolo OpenTelemetry (OTLP)
- Registos de aplicações
- Para ver um resumo dos dados de telemetria recolhidos, consulte a vista geral do agente de operações.
Configure clusters do GKE para recolher dados adicionais
Por predefinição, os clusters do GKE enviam registos do sistema e métricas do sistema para o Logging e a Monitorização. O serviço gerido da Google Cloud para Prometheus processa a recolha de métricas de terceiros e definidas pelo utilizador.
- Use pacotes de métricas de observabilidade para compreender melhor o estado das suas aplicações e recursos de cluster. Por exemplo, as métricas do plano de controlo são úteis para criar SLOs para monitorizar a disponibilidade e a latência dos serviços.
- Monitorize aplicações de terceiros, como Postgres, MongoDB e Redis. Estas integrações oferecem painéis de controlo e políticas de alerta pré-configurados.
Configure o Cloud Run para recolher dados personalizados
Se tiver um serviço do Cloud Run que escreva métricas do Prometheus, pode usar o sidecar do Prometheus para enviar as métricas para o Cloud Monitoring.
Se o seu serviço do Cloud Run escrever métricas OTLP, pode usar um sidecar do OpenTelemetry. Para ver um exemplo, consulte o tutorial para recolher métricas OTLP através do sidecar.
Instrumente as suas aplicações
A instrumentação é um código que adiciona a uma aplicação para emitir dados de telemetria. Existem várias frameworks de instrumentação de código aberto que lhe permitem recolher métricas, registos e rastreios da sua aplicação e enviar esses dados para qualquer fornecedor, incluindo Google Cloud. No entanto, pode não precisar de instrumentar a sua aplicação. Por exemplo, o Cloud Run, as funções do Cloud Run e o App Engine oferecem rastreio automático.
Para instrumentar a sua aplicação, recomendamos que use uma estrutura de instrumentação neutra em relação ao fornecedor e de código aberto, como o OpenTelemetry, em vez de APIs ou bibliotecas de cliente específicas do fornecedor e do produto. Para informações sobre a instrumentação da sua aplicação, consulte o artigo Instrumentação e observabilidade.
Para ver exemplos de código que ilustram como instrumentar a sua aplicação para enviar telemetria para o Google Cloud, consulte o seguinte:
- Vista geral de exemplo.
- Exemplo de instrumentação do Go.
- Exemplo de instrumentação Java.
- Exemplo de instrumentação do Node.js.
- Exemplo de instrumentação Python.
Também pode ter interesse em explorar os seguintes tópicos:
- Saiba mais sobre as opções de instrumentação para rastreios
- Saiba como recolher métricas definidas pelo utilizador
- Saiba como escrever registos de aplicações