Como integrar o Cloud Monitoring, o Logging e o Trace a soluções de observabilidade e de alerta

Este documento fornece recursos que descrevem como integrar o Cloud Logging, o Cloud Monitoring e o Cloud Trace a soluções de terceiros e de código aberto para observabilidade e alertas. Este é um guia de referência para engenheiros de confiabilidade do site (SREs), administradores de sistemas, operações de rede, profissionais de monitoramento e outros profissionais responsáveis pela confiabilidade, disponibilidade e desempenho dos sistemas. Neste documento, presume-se que você tenha experiência no desenvolvimento de soluções no Google Cloud.

É possível usar muitas ferramentas que ajudam a monitorar e diagnosticar os sistemas de TI empresariais gerando alertas quando o desempenho e a disponibilidade dos sistemas ficam prejudicados. À medida que você e sua organização expandem sua carga computacional para o Google Cloud, é possível integrar o Google Cloud às práticas de observabilidade e alerta fazendo o seguinte:

  • Extraindo dados do Google Cloud: envie dados do Cloud Monitoring e do Logging para ferramentas usadas.
  • Processando dados no Google Cloud: envie dados de ferramentas usadas para o Cloud Monitoring e o Logging.

Como extrair dados do Monitoring e do Logging

É possível enviar dados de observabilidade e de eventos dos recursos do Google Cloud para as ferramentas de monitoramento, alerta e notificação de terceiros que você usa. Os serviços do Google Cloud geram automaticamente dados de observabilidade, como métricas, registros e dados de trace que ajudam a fornecer uma visão geral completa da observabilidade. A extração de dados do Cloud Monitoring e do Cloud Logging permite integrar os dados aos processos existentes de confiabilidade, alerta e gerenciamento de incidentes.

Dados de observabilidade do Cloud Monitoring

O Cloud Monitoring classifica as métricas em grupos gerais com base no tipo de serviço que coleta os dados. Para saber mais sobre tipos de métricas, recursos, rótulos e agregação no Monitoring, consulte Noções básicas sobre métricas e criação de gráficos e Estrutura de séries temporais.

O Cloud Monitoring coleta métricas, eventos e metadados do Google Cloud e da Amazon Web Services (AWS), bem como sondagem de tempos de atividade hospedados e instrumentação de aplicativos. As métricas das seguintes origens são registradas no Cloud Monitoring:

Como extrair métricas de maneira programática

A API Monitoring permite ler e gravar de maneira programática todas as métricas coletadas no Cloud Monitoring. O guia de referência a seguir fornece exemplos de arquitetura e de código que você pode usar para ler métricas da API Monitoring:

Como monitorar usando ferramentas de terceiros

É possível ler diretamente a API Monitoring usando soluções de terceiros, como o Datadog e o SignalFX, que fornecem recursos de monitoramento integrados.

Dados de observabilidade do Cloud Logging

Os serviços, os recursos de usuário e o código do Google Cloud geram automaticamente os registros do status ou de um evento. Para informações sobre como os registros são ingeridos, armazenados e exportados, consulte os Conceitos básicos do Cloud Logging.

A arquitetura do Cloud Logging inclui os seguintes componentes:

  • Produtores de registros: recursos que geram registros no Cloud Logging.
  • Roteador de registros: o Cloud Logging e as exportações dele.
  • Consumidores de registros: ferramentas de terceiros e de código aberto que ingerem registros do Cloud Logging.

Para informações sobre como os dados passam dos produtores pelo Logs Router aos consumidores de registro, consulte a Visão geral do roteador de registros.

Para informações sobre como criar um aplicativo para ler registros programaticamente, consulte Como exportar com o Visualizador de registros e Como usar a API Logging.

Como configurar exportações para ferramentas de terceiros

É possível exportar registros para o Pub/Sub, o Cloud Storage e o BigQuery e criar assinaturas para as ferramentas que você quer usar.

Recomendamos o uso do Pub/Sub para exportar registros para ferramentas de terceiros, porque o Cloud Logging gerencia o pipeline de exportação e você é responsável apenas pelo processamento dos registros que chegam pelo pipeline.

Para mais informações sobre como exportar registros para ferramentas específicas, consulte os seguintes guias:

Como extrair registros de maneira programática

É possível usar a API do Logging para ler registros e listar entradas de registro para receber uma lista paginada de um conjunto específico de registros.

Como ingerir dados de observabilidade no Monitoring

É possível usar o Cloud Monitoring para ingerir dados de observabilidade de ferramentas locais e de terceiros e gerar insights usando painéis, gráficos e alertas.

Como monitorar recursos do AWS

Para monitorar recursos em execução no AWS, use a integração de contas do AWS do Cloud Monitoring para ingerir diretamente informações sobre esses recursos no Cloud Monitoring, incluindo métricas do Amazon CloudWatch. Para mais informações, consulte Guia de início rápido do AWS e Métricas do AWS.

Como monitorar o Azure, o AWS e recursos locais

Para monitorar recursos em execução no Microsoft Azure e no AWS que o Monitoring não inclui automaticamente, ou então recursos locais, use o produto BindPlane da Blue Medora. O BindPlane fornece uma solução de integração para ingerir diretamente dados de métricas de várias fontes diferentes. Para mais informações sobre integrações do BindPlane, consulte os seguintes guias:

Como monitorar com o Prometheus

O Prometheus é um framework de monitoramento de série temporal comum de código aberto usado com clusters do Kubernetes. É possível usar a integração do Prometheus para ingerir métricas de infraestrutura e de aplicativos personalizados no Cloud Monitoring. Para mais informações, consulte estes guias:

Como monitorar com o Istio

A Observabilidade do Istio permite exportar métricas do Istio (links em inglês). É possível usar o complemento Istio no GKE para configurar automaticamente o adaptador do Monitoring ou instalar manualmente o Istio nos clusters e depois configurar o adaptador do Monitoring. Para mais informações sobre como usar o Istio com o Cloud Monitoring, consulte os seguintes guias:

Monitoramento personalizado

É possível adicionar telemetria personalizada aos aplicativos e ingerir métricas no Cloud Monitoring para usar em gráficos, painéis e políticas de alertas.

Recomendamos o uso do OpenCensus se seu app for escrito em uma linguagem compatível com a biblioteca. Para mais informações, consulte Métricas personalizadas com o OpenCensus.

Se o aplicativo estiver em execução no GKE, use o Prometheus conforme descrito anteriormente neste documento.

É possível adicionar instrumentação de métrica personalizada ao código usando a API Monitoring. A API Monitoring oferece maior flexibilidade e controle, mas é mais complexa de usar do que o OpenCensus ou o Prometheus. Para mais informações, consulte Introdução à API Monitoring.

Como visualizar dados do Monitoring

O Cloud Monitoring fornece as seguintes opções para visualizar dados:

A página "Monitoring" no Console do Google Cloud permite que você visualize dados usando as seguintes ferramentas:

  • Visão geral do Monitoring: painéis predefinidos que exibem gráficos de recursos e de aplicativos do Google Cloud ou de recursos do AWS. É possível modificar a configuração do gráfico e o período de exibição desses painéis.
  • Painéis personalizados: painéis personalizáveis que podem ser criados para exibir a integridade de serviços ou de grupos de recursos especificados.
  • Metrics Explorer: uma visualização da Web que permite criar visualizações personalizadas de métricas coletadas no espaço de trabalho. Compartilhe gráficos do Metrics Explorer para oferecer suporte a casos de uso de colaboração e a solução de problemas em tempo real.

Para mais informações, consulte o Qwiklab monitorar vários projetos com o Cloud Monitoring.

Como ingerir dados de observabilidade no Logging

É possível usar o Cloud Logging para ingerir dados de registro do local e de ferramentas de terceiros e, em seguida, armazenar, pesquisar, analisar, monitorar e alertar sobre dados e eventos do registro.

Como registrar recursos do AWS

Para ingerir registros de VMs em execução no Amazon EC2, configure as permissões de VM e instale o agente do Cloud Logging Agent nas VMs. Para saber mais sobre como usar registros do AWS com o Cloud Logging, consulte o guia de início rápido do AWS.

Como gerar registros do Azure e dos recursos locais

Para ingerir registros de recursos em execução no Microsoft Azure ou no local, use a solução de integração BindPlane da Blue Medora. Para saber mais, consulte o guia sobre como registrar recursos locais com a BlueMedora.

Geração de registros personalizada

Para enviar registros diretamente para o Cloud Logging, use as bibliotecas de cliente do Logging. Para mais informações sobre como usar as bibliotecas de cliente do Logging para ingerir registros, consulte as amostras da API Logging.

Como ingerir traces no Cloud Trace

O Cloud Trace ajuda você a analisar a latência do aplicativo fornecendo instrumentação de aplicativo, um back-end de armazenamento e uma camada de visualização e análise para os traces ingeridos. O Cloud Trace é um sistema de rastreamento distribuído que pode ser usado para analisar a latência do aplicativo, especialmente para arquiteturas complexas baseadas em microsserviço.

Trace com Zipkin

Se o aplicativo já estiver instrumentado com o Zipkin e você não quiser executar seu próprio back-end de trace ou se quiser acesso às ferramentas de análise avançadas do Cloud Trace, poderá ingerir traces no Cloud Trace. O projeto do Zipkin mantém essa funcionalidade, e o Google não oferece suporte oficialmente. Para saber mais, consulte Como usar o Cloud Trace com o Zipkin.

Trace com OpenTelemetry

Se você não tiver um instrumentação de tracing e quiser usar o Cloud Trace como a ferramenta de análise de tracing, recomendamos o uso do OpenTelemetry. O Open Telemetry é uma biblioteca de tracing e métricas de código aberto compatível com muitas linguagens. Para mais informações sobre o uso do OpenTelemetry com o Cloud Trace, consulte a documentação do OpenTelemetry. Para um exemplo usando Go, consulte o pacote exportador de trace.

Trace com bibliotecas de cliente

É possível usar bibliotecas de cliente do Cloud Trace para instrumentação de aplicativos ao executar VMs ou contêineres no Google Cloud, em outros provedores de nuvem ou no local. O Google está fazendo a transição para usar o OpenTelemetry. Se você quiser começar a usar o tracing distribuído, recomendamos o uso do OpenTelemetry, conforme descrito anteriormente neste documento.

Alertas e notificações

É possível usar o Google Cloud e ferramentas externas para enviar alertas e notificações de dados ingeridos de sistemas externos.

O Cloud Monitoring oferece funcionalidade para alertas e gerenciamento de incidentes e eventos. Para monitorar os sistemas, é possível integrar alertas do Monitoring em ferramentas que você adquiriu ou criou.

Para implementar a integração do Monitoring, use uma ou mais das seguintes opções:

  • Use as integrações de notificação integradas do Cloud Monitoring para enviar notificações para outros sistemas
  • Use uma solução de parceiro para sistemas que não dispõem de sistemas integrados de integrações.
  • Crie integrações personalizadas com webhooks para entregar notificações do Cloud Monitoring a outros sistemas.

Como enviar alertas do Monitoring

Crie políticas de alertas do Cloud Monitoring com base em registros e métricas ingeridos e envie notificações para canais diferentes, como e-mail ou SMS Os guias a seguir fornecem exemplos de implementação para o Slack e o PagerDuty:

Para mais informações sobre alertas, consulte Políticas de alertas em detalhes.

Como enviar alertas de uma solução de terceiros

É possível usar uma solução de terceiros para enviar alertas do Cloud Monitoring para o sistema que você está usando. Para ver exemplos, consulte os seguintes guias:

Como enviar alertas de integrações personalizadas

Use um webhook para criar uma integração personalizada com muitos sistemas de monitoramento de terceiros. Quando você configura uma integração personalizada, o Cloud Monitoring entrega notificações de alerta por payload JSON para os URLs fornecidos. Os guias a seguir fornecem exemplos de integrações de webhook personalizadas:

Como enviar notificações de erro do Monitoring

Ao ingerir dados ao Monitoring, conforme descrito anteriormente, é possível configurar a funcionalidade do Error Reporting para que os sistemas externos gravem alertas como erros e acionem notificações. Para mais informações, consulte estes guias:

A seguir