Questo documento descrive come eseguire il collettore OpenTelemetry creato da Google su Container-Optimized OS per raccogliere log, metriche e tracce OTLP dalle applicazioni strumentate ed esportare i dati in Google Cloud.
Prima di iniziare
Per eseguire OpenTelemetry Collector sono necessarie le seguenti risorse:
Un progetto Google Cloud con le API Cloud Monitoring, Cloud Trace API e API Cloud Logging abilitate.
Se non hai un Google Cloud progetto, procedi nel seguente modo:
Nella console Google Cloud , vai a Nuovo progetto:
Nel campo Nome progetto, inserisci un nome per il progetto e poi fai clic su Crea.
Vai a Fatturazione:
Seleziona il progetto appena creato se non è già selezionato nella parte superiore della pagina.
Ti viene chiesto di scegliere un profilo pagamenti esistente o di crearne uno nuovo.
Le API Monitoring, Trace e 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:
Una macchina virtuale (VM) Container-Optimized OS. Se non hai una VM Container-Optimized OS, segui le istruzioni riportate in Creazione e configurazione di istanze.
Un'installazione di
gcloud
. Per informazioni sull'installazione digcloud
, consulta Installare Google Cloud CLI.
Configurare le autorizzazioni per il raccoglitore
Per impostazione predefinita, le VM Container-Optimized OS utilizzano l'account di servizio predefinito di Compute Engine,PROJECT_NUMBER-compute@developer.gserviceaccount.com
.
Questo account di servizio di solito dispone dei ruoli IAM (Identity and Access Management)
necessari per scrivere le metriche e i log descritti in questo documento:
- Monitoring Metric Writer (
roles/monitoring.metricWriter
) - Logging Log Writer (
roles/logging.logWriter
)
Se stai configurando un account di servizio personalizzato per la tua istanza, consulta Gestire l'accesso ai service account.
Esegui il deployment del raccoglitore
Per eseguire Google-Built OpenTelemetry Collector, devi fornire un file di configurazione per la tua VM Container-Optimized OS. Puoi
utilizzare lo strumento cloud-init
per scrivere un file di configurazione. Di seguito è riportato un file
cloud-init
consigliato per l'utilizzo del raccoglitore creato da Google:
Ti consigliamo di creare una rete Docker bridge
per facilitare
la comunicazione tra il container Collector e qualsiasi altro container sul
sistema che invierà la telemetria. Per creare la rete,
esegui questo comando:
docker network create -d bridge otel
Esegui il container Collector con questo comando:
Il comando precedente esegue le seguenti operazioni:
- Esegue il container del raccoglitore in background.
- Collega il container Collector alla rete bridge otel creata in precedenza. Altri contenitori possono essere collegati al bridge per inviare dati di telemetria.
- Monta il file di configurazione sul container in modo che sia possibile accedervi per configurare il raccoglitore.
Configura il raccoglitore
Forniamo una configurazione di OpenTelemetry Collector da utilizzare con il raccoglitore creato da Google. Questa configurazione è progettata per fornire volumi elevati di metriche, log e tracce OTLP. Questa configurazione è progettata anche per prevenire problemi comuni di importazione. Puoi aggiungere elementi alla configurazione, ma ti consigliamo vivamente di non rimuovere elementi.
Questa sezione descrive la configurazione fornita, i componenti chiave come esportatori, processori, ricevitori e altri componenti disponibili.
Configurazione del raccoglitore fornita
Puoi trovare la configurazione del raccoglitore nella directorygoogle-built-opentelemetry-collector
nel
repository opentelemetry-operations-collector
:
Esportatori
La configurazione del raccoglitore include i seguenti esportatori:
Esportatore
googlecloud
per log e tracce. Questo esportatore è configurato con un nome log predefinito.googlemanagedprometheus
per le metriche. Questo esportatore non richiede alcuna configurazione, ma sono disponibili opzioni di configurazione. Per informazioni sulle opzioni di configurazione per l'esportatoregooglemanagedprometheus
, consulta Introduzione a OpenTelemetry Collector nella documentazione di Google Cloud Managed Service per Prometheus.
Processori
La configurazione di Collector include i seguenti processori:
batch
: Configurato per raggruppare le richieste di telemetria al numero massimo di voci per richiesta o all'intervallo minimo di 5 secondi (a seconda di quale si verifica per prima). Google Cloud Google Cloudmemory_limiter
: Limita l'utilizzo della memoria del raccoglitore per evitare arresti anomali per esaurimento della memoria eliminando i punti dati quando viene superato il limite.resourcedetection
: Rileva automaticamente le etichette delle risorse Google Cloud , ad esempioproject_id
.
Ricevitori
La configurazione del raccoglitore include solo il
ricevitore otlp
.
Per informazioni sull'instrumentazione delle applicazioni per l'invio di tracce e metriche OTLP 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 attivare un'esperienza avanzata in Google Cloud Observability. Per un elenco completo dei componenti disponibili, consulta Componenti nel repository opentelemetry-operations-collector
.
Per richiedere modifiche o aggiunte ai componenti disponibili,
apri una richiesta di funzionalità
nel repository opentelemetry-operations-collector
.
Generare dati di telemetria
Puoi testare la tua configurazione utilizzando lo
strumento telemetrygen
open source.
Il progetto OpenTelemetry fornisce un container nel registro dei container di GitHub.
Prima di eseguire i seguenti comandi, sostituisci i seguenti segnaposto, se hai modificato i valori predefiniti utilizzati nei comandi Docker in Deploy the Collector:
- otel: il nome specificato durante la creazione della rete Docker
bridge
. - opentelemetry-collector: il nome specificato durante l'esecuzione del container.
Generare log
Per generare log utilizzando lo strumento telemetrygen
, esegui il comando seguente:
docker run \ --net=otel \ ghcr.io/open-telemetry/opentelemetry-collector-contrib/telemetrygen:v0.105.0 \ logs --otlp-insecure --rate=3 --duration=5m \ --otlp-endpoint=opentelemetry-collector:4317
Generare metriche
Per generare metriche utilizzando lo strumento telemetrygen
, esegui il seguente
comando:
docker run \ --net=otel \ ghcr.io/open-telemetry/opentelemetry-collector-contrib/telemetrygen:v0.105.0 \ metrics --otlp-insecure --rate=0.1 --duration=5m \ --otlp-endpoint=opentelemetry-collector:4317
Generare metriche
Per generare tracce utilizzando lo strumento telemetrygen
, esegui il seguente
comando:
docker run \ --net=otel \ ghcr.io/open-telemetry/opentelemetry-collector-contrib/telemetrygen:v0.105.0 \ traces --otlp-insecure --rate=3 --duration=5m \ --otlp-endpoint=opentelemetry-collector:4317
Dopo alcuni minuti, la telemetria generata dall'applicazione inizia a fluire tramite il Collector alla console Google Cloud per ogni segnale.
Visualizza telemetria
Il raccoglitore OpenTelemetry integrato in Google invia metriche, log e tracce dalle applicazioni strumentate a Google Cloud Observability. Il raccoglitore invia anche metriche di auto-osservabilità. Le sezioni seguenti descrivono come visualizzare questa telemetria.
Visualizzare le metriche
Il raccoglitore OpenTelemetry integrato in Google raccoglie le metriche Prometheus che puoi visualizzare utilizzando Esplora metriche. Le metriche raccolte dipendono dall'instrumentazione dell'app, anche se il raccoglitore creato da Google scrive anche alcune metriche proprie.
Per visualizzare le metriche raccolte da Google-Built OpenTelemetry Collector, segui questi passaggi:-
Nella console Google Cloud , vai alla pagina leaderboard Esplora metriche:
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,
digita
Prometheus Target
nella 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 da OpenTelemetry Collector integrato in 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 al periodo di allineamento, il che comporta la visualizzazione di una frequenza nel grafico. Per ulteriori informazioni, 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 pagina Esplora tracce:
Puoi trovare questa pagina anche utilizzando la barra di ricerca.
- 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.
- 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 ulteriori informazioni sull'utilizzo di Esplora tracce, consulta Trovare ed esplorare le tracce.
Visualizza i log
Da Esplora log puoi esaminare i log e visualizzare le tracce associate, se esistenti.
-
Nella Google Cloud console, vai alla pagina 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 strumentata. Per visualizzare i dettagli, espandi la voce di log.
Fai clic su
Trace 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 ulteriori informazioni sull'utilizzo di Esplora log, vedi Visualizza i log utilizzando Esplora log.
Osservare ed eseguire il debug del raccoglitore
Il raccoglitore OpenTelemetry integrato in Google fornisce automaticamente metriche di auto-osservabilità per aiutarti a monitorare le sue prestazioni e garantire il tempo di attività continuo della pipeline di importazione OTLP.
Per monitorare il raccoglitore, installa il dashboard di esempio per il raccoglitore. Questa dashboard offre informazioni sintetiche su diverse metriche del raccoglitore, 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.
- Fai clic su Modelli di dashboard.
- Cerca la dashboard OpenTelemetry Collector.
- (Facoltativo) Per visualizzare l'anteprima della dashboard, selezionala.
Fai clic su playlist_add Aggiungi dashboard all'elenco e poi completa la finestra di dialogo.
La finestra di dialogo ti consente di selezionare il nome della dashboard e aggiungere etichette alla dashboard.
Per saperne di più sull'installazione delle dashboard, vedi Installare un modello di dashboard.