Este documento descreve como executar o coletor OpenTelemetry integrado na Google no Google Kubernetes Engine para recolher registos, métricas e rastreios OTLP de aplicações instrumentadas e, em seguida, exportar esses dados para o Google Cloud.
Antes de começar
A execução do coletor OpenTelemetry criado pela Google requer os seguintes recursos:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Telemetry, Cloud Logging, Cloud Monitoring, and Cloud Trace APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Telemetry, Cloud Logging, Cloud Monitoring, and Cloud Trace APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. Um cluster do Kubernetes. Se não tiver um cluster do Kubernetes, siga as instruções no Início rápido do GKE.
As seguintes ferramentas de linha de comandos:
gcloud
kubectl
As ferramentas
gcloud
ekubectl
fazem parte da CLI gcloud. Para ver informações sobre a instalação, consulte o artigo Faça a gestão dos componentes da CLI Google Cloud. Para ver os componentes da CLI gcloud que tem instalados, execute o seguinte comando:gcloud components list
-
Monitoring Metric Writer (
roles/monitoring.metricWriter
) -
Logging Log Writer (
roles/logging.logWriter
) -
Agente do Cloud Trace (
roles/cloudtrace.agent
) - PROJECT_ID: o identificador do projeto.
- PROJECT_NUMBER: o Google Cloud número do projeto.
- PROJECT_ID: o identificador do projeto.
- PROJECT_NUMBER: o identificador numérico do projeto.
googlecloud
exportador, para registos e rastreios. Este exportador está configurado com um nome de registo predefinido.googlemanagedprometheus
exportador, para métricas. Este exportador não requer nenhuma configuração, mas existem opções de configuração. Para obter informações sobre as opções de configuração do exportadorgooglemanagedprometheus
, consulte o artigo Introdução ao OpenTelemetry Collector na documentação do Google Cloud Managed Service for Prometheus.batch
: Configurado para processar pedidos de telemetria em lote ao Google Cloud número máximo de entradas por pedido ou ao Google Cloud intervalo mínimo de 5 segundos (conforme o que ocorrer primeiro).memory_limiter
: Limita a utilização de memória do coletor para evitar falhas de memória insuficiente ao rejeitar pontos de dados quando o limite é excedido.resourcedetection
: Deteta automaticamente Google Cloud etiquetas de recursos, comoproject_id
ecluster_name
.k8sattributes
: Mapeia automaticamente os atributos dos recursos do Kubernetes para etiquetas de telemetria.transform
: Muda o nome das etiquetas de métricas que entram em conflito com as etiquetas nos Google Cloud recursos monitorizados.-
Na Google Cloud consola, aceda à página leaderboard Explorador de métricas:
Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.
- Na barra de ferramentas da Google Cloud consola, selecione o seu Google Cloud projeto. Para configurações do App Hub, selecione o projeto anfitrião do App Hub ou o projeto de gestão da pasta com apps ativadas.
- No elemento Métrica, expanda o menu Selecionar uma métrica,
introduza
Prometheus Target
na barra de filtros e, de seguida, use os submenus para selecionar um tipo de recurso e uma métrica específicos:- No menu Recursos ativos, selecione Alvo do Prometheus.
- Para selecionar uma métrica, use os menus Categorias de métricas ativas e Métricas ativas.
As métricas recolhidas pelo Google-Built OpenTelemetry Collector têm o prefixo
prometheus.googleapis.com
. - Clique em Aplicar.
Para adicionar filtros que removem séries cronológicas dos resultados da consulta, use o elemento Filter.
- Configure a forma como os dados são vistos.
Quando as medições de uma métrica são cumulativas, o explorador de métricas normaliza automaticamente os dados medidos pelo período de alinhamento, o que resulta na apresentação de uma taxa no gráfico. Para mais informações, consulte o artigo Tipos, tipos e conversões.
Quando são medidos valores inteiros ou duplos, como com as métricas
counter
, o explorador de métricas soma automaticamente todas as séries cronológicas. Para alterar este comportamento, defina o primeiro menu da entrada Agregação como Nenhuma.Para mais informações sobre como configurar um gráfico, consulte o artigo Selecione métricas quando usar o explorador de métricas.
-
Na Google Cloud consola, aceda à página Explorador de rastreios:
Aceda ao Explorador de rastreios
Também pode encontrar esta página através da barra de pesquisa.
- Na barra de ferramentas da Google Cloud consola, selecione o seu Google Cloud projeto. Para configurações do App Hub, selecione o projeto anfitrião ou o projeto de gestão do App Hub.
- Na secção da tabela da página, selecione uma linha.
No gráfico de Gantt no painel Detalhes do rastreio, selecione um intervalo.
É aberto um painel que apresenta informações sobre o pedido rastreado. Estes detalhes incluem o método, o código de estado, o número de bytes e o agente do utilizador do autor da chamada.
Para ver os registos associados a este rastreio, selecione o separador Registos e eventos.
O separador mostra registos individuais. Para ver os detalhes da entrada do registo, expanda a entrada do registo. Também pode clicar em Ver registos e ver o registo através do Explorador de registos.
-
Na Google Cloud consola, aceda à página Explorador de registos:
Aceda ao Explorador de registos
Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cuja legenda é Registo.
Localize uma entrada de registo na sua app instrumentada. Para ver os detalhes, expanda a entrada de registo.
Clique em
Rastreios numa entrada de registo com uma mensagem de rastreio e, de seguida, selecione Ver detalhes do rastreio.
É aberto um painel Detalhes do rastreio que apresenta o rastreio selecionado.
-
Na Google Cloud consola, aceda à página
Painéis de controlo:
Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.
- Clique em Modelos de painéis de controlo.
- Pesquise o painel de controlo do OpenTelemetry Collector.
- Opcional: para pré-visualizar o painel de controlo, selecione-o.
Clique em playlist_add Adicionar painel de controlo à sua lista e, em seguida, conclua a caixa de diálogo.
A caixa de diálogo permite-lhe selecionar o nome do painel de controlo e adicionar etiquetas ao painel de controlo.
Configure as autorizações para o coletor
Se tiver desativado o Workload Identity do GKE, pode ignorar esta secção.
Para garantir que a conta de serviço do Kubernetes do OpenTelemetry Collector tem as autorizações necessárias para exportar a telemetria, peça ao seu administrador para conceder à conta de serviço do Kubernetes do OpenTelemetry Collector as seguintes funções de IAM no seu projeto:
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
O seu administrador também pode conseguir conceder à conta de serviço do Kubernetes do OpenTelemetry Collector as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.
Para configurar as autorizaçõ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:
Implemente o coletor
O pipeline do coletor pode ser implementado diretamente a partir dos exemplos validados fornecidos pelo repositório de ingestão do Kubernetes OTLP autogerido. Pode implementar diretamente a partir do GitHub com os seguintes comandos depois de substituir PROJECT_ID pelo ID do seu projeto Google Cloud :
export GOOGLE_CLOUD_PROJECT=PROJECT_ID export PROJECT_NUMBER=PROJECT_NUMBER kubectl kustomize https://github.com/GoogleCloudPlatform/otlp-k8s-ingest.git/k8s/base | envsubst | kubectl apply -f -
Antes de executar os comandos, substitua as seguintes variáveis:
Configure o coletor
Fornecemos uma configuração do OpenTelemetry Collector para usar com o coletor criado pela Google. Esta configuração foi concebida para fornecer volumes elevados de métricas, registos e rastreios OTLP com metadados do GKE e do Kubernetes anexados de forma consistente. Esta configuração também foi concebida para evitar problemas comuns de carregamento. Pode adicionar elementos à configuração, mas recomendamos vivamente que não remova elementos.
Esta secção descreve a configuração fornecida, os componentes principais, como exportadores, processadores, recetores e outros componentes disponíveis.
Configuração do coletor fornecida
Pode encontrar a configuração do coletor para ambientes Kubernetes no repositóriootlp-k8s-ingest
:
Exportadores
A configuração do coletor inclui os seguintes exportadores:
Processadores
A configuração do coletor inclui os seguintes processadores:
Recetores
A configuração do coletor inclui apenas o recetor otlp
.
Para obter informações sobre a instrumentação das suas aplicações para enviar rastreios OTLP e métricas para o ponto final OTLP do coletor, consulte a secção Escolha uma abordagem de instrumentação.
Componentes disponíveis
O coletor OpenTelemetry criado pela Google contém os componentes de que a maioria dos utilizadores vai precisar para
ativar uma experiência avançada no Google Cloud Observability. Para ver uma lista completa dos componentes disponíveis, consulte o artigo Componentes no repositório opentelemetry-operations-collector
.
Para pedir alterações ou adições aos componentes disponíveis,
abra um pedido de funcionalidade.
no repositório opentelemetry-operations-collector
.
Gere telemetria
Esta secção descreve a implementação de uma aplicação de exemplo e a indicação dessa aplicação para o ponto final OTLP do coletor, bem como a visualização da telemetria noGoogle Cloud. A aplicação de exemplo é um pequeno gerador que exporta rastreios, registos e métricas para o coletor.
Se já tiver uma aplicação instrumentada com um SDK OpenTelemetry, pode direcionar a aplicação para o ponto final do coletor.
Para implementar a aplicação de exemplo, execute o seguinte comando:
kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/otlp-k8s-ingest/main/sample/app.yaml
Para direcionar as aplicações existentes que usam o SDK OpenTelemetry para o ponto final 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 pela aplicação começa a fluir através do coletor para a Google Cloud consola para cada sinal.
Ver telemetria
O coletor OpenTelemetry criado pela Google envia métricas, registos e rastreios das suas aplicações instrumentadas para o Google Cloud Observability. O coletor também envia métricas de auto-observabilidade. As secções seguintes descrevem como ver esta telemetria.
Veja as suas métricas
O coletor OpenTelemetry criado pela Google recolhe métricas do Prometheus que pode ver através do Explorador de métricas. As métricas recolhidas dependem da instrumentação da app, embora o coletor criado pela Google também escreva algumas métricas próprias.
Para ver as métricas recolhidas pelo Google-Built OpenTelemetry Collector, faça o seguinte:Veja os seus rastreios
Para ver os dados de rastreio, faça o seguinte:
Para mais informações sobre como usar o explorador do Cloud Trace, consulte o artigo Encontre e explore rastreios.
Veja os seus registos
No Explorador de registos, pode inspecionar os seus registos e também ver rastreios associados, quando existirem.
Para mais informações sobre a utilização do Explorador de registos, consulte o artigo Veja registos através do Explorador de registos.
Observe e depure o coletor
O Google-Built OpenTelemetry Collector fornece automaticamente métricas de autoobservabilidade para ajudar a monitorizar o respetivo desempenho e garantir o tempo de atividade contínuo do pipeline de carregamento do OTLP.
Para monitorizar o coletor, instale o painel de controlo de exemplo para o coletor. Este painel de controlo oferece estatísticas rápidas sobre várias métricas do coletor, incluindo tempo de atividade, utilização de memória e chamadas API para o Google Cloud Observability.
Para instalar o painel de controlo, faça o seguinte:
Para mais informações sobre a instalação de painéis de controlo, consulte o artigo Instale um modelo de painel de controlo.