Este documento descreve como executar o Coletor OpenTelemetry desenvolvido pelo Google no Google Kubernetes Engine para coletar registros, métricas e rastros do OTLP de aplicativos instrumentados e exportar esses dados para Google Cloud.
Antes de começar
A execução do coletor do OpenTelemetry criado pelo Google requer os seguintes recursos:
Um projeto do Google Cloud com as APIs Cloud Monitoring, Cloud Trace e Cloud Logging ativadas.
Se você não tiver um projeto do Google Cloud, faça o seguinte:
No Console do Google Cloud, acesse Novo projeto:
No campo Project Name, insira um nome para o projeto e clique em Criar.
Acesse o Faturamento:
Selecione o projeto recém-criado se ele ainda não estiver selecionado na parte superior da página.
Você vai precisar escolher um perfil para pagamentos atual ou criar um novo.
As APIs Monitoring, Trace e Logging são ativadas por padrão para novos projetos.
Se você já tem um projeto do Google Cloud, verifique se as APIs Monitoring, Trace e Logging estão ativadas:
Um cluster do Kubernetes. Se você não tiver um cluster do Kubernetes, siga as instruções no Guia de início rápido para GKE.
As seguintes ferramentas de linha de comando:
gcloud
kubectl
As ferramentas
gcloud
ekubectl
fazem parte da Google Cloud CLI. Para informações sobre como instalá-los, consulte Como gerenciar componentes da CLI do Google Cloud. Para conferir os componentes da CLI gcloud que você instalou, execute o seguinte comando:gcloud components list
Configurar permissões para o coletor
Se você desativou a identidade da carga de trabalho do GKE, pule esta seção.
Para garantir que a conta de serviço do kubernetes do OpenTelemetry Collector tenha as permissões necessárias para exportar a telemetria, peça ao administrador para conceder à conta de serviço do kubernetes do OpenTelemetry Collector os seguintes papéis do IAM no projeto:
-
Gravador de métricas do Monitoring ()
roles/monitoring.metricWriter
-
Gravador de registro de registro (
roles/logging.logWriter
) -
Agente do Cloud Trace (
roles/cloudtrace.agent
)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
O administrador também pode conceder à conta de serviço do Kubernetes do coletor do OpenTelemetry as permissões necessárias por meio de papéis personalizados ou outros papéis predefinidos.
Para configurar as permissões, use os seguintes
comandos
add-iam-policy-binding
:
gcloud projects add-iam-policy-binding projects/PROJECT_ID \ --role=roles/logging.logWriter \ --member=principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/opentelemetry/sa/opentelemetry-collector gcloud projects add-iam-policy-binding projects/PROJECT_ID \ --role=roles/monitoring.metricWriter \ --member=principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/opentelemetry/sa/opentelemetry-collector gcloud projects add-iam-policy-binding projects/PROJECT_ID \ --role=roles/cloudtrace.agent \ --member=principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/subject/ns/opentelemetry/sa/opentelemetry-collector
Antes de executar os comandos, substitua as seguintes variáveis:
- PROJECT_ID: o identificador do projeto.
- PROJECT_NUMBER: o número do projeto do Google Cloud.
Implantar o coletor
O pipeline do coletor pode ser implantado diretamente dos exemplos aprovados fornecidos pelo repositório de ingestão de Kubernetes OTLP autogerenciado. É possível implantar diretamente do GitHub com os seguintes comandos depois de substituir PROJECT_ID pelo ID do projeto Google Cloud :
export GCLOUD_PROJECT=PROJECT_ID kubectl kustomize https://github.com/GoogleCloudPlatform/otlp-k8s-ingest.git/k8s/base | envsubst | kubectl apply -f -
Antes de executar os comandos, substitua a seguinte variável:
- PROJECT_ID: o identificador do projeto.
Configurar o coletor
Fornecemos uma configuração do coletor do OpenTelemetry para você usar com o coletor criado pelo Google. Essa configuração foi projetada para entregar grandes volumes de métricas, registros e traces do OTLP com metadados consistentes do GKE e do Kubernetes anexados. Essa configuração também foi projetada para evitar problemas comuns de ingestão. Você pode adicionar à configuração, mas recomendamos que não remova elementos.
Esta seção descreve a configuração fornecida, os principais componentes, como exportadores, processadores, receptores e outros componentes disponíveis.
Configuração do coletor fornecida
Você pode encontrar a configuração do coletor para ambientes do Kubernetes no repositóriootlp-k8s-ingest
:
Exportadoras
A configuração do coletor inclui os seguintes exportadores:
Exportador
googlecloud
para registros e traces. Esse exportador é configurado com um nome de registro padrão.Exportador
googlemanagedprometheus
para métricas. Esse exportador não requer nenhuma configuração, mas há opções de configuração. Para informações sobre as opções de configuração do exportadorgooglemanagedprometheus
, consulte Introdução ao Coletor do OpenTelemetry na documentação do Google Cloud Managed Service para Prometheus.
Processadores
A configuração do coletor inclui os seguintes processadores:
batch
: configurado para agrupar solicitações de telemetria com o número máximo de entradas por solicitação ou no intervalo mínimo de Google Cloud a cada 5 segundos (o que ocorrer primeiro). Google Cloudmemory_limiter
: limita o uso da memória do coletor para evitar falhas por falta de memória, descartando pontos de dados quando o limite é excedido.resourcedetection
: detecta automaticamente os rótulos de recursos Google Cloud , comoproject_id
ecluster_name
.k8sattributes
Mapeia automaticamente os atributos de recursos do Kubernetes para rótulos de telemetria.transform
: renomeia os rótulos de métricas que entram em conflito com rótulos em Google Cloud recursos monitorados.
Recebedores
A configuração do coletor inclui apenas o
receptor otlp
.
Para informações sobre como instrumentar seus aplicativos para enviar rastros e métricas do OTLP
para o endpoint do OTLP do coletor, consulte
Escolher uma abordagem de
instrumentação.
Componentes disponíveis
O OpenTelemetry Collector criado pelo Google contém os componentes necessários para a maioria dos usuários
para ativar uma experiência rica na Observabilidade do Google Cloud. Para conferir uma lista completa de
componentes disponíveis, consulte
Components
no repositório opentelemetry-operations-collector
.
Para solicitar mudanças ou adições aos componentes disponíveis,
abra uma solicitação de recurso
no repositório opentelemetry-operations-collector
.
Gerar telemetria
Esta seção descreve a implantação de um aplicativo de exemplo e a indicação do aplicativo para o endpoint OTLP do coletor, bem como a visualização da telemetria emGoogle Cloud. O aplicativo de exemplo é um pequeno gerador que exporta traces, registros e métricas para o coletor.
Se você já tiver um aplicativo instrumentado com um SDK do OpenTelemetry, é possível apontar seu aplicativo para o endpoint do coletor.
Para implantar o aplicativo de amostra, execute o seguinte comando:
kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/otlp-k8s-ingest/main/sample/app.yaml
Para apontar os aplicativos existentes que usam o SDK do OpenTelemetry no
endpoint do coletor, defina a variável de ambiente OTEL_EXPORTER_OTLP_ENDPOINT
como
http://opentelemetry-collector.opentelemetry.svc.cluster.local:4317
.
Após alguns minutos, a telemetria gerada pelo aplicativo começa a fluir pelo coletor para o console do Google Cloud para cada indicador.
Conferir a telemetria
O coletor do OpenTelemetry criado pelo Google envia métricas, registros e rastros dos seus aplicativos instrumentados para a Google Cloud Observability. O coletor também envia métricas de autoobservabilidade. As seções a seguir descrevem como visualizar essa telemetria.
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.
Observar e depurar o coletor
O Coletor do OpenTelemetry criado pelo Google fornece automaticamente métricas de auto-observabilidade para ajudar você a monitorar o desempenho e garantir o tempo de atividade contínuo do pipeline de ingestão do OTLP.
Para monitorar o Coletor, instale o painel de amostra dele. Esse painel do Google Analytics oferece insights gerais sobre várias métricas do Coletor, incluindo tempo de atividade, uso de memória e chamadas de API para a observabilidade do Google Cloud.
Para instalar o painel, faça o seguinte:
-
No console do Google Cloud, acesse a página
Painéis:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoramento.
- Clique em Modelos de painéis.
- Pesquise o painel Coletor do OpenTelemetry.
- Opcional: para visualizar o painel, selecione-o.
Clique em playlist_add Adicionar painel à sua lista e preencha a caixa de diálogo.
A caixa de diálogo permite selecionar o nome do painel e adicionar rótulos a ele.
Para mais informações sobre como instalar painéis, consulte Instalar um modelo de painel.