Questo documento descrive come eseguire l'agente di raccolta OpenTelemetry creato da Google su Google Kubernetes Engine per raccogliere log, metriche e tracce OTLP dalle applicazioni instrumentate e quindi esportare questi dati in Google Cloud.
Prima di iniziare
L'esecuzione del raccoglitore OpenTelemetry creato da Google richiede le seguenti risorse:
- Accedi al tuo Google Cloud account. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
-
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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. 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.enablepermission. 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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. 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.enablepermission. Learn how to grant roles.Per un cluster Kubernetes. Se non hai un cluster Kubernetes, segui le istruzioni nella guida rapida per GKE.
I seguenti strumenti a riga di comando:
gcloudkubectl
Gli strumenti
gcloudekubectlfanno parte di Google Cloud CLI. Per informazioni sulla loro installazione, consulta Gestire i componenti di Google Cloud CLI. Per visualizzare i componenti di gcloud CLI installati, esegui questo comando:gcloud components list
Configurare le autorizzazioni per l'agente di raccolta
Se hai disattivato Workload Identity GKE, puoi saltare questa sezione.
Per assicurarti che il account di servizio Kubernetes del raccoglitore OpenTelemetry disponga delle autorizzazioni necessarie per esportare la telemetria, chiedi all'amministratore di concedere i seguenti ruoli IAM al account di servizio Kubernetes del raccoglitore OpenTelemetry nel tuo progetto:
-
Monitoring Metric Writer (
roles/monitoring.metricWriter) -
Logging Log Writer (
roles/logging.logWriter) -
Cloud Trace Agent (
roles/cloudtrace.agent)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
L'amministratore potrebbe anche essere in grado di concedere al account di servizio Kubernetes del raccoglitore OpenTelemetry le autorizzazioni richieste tramite ruoli personalizzati o altri ruolipredefiniti.
Per configurare le autorizzazioni, utilizza i seguenti
add-iam-policy-binding
comandi:
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
Prima di eseguire i comandi, sostituisci le seguenti variabili:
- PROJECT_ID: l'identificatore del progetto.
- PROJECT_NUMBER: il Google Cloud numero di progetto.
Eseguire il deployment del raccoglitore
La pipeline del raccoglitore può essere sottoposta a deployment direttamente dagli esempi verificati forniti dal repository Self-Managed OTLP Kubernetes Ingestion. Puoi eseguire il deployment direttamente da GitHub con i seguenti comandi dopo aver sostituito PROJECT_ID con l'ID del tuo Google Cloud progetto:
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 -
Prima di eseguire i comandi, sostituisci le seguenti variabili:
- PROJECT_ID: l'identificatore del progetto.
- PROJECT_NUMBER: l'identificatore numerico del progetto.
Configurare l'agente di raccolta
Ti forniamo una configurazione del raccoglitore OpenTelemetry da utilizzare con il raccoglitore creato da Google. Questa configurazione è progettata per fornire volumi elevati di metriche, log e tracce OTLP con metadati GKE e Kubernetes coerenti allegati. Questa configurazione è progettata anche per prevenire problemi comuni di importazione. Puoi aggiungere elementi alla configurazione, ma ti consigliamo vivamente di non rimuoverli.
Questa sezione descrive la configurazione fornita, i componenti chiave come esportatori, processori, ricevitori e altri componenti disponibili.
Configurazione dell'agente di raccolta fornita
Puoi trovare la configurazione dell'agente di raccolta per gli ambienti Kubernetes nel repositoryotlp-k8s-ingest:
Esportatori
La configurazione dell'agente di raccolta include i seguenti esportatori:
googlecloudesportatore per log e tracce. Questo esportatore è configurato con un nome di log predefinito.googlemanagedprometheusesportatore per le metriche. Questo esportatore non richiede alcuna configurazione, ma sono disponibili opzioni di configurazione. Per informazioni sulle opzioni di configurazione dell'esportatoregooglemanagedprometheus, consulta la sezione Inizia a utilizzare l'agente di raccolta OpenTelemetry nella documentazione di Google Cloud Managed Service per Prometheus.
Processori
La configurazione dell'agente di raccolta include i seguenti processori:
batch: configurato per raggruppare le richieste di telemetria al Google Cloud numero massimo di voci per richiesta o all' Google Cloud intervallo minimo di ogni 5 secondi (a seconda di quale si verifica per prima).memory_limiter: limita la memoria utilizzata dell'agente di raccolta per evitare arresti anomali dovuti a memoria insufficiente eliminando i punti dati quando viene superato il limite.resourcedetection: rileva automaticamente Google Cloud le etichette delle risorse comeproject_idecluster_name.k8sattributes: mappa automaticamente gli attributi delle risorse Kubernetes alle etichette di telemetria.transform: rinomina le etichette delle metriche che sono in conflitto con le etichette delle Google Cloud risorse monitorate.
Ricevitori
La configurazione dell'agente di raccolta include solo il
otlp ricevitore.
Per informazioni sull'instrumentazione delle applicazioni per inviare tracce OTLP
e metriche all'endpoint OTLP del raccoglitore, consulta
Scegliere un approccio di instrumentazione.
Componenti disponibili
Il raccoglitore OpenTelemetry creato da Google contiene i componenti di cui la maggior parte degli utenti avrà bisogno per abilitare un'esperienza completa in Google Cloud Observability. Per un elenco completo dei
componenti disponibili, consulta
Componenti
nel opentelemetry-operations-collector repository.
Per richiedere modifiche o aggiunte ai componenti disponibili,
apri una richiesta di funzionalità.
nel repository opentelemetry-operations-collector.
Generare la telemetria
Questa sezione descrive il deployment di un'applicazione di esempio, l'indirizzamento dell'applicazione all'endpoint OTLP del raccoglitore e la visualizzazione della telemetria in Google Cloud. L'applicazione di esempio è un piccolo generatore che esporta tracce, log e metriche nell'agente di raccolta.
Se hai già un'applicazione instrumentata con un SDK OpenTelemetry, puoi indirizzare l'applicazione all'endpoint del raccoglitore.
Per eseguire il deployment dell'applicazione di esempio, esegui questo 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 all'endpoint del raccoglitore, 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 fluire attraverso l'agente di raccolta alla Google Cloud console per ogni indicatore.
Visualizzare la telemetria
Il raccoglitore OpenTelemetry creato da Google invia metriche, log e tracce dalle applicazioni instrumentate a Google Cloud Observability. L'agente di raccolta invia anche metriche di auto-osservabilità. Le sezioni seguenti descrivono come visualizzare questa telemetria.
Visualizzare le metriche
L'agente di raccolta OpenTelemetry creato da Google raccoglie le metriche Prometheus che puoi visualizzare utilizzando Esplora metriche. Le metriche raccolte dipendono dall'instrumentazione dell'app, anche se l'agente di raccolta creato da Google scrive anche alcune metriche proprie.
Per visualizzare le metriche raccolte dall'agente di raccolta OpenTelemetry creato da Google:-
Nella Google Cloud console, vai alla leaderboard Esplora metriche pagina:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.
- Nella barra degli strumenti della console Google Cloud , seleziona il tuo progetto Google Cloud . Per le configurazioni di App Hub, seleziona il progetto host di App Hub o il progetto di gestione della cartella app.
- Nell'elemento Metrica , espandi il menu Seleziona una metrica , inserisci
Prometheus Targetnella barra dei filtri e poi utilizza i sottomenu per selezionare un tipo di risorsa e una metrica specifici:- Nel menu Risorse attive, seleziona Destinazione Prometheus.
- Per selezionare una metrica, utilizza i menu Categorie di metriche attive e Metriche attive.
Le metriche raccolte dall'agente di raccolta OpenTelemetry creato da Google hanno il prefisso
prometheus.googleapis.com. - Fai clic su Applica.
Per aggiungere filtri, che rimuovono le serie temporali dai risultati della query, utilizza l' elemento Filtro.
- Configura la modalità di visualizzazione dei dati.
Quando le misurazioni di una metrica sono cumulative, Metrics Explorer normalizza automaticamente i dati misurati in base a l periodo di allineamento, il che comporta la visualizzazione di una frequenza nel grafico. Per saperne di più, consulta Tipi, tipi e conversioni.
Quando vengono misurati valori interi o doppi, ad esempio con le metriche
counter, Metrics Explorer somma automaticamente tutte le serie temporali. Per modificare questo comportamento, imposta il primo menu della voce Aggregazione su Nessuna.Per ulteriori informazioni sulla configurazione di un grafico, consulta Seleziona le metriche durante l'utilizzo di Esplora metriche.
Visualizzare le tracce
Per visualizzare i dati di traccia:
-
Nella Google Cloud console, vai alla
Esplora tracce pagina:
Puoi trovare questa pagina anche utilizzando la barra di ricerca.
- Nella barra degli strumenti della Google Cloud console, seleziona il tuo Google Cloud progetto. Per le configurazioni di App Hub, seleziona il progetto host di App Hub o il progetto di gestione.
- Nella sezione della tabella della pagina, seleziona una riga.
Nel grafico di Gantt nel riquadro Dettagli su Trace , seleziona un intervallo.
Si apre un riquadro che mostra informazioni sulla richiesta tracciata. Questi dettagli includono il metodo, il codice di stato, il numero di byte e lo user agent del chiamante.
Per visualizzare i log associati a questa traccia, seleziona la scheda Log ed eventi.
La scheda mostra i singoli log. Per visualizzare i dettagli della voce di log, espandila. Puoi anche fare clic su Visualizza log e visualizzare il log utilizzando Esplora log.
Per saperne di più sull'utilizzo di Esplora tracce, consulta Trovare ed esplorare le tracce.
Visualizzare i log
Da Esplora log, puoi esaminare i log e visualizzare anche le tracce associate, se esistenti.
-
Nella Google Cloud console, vai alla pagina segmento Esplora log:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.
Individua una voce di log dell'app instrumentata. Per visualizzare i dettagli, espandi la voce di log.
Fai clic su
Tracce in una voce di log con un messaggio di traccia, quindi seleziona Visualizza dettagli traccia.Si apre un riquadro Dettagli su Trace che mostra la traccia selezionata.
Per saperne di più sull'utilizzo di Esplora log, consulta Visualizza i log utilizzando Esplora log.
Osservare ed eseguire il debug del raccoglitore
Il raccoglitore OpenTelemetry creato da Google fornisce automaticamente metriche di auto-osservabilità per aiutarti a monitorare le sue prestazioni e garantire la continuità dell'uptime della pipeline di importazione OTLP.
Per monitorare l'agente di raccolta, installa la dashboard di esempio per l'agente di raccolta. Questa dashboard offre informazioni rapide su diverse metriche dell'agente di raccolta, tra cui uptime, memoria utilizzata e chiamate API a Google Cloud Observability.
Per installare la dashboard:
-
Nella Google Cloud console, vai alla pagina Dashboard:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.
- Fai clic su Modelli di dashboard.
- Cerca la dashboard Raccoglitore OpenTelemetry.
- (Facoltativo) Per visualizzare l'anteprima della dashboard, selezionala.
Fai clic su playlist_add Aggiungi dashboard all'elenco e completa la finestra di dialogo.
La finestra di dialogo ti consente di selezionare il nome della dashboard e di aggiungere etichette alla dashboard.
Per saperne di più sull'installazione delle dashboard, consulta Installare un modello di dashboard.