Puoi scegliere l'approccio di instrumentazione più efficace per la tua applicazione in base alla tua Google Cloud piattaforma di calcolo e ai requisiti di telemetria. Questa guida fornisce consigli per Google Kubernetes Engine (GKE), Compute Engine e Cloud Run, aiutandoti a scegliere tra Google-Built OpenTelemetry Collector, Ops Agent ed esportazione OpenTelemetry diretta in-process.
Questo documento fornisce consigli generali, nonché indicazioni per le seguenti piattaforme:
Per le applicazioni di esempio, consulta Esempi e guide di implementazione.
I consigli riportati in questa pagina non sono le uniche soluzioni e possono funzionare anche altri approcci. Per ulteriori indicazioni, contatta l'assistenza clienti Google Cloud.
Consigli generali
Questa sezione contiene consigli generali su come instrumentare l'applicazione. Per indicazioni specifiche per la piattaforma, consulta Consigli sulla piattaforma.
Dati di log: ti consigliamo di utilizzare un framework che possa essere configurato per generare log strutturati in formato JSON per Cloud Logging. Per la scrittura dei dati di log, ti consigliamo di:
Dati delle metriche: ti consigliamo di utilizzare le librerie client OpenTelemetry o Prometheus:
- OpenTelemetry fornisce un framework open source indipendente dal fornitore e librerie client per instrumentare le applicazioni per le metriche.
- Le librerie client Prometheus (Go, Java, Python e così via) generano metriche che possono essere esposte in un endpoint HTTP ed eseguite da un agente.
Dati di Trace: ti consigliamo di utilizzare OpenTelemetry per generare dati di traccia distribuiti dal codice dell'applicazione.
Architetture di raccolta OpenTelemetry
Quando instrumenti un'applicazione con le librerie OpenTelemetry, puoi indirizzare la telemetria tramite OpenTelemetry Collector autonomo o esportare direttamente dal processo dell'applicazione. Il file di configurazione di OpenTelemetry Collector controlla la modalità di ricezione, elaborazione ed esportazione della telemetria da parte del raccoglitore. In generale, ti consigliamo di configurare i raccoglitori in modo che ricevano ed esportino la telemetria utilizzando OpenTelemetry Protocol (OTLP). L'API Telemetry (OTLP) implementa questo protocollo.
Esistono due approcci fondamentali per l'invio della telemetria al tuo Google Cloud progetto:
Esportazione basata sul raccoglitore (indipendente dal fornitore): instrumenti il codice dell'applicazione con l'SDK OpenTelemetry e utilizzi l'esportatore OTLP in-process per inviare i dati a un raccoglitore OpenTelemetry, come Google-Built OpenTelemetry Collector o un ricevitore Ops Agent. L'agente di raccolta riceve la telemetria e la inoltra al tuo Google Cloud progetto. Il codice dell'applicazione rimane completamente indipendente dal fornitore.
Esportazione diretta (specifica del fornitore): instrumenti il codice dell'applicazione con l'SDK OpenTelemetry e configuri OpenTelemetry per inviare la telemetria al tuo progetto utilizzando l'API Telemetry. Non è necessario fare il deployment di un agente di raccolta, ma il codice dell'applicazione include dipendenze specifiche del fornitore.
Ti consigliamo di utilizzare un agente di raccolta OpenTelemetry quando l'ambiente di calcolo ne supporta uno. Per gli ambienti in cui l'esecuzione di un processo di raccolta separato non è pratica, utilizza l'esportazione diretta in-process.
Consigli sulla piattaforma
Poiché Google Cloud gli ambienti di calcolo hanno un ciclo di vita e funzionalità sidecar diversi, il pattern di raccolta ottimale varia in base alla piattaforma. Le sezioni seguenti forniscono consigli specifici per l'ambiente di deployment.
GKE
Per informazioni generali su GKE, consulta Panoramica di GKE.
| Tipo | Suggerimento |
|---|---|
| Metriche | Ti consigliamo di utilizzare Google Cloud Managed Service per Prometheus. Per l'instrumentazione, esegui una delle seguenti operazioni:
|
| Tracce | Segui questi passaggi:
|
| Log | Configura l'app in modo che generi log strutturati in formato JSON in GKE raccoglie automaticamente i log scritti in |
Compute Engine
Per informazioni generali su Compute Engine, consulta Istanze di macchine virtuali.
| Tipo | Suggerimento |
|---|---|
| Metriche e tracce | Segui questi passaggi:
In alternativa, se vuoi configurare la raccolta solo per le metriche in formato Prometheus, utilizza il ricevitore Prometheus di Ops Agent per raccogliere le metriche instrumentate utilizzando le librerie client Prometheus o l'SDK OpenTelemetry. |
| Log | Segui questi passaggi:
|
Cloud Run
Per informazioni generali su Cloud Run, consulta Che cos'è Cloud Run.
| Tipo | Suggerimento |
|---|---|
| Metriche e tracce | Segui questi passaggi:
In alternativa, se vuoi configurare la raccolta solo per le metriche in formato Prometheus, utilizza il sidecar Prometheus per Cloud Run per raccogliere le metriche instrumentate utilizzando le librerie client Prometheus o l'SDK OpenTelemetry. |
| Log | Configura l'app in modo che generi log strutturati in formato JSON in Cloud Run raccoglie automaticamente i log scritti in |
Cloud Run Functions
Per informazioni generali su Cloud Run Functions, consulta Panoramica di Cloud Run Functions.
| Tipo | Suggerimento |
|---|---|
| Metriche | La scrittura diretta dei dati delle metriche non è supportata in Cloud Run Functions. Puoi generare metriche basate sui log. |
| Tracce | Utilizza l'SDK OpenTelemetry e l'esportatore Cloud Trace per il tuo linguaggio. |
| Log | Configura l'app in modo che generi log strutturati in formato JSON in Cloud Run Functions raccoglie automaticamente i log scritti in |
App Engine
Per informazioni generali su App Engine, consulta Panoramica di App Engine.
| Tipo | Suggerimento |
|---|---|
| Metriche | Utilizza l' SDK OpenTelemetry e l'esportatore Cloud Monitoring per il tuo linguaggio. |
| Tracce | Utilizza l'SDK OpenTelemetry e l'esportatore Cloud Trace per il tuo linguaggio. |
| Log | Configura l'app in modo che generi log strutturati in formato JSON in App Engine raccoglie automaticamente i log scritti in |
Esempi e guide di implementazione
La panoramica degli esempi descrive l'architettura e i ruoli Identity and Access Management richiesti per i seguenti esempi di codice basati sul raccoglitore:
Eseguire la migrazione dall'esportatore Trace all'endpoint OTLP descrive come aggiornare un'applicazione che utilizza l'esportazione diretta per inviare dati di traccia in formato OTLP.
Instrumentare le applicazioni di AI generativa descrive come instrumentare o abilitare gli agenti di AI generativa creati con LangGraph o il framework Agent Development Kit (ADK).
Documentazione di OpenTelemetry
Questa sezione fornisce link all'SDK OpenTelemetry e agli esportatori per OTLP, Cloud Trace e Cloud Monitoring.
Riferimenti generali:
Go
Java
JavaScript
- SDK JavaScript
- Esportatore OTLP JavaScript
- Esportatore Cloud Trace JavaScript
- Esportatore Cloud Monitoring JavaScript
Python
- SDK Python
- Esportatore OTLP Python
- Esportatore Cloud Trace Python
- Esportatore Cloud Monitoring Python