Panoramica del Collector OpenTelemetry creato da Google

Questo insieme di documenti descrive il Google-Built OpenTelemetry Collector e spiega come eseguire il deployment del raccoglitore per raccogliere tracce, metriche e log OpenTelemetry Protocol (OTLP) dalle applicazioni strumentate ed esportare questi dati in Google Cloud Observability e altri backend.

Il raccoglitore OpenTelemetry creato da Google è una build open source pronta per la produzione del raccoglitore OpenTelemetry upstream, creata con i componenti del raccoglitore OpenTelemetry upstream. OpenTelemetry, che fa parte della Cloud Native Computing Foundation, fornisce API, librerie e SDK open source per raccogliere tracce distribuite, metriche e log per il monitoraggio delle applicazioni.

Il raccoglitore OpenTelemetry integrato in Google ti consente di inviare tracce, metriche e log OTLP correlati a Google Cloud Observability e ad altri backend da applicazioni strumentate utilizzando gli SDK OpenTelemetry. Collector acquisisce anche i metadati delle risorse, in modo da poter correlare i dati sul rendimento dell'applicazione con i dati di telemetria dell'infrastruttura. Google Cloud L'utilizzo del collettore creato da Google con Google Cloud Observability fornisce informazioni per migliorare le prestazioni delle tue applicazioni e della tua infrastruttura. Per saperne di più sul raccoglitore, consulta la Descrizione del raccoglitore OpenTelemetry creato da Google.

Utilizzare il raccoglitore OpenTelemetry integrato in Google

Puoi utilizzare il raccoglitore creato da Google per raccogliere dati di telemetria dalle tue applicazioni in esecuzione su Kubernetes (incluso Google Kubernetes Engine), Container-Optimized OS o container autonomi. I documenti di questa sezione descrivono come configurare e implementare il raccoglitore creato da Google nei seguenti ambienti:

Se non hai un'applicazione pronta per utilizzare il raccoglitore, puoi implementare la demo di OpenTelemetry con il raccoglitore creato da Google. Per saperne di più, consulta Prova la demo di OpenTelemetry.

Per informazioni sull'utilizzo della strumentazione OpenTelemetry per generare tracce, metriche e log dalle tue applicazioni, consulta i seguenti documenti:

Descrizione del raccoglitore OpenTelemetry integrato in Google

Google-Built OpenTelemetry Collector è creato utilizzando componenti e strumenti OpenTelemetry upstream, mentre viene creato e recuperato interamente dall'infrastruttura di build-test-release di Google (Artifact Registry). Il raccoglitore creato da Google è compatibile con una build di OpenTelemetry Collector dal repository upstream. È anche ospitato come immagine Docker per un deployment flessibile su qualsiasi sistema basato su container, inclusi Kubernetes e GKE.

Il raccoglitore creato da Google fornisce un pacchetto curato da Google con i componenti di cui la maggior parte degli utenti avrà bisogno per un'esperienza di osservabilità avanzata su Google Cloud. Non devi selezionare i componenti e creare manualmente il tuo raccoglitore. Utilizzando Collector creato da Google, puoi:

  • Raccogli i metadati per le risorse Google Cloud in modo da poter correlare i dati sul rendimento delle applicazioni con i dati di telemetria dell'infrastruttura.
  • Instrada i dati di telemetria a Google Cloud Observability o al backend che preferisci utilizzando gli esportatori, inclusi i backend che supportano in modo nativo OpenTelemetry.
  • Semplifica l'onboarding con configurazioni consigliate e automonitoraggio delle best practice, inclusi controlli di integrità ed elaborazione batch.
  • Utilizza l'immagine Docker ospitata per un deployment flessibile su qualsiasi sistema basato su container, inclusi Kubernetes e GKE.

Best practice

OpenTelemetry gestisce un elenco di best practice per la configurazione di OpenTelemetry Collector e per lo scaling di Collector. Questa sezione fornisce alcuni consigli aggiuntivi.

Utilizzare l'estensione di controllo di integrità

L'estensione di controllo di integrità abilita un URL HTTP che può essere testato per controllare lo stato di OpenTelemetry Collector. L'utilizzo di questa estensione offre i seguenti vantaggi:

  • Rilevamento tempestivo dei problemi: i controlli di integrità facilitano il monitoraggio proattivo dello stato del raccoglitore, consentendo il rilevamento di potenziali problemi prima che influiscano negativamente sui dati di telemetria. Questa misura preventiva contribuisce a garantire l'affidabilità della pipeline di osservabilità.
  • Risoluzione dei problemi migliorata: quando si verificano problemi, i controlli di integrità offrono informazioni preziose sullo stato attuale del raccoglitore. Queste informazioni semplificano la procedura di diagnosi e risoluzione, riducendo i tempi di inattività e ottimizzando gli interventi di risoluzione dei problemi.
  • Maggiore affidabilità: il monitoraggio continuo dell'integrità del raccoglitore garantisce un funzionamento coerente e previene guasti imprevisti. Questa misura proattiva migliora l'affidabilità complessiva del sistema di osservabilità e riduce al minimo il rischio di perdita di dati o lacune nei dati di telemetria.

Su Kubernetes e GKE, l'estensione di controllo dell'integrità è compatibile con i probe di attività e idoneità di Kubernetes. Per informazioni sulla configurazione di questi probe, consulta Best practice di Kubernetes: configurazione dei controlli di integrità con probe di attività e idoneità.

Su Cloud Run, una singola estensione di controllo di integrità può fungere da endpoint sia per i probe di avvio sia per quelli di attività nella configurazione del servizio Cloud Run.

Utilizzare il batch processor

Il processore batch raccoglie tracce, metriche o log e li raggruppa in batch per la trasmissione. L'utilizzo del processore batch offre i seguenti vantaggi:

  • Riduce al minimo le connessioni in uscita: raggruppando le trasmissioni di dati in batch, OpenTelemetry Collector riduce significativamente il numero di connessioni in uscita. Questo approccio consolidato riduce l'utilizzo della quota e ha il potenziale per ridurre i costi di rete complessivi.
  • Compressione dei dati migliorata: il batching consente una compressione dei dati più efficiente, riducendo le dimensioni complessive dei dati trasmessi.
  • Flessibilità nella strategia di batching: il supporto del batching basato sulle dimensioni e sul tempo offre flessibilità per l'ottimizzazione in diversi scenari. Il batch basato sulle dimensioni garantisce che i batch raggiungano una determinata dimensione prima di essere inviati, mentre il batch basato sul tempo invia i batch dopo che è trascorso un intervallo di tempo specifico. Questa flessibilità ti consente di ottimizzare la strategia di batch in modo che sia in linea con le caratteristiche specifiche dei tuoi dati e con i requisiti particolari della tua applicazione.

Utilizzare il fornitore googlesecretmanager

Il provider googlesecretmanager ti consente di archiviare le informazioni sensibili necessarie ai file di configurazione in Secret Manager, un servizio progettato appositamente per archiviare, accedere e gestire in modo sicuro i dati sensibili. L'utilizzo del provider googlesecretmanager offre i seguenti vantaggi:

  • Sicurezza avanzata: i file di configurazione non contengono informazioni sensibili come le password.
  • Rischio di esposizione ridotto: Secret Manager recupera i secret durante l'inizializzazione del raccoglitore, il che impedisce che i secret in testo non crittografato vengano registrati accidentalmente nei log.

Per informazioni sull'utilizzo di questo provider, vedi Gestire i secret nella configurazione del raccoglitore.

Note di rilascio

La versione di OpenTelemetry Collector integrata in Google è sincronizzata con la versione upstream di OpenTelemetry Collector. La versione attuale è v0.129.0; l'immagine Docker corrispondente, archiviata in Artifact Registry, è us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.129.0. Per ogni nuova versione, in questa pagina sono incluse le modifiche più pertinenti per gli utenti di Google Cloud .

Supportabilità

Per tutti i problemi lato client di Google-Built OpenTelemetry Collector, incluse richieste di funzionalità, segnalazioni di bug e domande generali, apri un problema nel repository GitHub appropriato. Questi repository sono monitorati da Google e i problemi vengono valutati e risolti al meglio delle possibilità.

  • Repository di packaging del raccoglitore OpenTelemetry creato da Google, per problemi relativi a quanto segue:

    • Imballaggio
    • Deployment il giorno Google Cloud
    • Autenticazione all'interno di Google Cloud
    • Richieste di aggiunta di nuovi componenti OpenTelemetry
  • Repository OpenTelemetry Collector Contrib, per problemi relativi a quanto segue:

    • Componenti OpenTelemetry specifici di Google, ad esempio:
      • googlecloudexporter
      • googlemanagedprometheusexporter
      • googleclientauthextension
      • resourcedetectionprocessor
    • Componenti OpenTelemetry non specifici di Google gestiti dalla community upstream

Per problemi relativi all'utilizzo dei servizi e delle API Google Cloud Observability da parte del raccoglitore OpenTelemetry integrato in Google, come errori del server o quote, contatta l'assistenza clienti cloud.

Prezzi

Non è previsto alcun costo per il deployment e l'utilizzo del raccoglitore OpenTelemetry integrato in Google.

Quando invii dati di telemetria a Google Cloud, la fatturazione viene eseguita in base al volume di importazione. Per informazioni sui costi associati all'importazione di trace, log e metriche di Google Cloud Managed Service per Prometheus, consulta Prezzi di Google Cloud Observability.

Prova la demo di OpenTelemetry

Questa sezione descrive come eseguire il deployment e l'esecuzione della demo di OpenTelemetry per Google Cloud con il raccoglitore OpenTelemetry integrato in Google.

Questa sezione è facoltativa. Se vuoi integrare il raccoglitore creato da Google nelle tue implementazioni, consulta i seguenti documenti:

Prima di iniziare

La demo di OpenTelemetry richiede un cluster Kubernetes con la federazione delle identità dei carichi di lavoro configurata. Per informazioni sulla configurazione della federazione delle identità per i workload per la demo di OpenTelemetry, consulta Prerequisiti di Workload Identity.

Aggiorna la demo per utilizzare Collector creato da Google

Per impostazione predefinita, la demo di OpenTelemetry utilizza OpenTelemetry Collector upstream. Per utilizzare invece il raccoglitore OpenTelemetry integrato in Google, procedi nel seguente modo:

  1. Clona il repository demo di OpenTelemetry:

    git clone https://github.com/GoogleCloudPlatform/opentelemetry-demo.git
    
  2. Vai alla directory kubernetes.

    cd kubernetes
    
  3. Modifica il file opentelemetry-demo.yaml per sostituire la riga dell'immagine di Collector da utilizzare. La riga è simile alla seguente, anche se la versione potrebbe essere diversa:

    image: "otel/opentelemetry-collector-contrib:0.108.0"
    

    Sostituisci il valore del campo image: con us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.129.0, in modo che la riga sia simile alla seguente, poi salva il file:

    image: "us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.129.0"
    

Esegui il deployment della demo

Esegui il deployment della demo applicando il file opentelemetry-demo.yaml aggiornato:

kubectl apply --namespace otel-demo -f opentelemetry-demo.yaml

Connettiti alla demo

Dopo aver applicato la configurazione aggiornata, puoi inoltrare i dati a una porta locale. Ad esempio, per connetterti alla demo all'indirizzo localhost:8080, emetti il seguente comando:

kubectl port-forward --n otel-demo svc/opentelemetry-demo-frontendproxy 8080:8080

A questo punto, puoi utilizzare il browser per connetterti alla demo all'indirizzo localhost:8080.

Visualizzare la telemetria

La demo di OpenTelemetry invia metriche, tracce e log a Google Cloud utilizzando il raccoglitore OpenTelemetry integrato in Google. Per informazioni sulla telemetria specifica inviata dalla demo, consulta la sezione Visualizzazione della telemetria nella documentazione della demo.

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:
  1. Nella console Google Cloud , vai alla pagina  Esplora metriche:

    Vai a Esplora metriche

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.

  2. Nella barra degli strumenti della console Google Cloud , seleziona il tuo Google Cloud progetto. Per le configurazioni di App Hub, seleziona il progetto host di App Hub o il progetto di gestione della cartella app.
  3. 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:
    1. Nel menu Risorse attive, seleziona Destinazione Prometheus.
    2. 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.
    3. Fai clic su Applica.
  4. Configura la modalità di visualizzazione dei dati.

    Quando le misurazioni per 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:

  1. Nella Google Cloud console, vai alla pagina Esplora tracce:

    Vai a Trace Explorer

    Puoi trovare questa pagina anche utilizzando la barra di ricerca.

  2. Nella barra degli strumenti della console Google Cloud , seleziona il tuo Google Cloud progetto. Per le configurazioni di App Hub, seleziona il progetto host di App Hub o il progetto di gestione della cartella app.
  3. Nella sezione della tabella della pagina, seleziona una riga.
  4. 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.

  5. 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.

  1. Nella Google Cloud console, vai alla pagina Esplora log:

    Vai a Esplora log

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.

  2. Individua una voce di log dell'app strumentata. Per visualizzare i dettagli, espandi la voce di log.

  3. 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 saperne di più sull'utilizzo di Esplora log, consulta Visualizzare i log utilizzando Esplora log.