Visão geral do coletor do OpenTelemetry criado pelo Google

Este conjunto de documentos descreve o Coletor do OpenTelemetry desenvolvido pelo Google e explica como implantar o coletor para coletar traces, métricas e registros do Protocolo OpenTelemetry (OTLP) de aplicativos instrumentados e exportar esses dados para a Observabilidade do Google Cloud e outros back-ends.

O OpenTelemetry Collector do Google é um build de código aberto e pronto para produção do OpenTelemetry Collector upstream, que é criado com componentes do OpenTelemetry Collector upstream. O OpenTelemetry, que faz parte da Cloud Native Computing Foundation, oferece APIs, bibliotecas e SDKs de código aberto para coletar traces, métricas e registros distribuídos para monitoramento de aplicativos.

O coletor do OpenTelemetry criado pelo Google permite enviar rastros, métricas e registros correlacionados do OTLP para a Observability do Google Cloud e outros back-ends de aplicativos instrumentados usando SDKs do OpenTelemetry. O Coletor também captura metadados para recursos Google Cloud , para que você possa correlacionar dados de desempenho do aplicativo com dados de telemetria da infraestrutura. O uso do coletor criado pelo Google com o Google Cloud Observability fornece insights para melhorar o desempenho dos seus aplicativos e da sua infraestrutura. Para mais informações sobre o coletor, consulte Descrição do coletor do OpenTelemetry criado pelo Google.

Usar o coletor do OpenTelemetry criado pelo Google

Você pode usar o coletor criado pelo Google para coletar dados de telemetria dos seus aplicativos executados no Kubernetes (incluindo o Google Kubernetes Engine), no SO otimizado para contêineres ou em contêineres independentes. Os documentos desta seção descrevem como configurar e implantar o coletor criado pelo Google nos seguintes ambientes:

Se você não tiver um aplicativo pronto para usar o coletor, será possível implantar a demonstração do OpenTelemetry com o coletor criado pelo Google. Para mais informações, consulte Testar a demonstração do OpenTelemetry.

Para informações sobre como usar a instrumentação do OpenTelemetry para gerar rastros, métricas e registros dos seus aplicativos, consulte os seguintes documentos:

Descrição do coletor do OpenTelemetry criado pelo Google

O coletor do OpenTelemetry criado pelo Google é criado usando componentes e ferramentas do OpenTelemetry upstream, enquanto é criado e extraído inteiramente da infraestrutura de build-test-release do Google (Artifact Registry). O coletor criado pelo Google é compatível com um build do coletor do OpenTelemetry do repositório upstream. Ela também é hospedada como uma imagem do Docker para implantação flexível em qualquer sistema baseado em contêineres, incluindo o Kubernetes e o GKE.

O Collector criado pelo Google fornece um pacote selecionado pelo Google com os componentes que a maioria dos usuários precisa para uma experiência de observância completa no Google Cloud. Você não precisa selecionar componentes e criar manualmente seu próprio coletor. Ao usar o coletor criado pelo Google, você pode:

  • Colete metadados de recursos Google Cloud para correlacionar os dados de desempenho do aplicativo com os dados de telemetria da infraestrutura.
  • Roteie dados de telemetria para a Observability do Google Cloud ou o back-end de sua escolha usando exportadores, incluindo back-ends com suporte nativo à OpenTelemetry.
  • Simplifique a integração com configurações recomendadas e práticas recomendadas de automonitoramento, incluindo verificações de integridade e processamento em lote.
  • Use a imagem Docker hospedada para implantação flexível em qualquer sistema baseado em contêineres, incluindo o Kubernetes e o GKE.

Práticas recomendadas

O OpenTelemetry mantém uma lista de práticas recomendadas para configurar o OpenTelemetry Collector e dimensionar o Coletor. Esta seção faz algumas outras recomendações.

Usar a extensão de verificação de integridade

A extensão de verificação de integridade ativa um URL HTTP que pode ser verificado para verificar o status do coletor do OpenTelemetry. O uso dessa extensão oferece os seguintes benefícios:

  • Detecção precoce de problemas: as verificações de integridade facilitam o monitoramento proativo do status do coletor, permitindo a detecção de possíveis problemas antes que eles afetem negativamente os dados de telemetria. Essa medida preventiva ajuda a garantir a confiabilidade do pipeline de observabilidade.
  • Solução de problemas aprimorada: quando ocorrem problemas, as verificações de integridade oferecem insights valiosos sobre o estado atual do coletor. Essas informações simplificam o processo de diagnóstico e resolução, reduzindo o tempo de inatividade e simplificando a solução de problemas.
  • Confiabilidade aprimorada: o monitoramento contínuo do estado do coletor garante a operação consistente e evita falhas inesperadas. Essa medida proativa aumenta a confiabilidade geral do sistema de observabilidade e minimiza o risco de perda de dados ou lacunas nos dados de telemetria.

No Kubernetes e no GKE, a extensão de verificação de integridade é compatível com as sondagens de atividade e prontidão do Kubernetes. Para informações sobre como configurar essas sondagens, consulte Práticas recomendadas do Kubernetes: como configurar verificações de integridade com sondagens de prontidão e atividade.

No Cloud Run, uma única extensão de verificação de integridade pode servir como o endpoint para sondagens de inicialização e de atividade na configuração do serviço do Cloud Run.

Usar o processador em lote

O processador de lote coleta rastros, métricas ou registros e os agrupa em lotes para transmissão. O uso do processador em lote oferece os seguintes benefícios:

  • Minimiza as conexões de saída: ao agrupar as transmissões de dados em lotes, o OpenTelemetry Collector reduz significativamente o número de conexões de saída. Essa abordagem consolidada reduz o uso da cota e pode diminuir os custos gerais da rede.
  • Melhoria na compactação de dados: o processamento em lote permite uma compactação de dados mais eficiente, reduzindo o tamanho geral dos dados transmitidos.
  • Flexibilidade na estratégia de loteamento: o suporte ao loteamento com base no tamanho e no tempo oferece flexibilidade para otimizar diferentes cenários. O agrupamento com base no tamanho garante que os lotes atinjam um determinado tamanho antes de serem enviados, enquanto o agrupamento com base no tempo envia lotes após um intervalo de tempo específico. Essa flexibilidade permite que você ajuste a estratégia de lote para se alinhar às características específicas dos dados e aos requisitos específicos do aplicativo.

Notas de lançamento

O coletor do OpenTelemetry criado pelo Google tem versões sincronizadas com o coletor do OpenTelemetry upstream. A versão atual é v0.122.1. A imagem do Docker correspondente, armazenada no Artifact Registry, é us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.122.1. Para cada nova versão, as mudanças mais relevantes para os Google Cloud usuários são incluídas nesta página.

  • 0.122.1:

    • Coletor do OpenTelemetry criado pelo Google: atualize para a versão v0.122.1 do núcleo do coletor do OpenTelemetry e para a versão v0.122.0 do coletor do OpenTelemetry Contrib.
    • Novo componente adicionado: googleclientauthextension
    • Avisos sobre problemas conhecidos:
    • Se você usar a exportação OTLP da autotelemetria do coletor, observe o seguinte problema: https://github.com/open-telemetry/opentelemetry-collector/issues/12701
    • Repositório do núcleo do coletor do OpenTelemetry: Notas da versão
    • Repositório do OpenTelemetry Collector Contrib: Notas da versão
  • 0.121.0:

    • Coletor do OpenTelemetry criado pelo Google: versão inicial
    • Repositório do núcleo do coletor do OpenTelemetry: Notas da versão
    • Repositório do OpenTelemetry Collector Contrib: Notas da versão

Compatibilidade

Para todos os problemas do lado do cliente do OpenTelemetry Collector criados pelo Google, incluindo solicitações de recursos, relatórios de bugs e perguntas gerais, abra um problema no repositório do GitHub apropriado. Esses repositórios são monitorados pelo Google, e os problemas são triados e resolvidos da melhor maneira possível.

  • Repositório de pacotes do coletor do OpenTelemetry criado pelo Google, para problemas relacionados a:

    • Embalagem
    • Implantação em Google Cloud
    • Autenticação no Google Cloud
    • Solicitações para a adição de novos componentes do OpenTelemetry
  • Repositório do OpenTelemetry Collector Contrib, para problemas relacionados a:

    • Componentes do OpenTelemetry específicos do Google, por exemplo:
      • googlecloudexporter
      • googlemanagedprometheusexporter
      • googleclientauthextension
      • resourcedetectionprocessor
    • Componentes do OpenTelemetry que não são específicos do Google e são gerenciados pela comunidade upstream

Em caso de problemas relacionados ao uso do coletor do OpenTelemetry criado pelo Google de serviços de observabilidade do Google Cloud e APIs, como erros do servidor ou cotas, entre em contato com o Cloud Customer Care.

Preços

Não há cobrança para implantar e usar o coletor do OpenTelemetry criado pelo Google.

Quando você envia dados de telemetria para Google Cloud, a cobrança é feita pelo volume de transferência. Para informações sobre os custos associados à ingestão de traços, registros e métricas do Google Cloud Managed Service para Prometheus, consulte Preços do Google Cloud Observability.

Testar a demonstração do OpenTelemetry

Esta seção descreve como implantar e executar a demonstração do OpenTelemetry para Google Cloud com o coletor do OpenTelemetry criado pelo Google.

Esta seção é opcional. Se você estiver pronto para integrar o coletor criado pelo Google às suas implantações, consulte os seguintes documentos:

Antes de começar

A demonstração do OpenTelemetry requer um cluster do Kubernetes com a federação de identidade da carga de trabalho configurada. Para informações sobre como configurar a Federação de identidade da carga de trabalho para a demonstração do OpenTelemetry, consulte Pré-requisitos da Identidade da carga de trabalho.

Atualizar a demonstração para usar o coletor criado pelo Google

Por padrão, a demonstração do OpenTelemetry usa o coletor upstream do OpenTelemetry. Para usar o coletor do OpenTelemetry criado pelo Google, faça o seguinte:

  1. Clone o repositório de demonstração da OpenTelemetry:

    git clone https://github.com/GoogleCloudPlatform/opentelemetry-demo.git
    
  2. Acesse o diretório kubernetes.

    cd kubernetes
    
  3. Edite o arquivo opentelemetry-demo.yaml para substituir a linha que a imagem do coletor vai usar. A linha é semelhante a esta, embora a versão possa ser diferente:

    image: "otel/opentelemetry-collector-contrib:0.108.0"
    

    Substitua o valor do campo image: por us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.122.1 para que a linha tenha a seguinte aparência e salve o arquivo:

    image: "us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.122.1"
    

Implantar a demonstração

Implante a demonstração aplicando o arquivo opentelemetry-demo.yaml atualizado:

kubectl apply --namespace otel-demo -f opentelemetry-demo.yaml

Conectar-se à demonstração

Depois de aplicar a configuração atualizada, você pode encaminhar os dados para uma porta local. Por exemplo, para se conectar à demonstração em localhost:8080, execute o seguinte comando:

kubectl port-forward --n otel-demo svc/opentelemetry-demo-frontendproxy 8080:8080

Em seguida, use seu navegador para se conectar à demonstração em localhost:8080.

Conferir a telemetria

A demonstração do OpenTelemetry envia métricas, rastros e registros para Google Cloud usando o coletor do OpenTelemetry criado pelo Google. Para informações sobre a telemetria específica enviada pela demonstração, consulte Ver a telemetria na documentação da demonstração.

Ver suas métricas

O coletor do OpenTelemetry criado pelo Google coleta métricas do Prometheus que podem ser visualizadas usando o Metrics Explorer. As métricas coletadas dependem da instrumentação do app, embora o Collector criado pelo Google também grave algumas autométricas.

Para conferir as métricas coletadas pelo coletor do OpenTelemetry criado pelo Google, faça o seguinte:
  1. No Console do Google Cloud, acesse a página do  Metrics Explorer:

    Acesse o Metrics explorer

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoramento.

  2. Na barra de ferramentas do console do Google Cloud, selecione seu projeto. Para configurações do App Hub, selecione o projeto host do App Hub ou o projeto de gerenciamento da pasta ativada por apps.
  3. No elemento Metric, expanda o menu Selecionar uma métrica, digite Prometheus Target na barra de filtro e use os submenus para selecionar um tipo de recurso e métrica específicos:
    1. No menu Active resources, selecione Prometheus Target.
    2. Para selecionar uma métrica, use os menus Categorias de métricas ativas e Métricas ativas. As métricas coletadas pelo coletor do OpenTelemetry criado pelo Google têm o prefixo prometheus.googleapis.com.
    3. Clique em Aplicar.
  4. Configure a visualização dos dados.

    Quando as medições de uma métrica são cumulativas, o Metrics Explorer normaliza automaticamente os dados medidos pelo período de alinhamento, o que resulta na exibição de uma taxa no gráfico. Para mais informações, consulte Tipos, tipos e conversões.

    Quando valores inteiros ou duplos são medidos, como acontece com as métricas counter, o Metrics Explorer soma automaticamente todas as séries temporais. Para mudar esse comportamento, defina o primeiro menu da entrada Agregação como Nenhum.

    Para mais informações sobre como configurar um gráfico, consulte Selecionar métricas ao usar o Metrics Explorer.

Visualizar os rastros

Para visualizar os dados de trace, faça o seguinte:

  1. No console do Google Cloud, acesse a página Explorador de traces:

    Acessar o Explorador de traces

    Também é possível encontrar essa página usando a barra de pesquisa.

  2. Na barra de ferramentas do console do Google Cloud, selecione seu projeto. Para as configurações do App Hub, selecione o projeto host do App Hub ou o projeto de gerenciamento da pasta ativada por apps.
  3. Na seção da tabela da página, selecione uma linha.
  4. No diagrama de Gantt no painel Detalhes do trace, selecione um período.

    Um painel é aberto com informações sobre a solicitação rastreada. Esses detalhes incluem o método, o código de status, o número de bytes e o user agent do autor da chamada.

  5. Para visualizar os registros associados a esse trace, selecione a guia Registros e eventos.

    A guia mostra registros individuais. Para exibir os detalhes da entrada de registro, expanda a entrada de registro. Também é possível clicar em Ver registros e ver o registro usando a Análise de registros.

Para mais informações sobre como usar o explorador do Cloud Trace, consulte Encontrar e explorar traces.

Acessar os registros

Na Análise de registros, é possível inspecionar os registros e visualizar os traces associados, quando eles existirem.

  1. No console do Google Cloud, acesse a página do Análise de registros.

    Acessar a Análise de registros

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.

  2. Localize uma entrada de registro do app instrumentado. Para conferir os detalhes, abra a entrada de registro.

  3. Clique em Traces em uma entrada de registro com uma mensagem de trace e selecione View trace details.

    O painel Detalhes do trace é aberto e mostra o trace selecionado.

Para mais informações sobre como usar a Análise de registros, consulte Ver registros usando a Análise de registros.