Neste documento, mostramos como executar o Coletor OpenTelemetry em um cluster do GKE para coletar registros, métricas e traces do OTLP de aplicativos instrumentados e exportar os dados para o Google Cloud.
Antes de começar
A execução do Coletor do OpenTelemetry no GKE 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ê 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:
Acessar APIs e serviços
Selecione o projeto.
Clique em addAtivar APIs e serviços.
Pesquise cada API por nome.
Nos resultados da pesquisa, clique na API nomeada. A API Monitoring aparece como "API Stackdriver Monitoring".
Se a opção "API ativada" não for exibida, clique no botão Ativar.
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 mais informações sobre como instalá-los, consulte Como gerenciar componentes da CLI do Google Cloud. Para ver os componentes da CLI gcloud que você instalou, execute o seguinte comando:gcloud components list
Implantar o coletor
O pipeline do coletor pode ser implantado diretamente do GitHub com os seguintes comandos depois de substituir PROJECT_ID pelo ID do seu projeto do Google Cloud:
export GCLOUD_PROJECT=PROJECT_ID kubectl kustomize https://github.com/GoogleCloudPlatform/otlp-k8s-ingest.git/k8s/base | envsubst | kubectl apply -f -
Observar e depurar o coletor
O Coletor do OpenTelemetry fornece métricas de auto-observabilidade prontas para uso para ajudar você a monitorar seu desempenho e garantir o tempo de atividade contínuo do pipeline de ingestão 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 Monitoring.
- Selecione a guia Biblioteca de amostra.
- Selecione a categoria Coletor do OpenTelemetry.
- Selecione o painel "Coletor do OpenTelemtry".
- Clique em Importar.
Para mais informações sobre o processo de instalação, consulte Instalar painéis de exemplo.
Configurar o coletor
O pipeline de ingestão autogerenciado do OTLP inclui uma Configuração do Coletor do OpenTelemetry padrão, projetada para entregar grandes volumes de métricas, registros e traces do OTLP com metadados consistentes do GKE e do Kubernetes anexados. Ele também foi projetado para evitar problemas comuns de ingestão.
No entanto, você pode ter necessidades únicas que exigem a personalização da configuração padrão Nesta seção, descrevemos os padrões fornecidos com o pipeline e como você pode personalizar esses padrões de acordo com suas necessidades.
A configuração padrão do coletor está no GitHub como
config/collector.yaml
Exportadoras
Os exportadores padrão incluem o exportador
googlecloud
(para registros e traces) e o exportador
googlemanagedprometheus
(para métricas).
O exportador googlecloud
está configurado com um nome de registro padrão. O exportador googlemanagedprometheus
não requer configuração padrão.
Consulte Introdução ao Coletor do OpenTelemetry
na documentação do Google Cloud Managed Service para Prometheus para saber mais sobre
a configuração deste exportador.
Processadores
A configuração padrão 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 do Google Cloud de cada 5 segundos (o que ocorrer primeiro).k8sattributes
Mapeia automaticamente os atributos de recursos do Kubernetes para rótulos de telemetria.memory_limiter
Limita o uso da memória do coletor em um nível razoável para evitar falhas por falta de memória ao descartar pontos de dados além desse nível.resourcedetection
Detecta automaticamente os rótulos de recursos do Google Cloud, como nome do cluster e ID do projeto.transform
: renomeia os rótulos de métricas que entrariam em conflito com os campos de recurso monitorado do Google Cloud.
Recebedores
A configuração padrão inclui apenas o receptor otlp
.
Consulte Escolher uma abordagem de instrumentação para instruções detalhadas
sobre como instrumentar seus aplicativos para enviar traces e métricas do OTLP
para o endpoint do OTLP do coletor.
Próximas etapas: coletar e visualizar 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 no Google 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.