Questo documento mostra come eseguire OpenTelemetry Collecting in un cluster GKE per raccogliere log, metriche e tracce OTLP dalle applicazioni strumentate ed esportare questi dati in Google Cloud.
Prima di iniziare
L'esecuzione di OpenTelemetry Collector su GKE richiede quanto segue di risorse:
Un progetto Google Cloud con le API Cloud Monitoring, Cloud Trace e Cloud Logging abilitate.
Se non hai un progetto Google Cloud, segui questi passaggi:
Nella console Google Cloud, vai a Nuovo progetto:
Nel campo Nome progetto, inserisci un nome per il progetto. e fai clic su Crea.
Vai a Fatturazione:
Seleziona il progetto appena creato, se non lo è già selezionata nella parte superiore della pagina.
Ti viene chiesto di scegliere un profilo pagamenti esistente per crearne uno nuovo.
L'API Monitoring, l'API Trace e l'API Logging sono abilitate per impostazione predefinita per i nuovi progetti.
Se hai già un progetto Google Cloud, assicurati che le API Monitoring, Trace e Logging siano abilitate:
Vai ad API e servizi:
Seleziona il progetto.
Fai clic su add Abilita API e servizi.
Cerca ogni API per nome.
Nei risultati di ricerca, fai clic sull'API denominata. L'API Monitoring viene visualizzata come "API Stackdriver Monitoring".
Se non viene visualizzato il messaggio "API abilitata", fai clic sul pulsante Attiva.
Un cluster Kubernetes. Se non hai un cluster Kubernetes, segui le istruzioni riportate nella guida rapida per GKE.
I seguenti strumenti a riga di comando:
gcloud
kubectl
Gli strumenti
gcloud
ekubectl
fanno parte Google Cloud CLI. Per informazioni sull'installazione, consulta Gestire i componenti dell'interfaccia a riga di comando Google Cloud. Per vedere le componenti gcloud CLI che hai installato, esegui questo comando:gcloud components list
Esegui il deployment del raccoglitore
Il deployment della pipeline del raccoglitore può essere eseguito direttamente da GitHub con quanto segue dopo aver sostituito PROJECT_ID con l'ID del tuo progetto Google Cloud:
export GCLOUD_PROJECT=PROJECT_ID kubectl kustomize https://github.com/GoogleCloudPlatform/otlp-k8s-ingest.git/k8s/base | envsubst | kubectl apply -f -
Monitora ed esegui il debug del raccoglitore
OpenTelemetry Collector fornisce metriche di autoosservabilità pronte all'uso per aiutarti a monitorarne le prestazioni e garantire un tempo di attività continuo dell'OTLP di importazione dati.
Per monitorare il raccoglitore, installa la dashboard di esempio per il raccoglitore. Questa dashboard offre informazioni di riepilogo su diverse metriche del Collector, tra cui uptime, utilizzo della memoria e chiamate API a Google Cloud Observability.
Per installare la dashboard:
-
Nella console Google Cloud, vai alla pagina Dashboard:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.
- Seleziona la scheda Sample Library (Raccolta di Sample).
- Seleziona la categoria OpenTelemetry Collector.
- Seleziona "OpenTelemtry Collector" Fitbit.com.
- Fai clic su Importa.
Per saperne di più sul processo di installazione, consulta Installazione di esempio dashboard.
Configura il raccoglitore
La pipeline di importazione OTLP autogestita include una configurazione predefinita di OpenTelemetry Collector progettata per fornire elevati volumi di metriche, log e tracce OTLP con metadati GKE e Kubernetes coerenti allegati. Inoltre, è progettato per prevenire i problemi comuni di importazione.
Tuttavia, potresti avere esigenze specifiche che richiedono la personalizzazione della configurazione predefinita. Questa sezione descrive i valori predefiniti forniti con la pipeline e come puoi personalizzarli in base alle tue esigenze.
La configurazione predefinita di Collector si trova su GitHub come
config/collector.yaml
:
Esportatori
Gli esportatori predefiniti includono
googlecloud
esportatore (per log e tracce) e
googlemanagedprometheus
esportatore (per le metriche).
L'esportatore googlecloud
è configurato con un nome di log predefinito. La
L'utilità di esportazione googlemanagedprometheus
non richiede alcuna configurazione predefinita.
consulta la Guida introduttiva a OpenTelemetry
Raccoglitore
nella documentazione di Google Cloud Managed Service per Prometheus per saperne di più
configurando questo esportatore.
Processori
La configurazione predefinita include i seguenti processori:
batch
: Configurata per eseguire in batch le richieste di telemetria in batch al numero massimo di Google Cloud voci per richiesta o con un intervallo minimo di Google Cloud ogni 5 secondi (a seconda dell'evento che si verifica per primo).k8sattributes
: mappa automaticamente gli attributi delle risorse Kubernetes alle etichette di telemetria.memory_limiter
: limita l'utilizzo della memoria del Collector a un livello ragionevole per evitare arresti anomali dovuti a esaurimento della memoria eliminando i punti dati oltre questo livello.resourcedetection
: Rileva automaticamente le etichette delle risorse Google Cloud, come il nome del cluster e dell'ID progetto.transform
: Rinomina le etichette delle metriche che entrerebbero in collisione con la risorsa monitorata da Google Cloud campi.
Ricevitori
La configurazione predefinita include solo otlp
destinatario.
Consulta Scegliere un approccio di instrumentation per istruzioni dettagliate sull'instrumentation delle applicazioni per inviare le tracce e le metriche OTLP all'endpoint OTLP del Collector.
Passaggi successivi: raccogli e visualizza la telemetria
Questa sezione descrive come eseguire il deployment di un'applicazione di esempio, indirizzarla all'endpoint OTLP del Collector e visualizzare la telemetria in Google Cloud. L'applicazione di esempio è un piccolo generatore che esporta tracce, log e metriche al raccoglitore.
Se hai già un'applicazione instrumentata con un SDK OpenTelemetry, puoi indirizzarla all'endpoint del Collector.
Per eseguire il deployment dell'applicazione di esempio, esegui il seguente comando:
kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/otlp-k8s-ingest/main/sample/app.yaml
Per indirizzare le applicazioni esistenti che utilizzano l'SDK OpenTelemetry al campo
imposta la variabile di ambiente OTEL_EXPORTER_OTLP_ENDPOINT
su
http://opentelemetry-collector.opentelemetry.svc.cluster.local:4317
.
Dopo alcuni minuti, la telemetria generata dall'applicazione inizia a passare attraverso il raccoglitore alla console Google Cloud per ogni segnale.