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:
- Visão geral da instrumentação
- Escolher uma abordagem de instrumentação para o aplicativo
- Gerar traces e métricas com a instrumentação do OpenTelemetry
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
- Componentes do OpenTelemetry específicos do Google, por exemplo:
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:
- Implantar o coletor no Google Kubernetes Engine
- Implantar o coletor no Container-Optimized OS
- Implantar o coletor no Cloud Run
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:
Clone o repositório de demonstração da OpenTelemetry:
git clone https://github.com/GoogleCloudPlatform/opentelemetry-demo.git
Acesse o diretório
kubernetes
.cd kubernetes
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:
porus-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:-
No Console do Google Cloud, acesse a página do leaderboard Metrics Explorer:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoramento.
- 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.
- 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:- No menu Active resources, selecione Prometheus Target.
- 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
. - Clique em Aplicar.
- 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:
-
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.
- 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.
- Na seção da tabela da página, selecione uma linha.
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.
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.
-
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.
Localize uma entrada de registro do app instrumentado. Para conferir os detalhes, abra a entrada de registro.
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.