Visão geral do coletor do OpenTelemetry criado pelo Google

O coletor do OpenTelemetry criado pelo Google é a versão de código aberto do Google do coletor do OpenTelemetry, criado com componentes upstream usando uma cadeia de suprimentos segura na infraestrutura do Google. O OpenTelemetry, que faz parte da Cloud Native Computing Foundation, fornece APIs, bibliotecas e SDKs de código aberto para coletar traces, métricas e registros distribuídos do protocolo OpenTelemetry (OTLP) para monitoramento de aplicativos.

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

A partir da versão 0.134.0, o coletor do OpenTelemetry criado pelo Google é criado de acordo com o padrão de nível 3 dos níveis da cadeia de suprimentos para artefatos de software (SLSA, na sigla em inglês). O código do coletor e as dependências dele são verificados continuamente em busca de vulnerabilidades. Para mais informações, consulte Recursos de segurança.

Usar o coletor do OpenTelemetry criado pelo Google

Use o coletor criado pelo Google para coletar dados de telemetria dos aplicativos em execução no Kubernetes (incluindo o Google Kubernetes Engine (GKE)), no Container-Optimized OS, em contêineres independentes ou diretamente em um ambiente host (incluindo o Compute Engine). Os documentos a seguir descrevem como configurar e implantar o coletor criado pelo Google nos seguintes ambientes:

Estas instruções também podem ser usadas para configurar o coletor do OpenTelemetry de código aberto para exportar dados para o Google Cloud Observability.

Se você não tiver um aplicativo pronto para usar o coletor, implante a demonstração do OpenTelemetry com o coletor criado pelo Google. Para mais informações, consulte Teste a demonstração do OpenTelemetry.

Para informações sobre como usar a instrumentação do OpenTelemetry para gerar traces, 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 usa componentes e ferramentas upstream do OpenTelemetry, além de ser criado e recuperado inteiramente da infraestrutura de build-teste-lançamento do Google (Artifact Registry). O coletor criado pelo Google é compatível com um coletor do OpenTelemetry criado no repositório upstream. Ele também é hospedado como uma imagem Docker para implantação flexível em qualquer sistema baseado em contêiner, incluindo o Kubernetes e o GKE.

O Collector criado pelo Google oferece um pacote selecionado pelo Google com os componentes que a maioria dos usuários precisa para uma experiência de observabilidade avançada no Google Cloud. Não é necessário selecionar componentes e criar manualmente seu próprio coletor. Ao usar o coletor criado pelo Google, você pode:

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

Práticas recomendadas

O OpenTelemetry mantém uma lista de práticas recomendadas para configurar o coletor do OpenTelemetry e para escalonar o coletor. Esta seção traz algumas recomendações adicionais.

Usar o exportador gRPC do OTLP

Use o exportador gRPC do OTLP para se conectar à API Telemetry (OTLP), telemetry.googleapis.com. A API Telemetry aceita todas as telemetrias (registros, métricas e traces) no formato OTLP, que é neutro em relação a fornecedores. O envio de telemetria para a API Telemetry significa que os dados que fluem do coletor do OpenTelemetry são preservados com a máxima fidelidade no armazenamento do Google Cloud .

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

A extensão de verificação de integridade ativa um URL HTTP que pode ser sondado 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 Collector, 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 Collector. Essas informações simplificam o processo de diagnóstico e resolução, reduzindo o tempo de inatividade e simplificando os esforços de solução de problemas.
  • Maior confiabilidade: o monitoramento contínuo da integridade do Collector garante uma 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 atividade e prontidão.

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 nas configurações de serviço do Cloud Run.

Usar o processador em lote

O processador em lote coleta traces, 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 de cotas e pode reduzir os custos gerais de rede.
  • Compactação de dados aprimorada: 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 em tamanho e tempo oferece flexibilidade para otimizar diferentes cenários. O loteamento baseado em tamanho garante que os lotes atinjam um determinado tamanho antes de serem enviados, enquanto o loteamento baseado em tempo envia lotes após um intervalo de tempo específico. Essa flexibilidade permite ajustar a estratégia de lote para se alinhar às características específicas dos dados e aos requisitos específicos do aplicativo.

Usar o provedor googlesecretmanager

O provedor googlesecretmanager permite armazenar informações sensíveis necessárias para arquivos de configuração no Secret Manager, um serviço projetado especificamente para armazenar, acessar e gerenciar dados sensíveis com segurança. O uso do provedor googlesecretmanager oferece os seguintes benefícios:

  • Segurança aprimorada: os arquivos de configuração não contêm informações sensíveis, como senhas.
  • Risco reduzido de exposição: o Secret Manager busca secrets durante a inicialização do coletor, o que impede que secrets em texto simples sejam gravados acidentalmente nos registros.

Para informações sobre como usar esse provedor, consulte Gerenciar secrets na configuração do coletor.

Notas de lançamento

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

Recursos de segurança

A partir da versão 0.134.0, o coletor do OpenTelemetry criado pelo Google oferece imagens Docker criadas de acordo com o padrão de nível 3 dos Níveis da cadeia de suprimentos para artefatos de software (SLSA) e oferece os seguintes recursos de segurança:

  • Build seguro: o pipeline de CI/CD do coletor do OpenTelemetry criado pelo Google gera atestados para cada versão de imagem de contêiner. Esses atestados incluem um atestado de resumo de verificação (VSA), que é anexado como um recurso a cada versão no GitHub.

  • Verificação e correção de vulnerabilidades: o coletor do OpenTelemetry criado pelo Google é verificado continuamente em busca de vulnerabilidades, e nos esforçamos para seguir os SLOs do FedRamp para correção de vulnerabilidades. Priorizamos a segurança do usuário reconstruindo regularmente o coletor com dependências de pacotes atualizadas. Nosso pipeline de CI/CD foi projetado para integrar rapidamente correções de segurança críticas e atualizações de dependência. Esse compromisso minimiza a exposição a vulnerabilidades conhecidas, oferecendo um produto continuamente seguro e atualizado.

  • Versões verificadas e seguras: aplicamos políticas internas de integridade de código do Google para garantir que apenas os artefatos que atendem aos nossos critérios de segurança rigorosos sejam lançados na produção. Esse processo significa que você sempre recebe um software que passou por verificações de segurança internas extensas.

Compatibilidade

Para todos os problemas do lado do cliente do coletor do OpenTelemetry criado 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 forma possível.

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

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

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

Para problemas relacionados ao uso de serviços e APIs do Google Cloud Observability pelo coletor do OpenTelemetry criado pelo Google, como erros de 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 o Google Cloud, a cobrança é feita por volume de ingestão. Para informações sobre os custos associados à ingestão de traces, registros e métricas do Google Cloud Managed Service para Prometheus, consulte Preços do Google Cloud Observability.

Teste a demonstração do OpenTelemetry

Nesta seção, descrevemos como implantar e executar a demonstração do OpenTelemetry para oGoogle 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 próprias 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 o cluster, consulte Usar a Federação de Identidade da Carga de Trabalho para GKE.

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 do 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 da imagem do Collector que será usada. A linha é semelhante à seguinte, 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.163.1 para que a linha fique como a seguinte e salve o arquivo:

    image: "us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.163.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, é possível encaminhar os dados para uma porta local. Por exemplo, para se conectar à demonstração em localhost:8080, emita o seguinte comando:

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

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

Ver telemetria

A demonstração do OpenTelemetry envia métricas, traces e registros para o Google Cloud usando o coletor do OpenTelemetry criado pelo Google. Para informações sobre a telemetria específica enviada pela demonstração, consulte Como 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 métricas próprias.

Para conferir as métricas coletadas pelo coletor do OpenTelemetry criado pelo Google, faça o seguinte:
  1. No console 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 Monitoring.

  2. Na barra de ferramentas do console Google Cloud , selecione seu projeto Google Cloud . Para configurações do App Hub, selecione o projeto host do App Hub ou o projeto de gerenciamento da pasta habilitada para 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. Para adicionar filtros que removem séries temporais dos resultados da consulta, use o elemento Filtro.

  5. 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érie temporal. 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 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 do Google Cloud . Para configurações do App Hub, selecione o projeto host ou de gerenciamento do App Hub.
  3. Na seção de 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 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 seu app instrumentado. Para ver os detalhes, expanda 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.