Strumento per Cloud Trace

Questo documento fornisce una breve panoramica su come eseguire l'instrumentazione dell'applicazione per Cloud Trace. Per istruzioni dettagliate sulla configurazione di Cloud Trace, consulta le pagine di configurazione specifiche per ogni lingua.

Cloud Trace fornisce dati di tracciamento distribuiti per le tue applicazioni. Dopo aver eseguito l'instrumentazione dell'applicazione, puoi esaminare i dati sulla latenza per una singola richiesta e visualizzare la latenza aggregata per un'intera applicazione nella console Cloud Trace.

Quando instrumentare l'applicazione

Quando i dati di traccia non vengono acquisiti automaticamente, è necessario instrumentare alla tua applicazione per raccogliere questi dati.

Puoi eseguire l'instrumentazione dell'applicazione in modo che raccolga informazioni specifiche dell'applicazione. Diversi framework di strumentazione open source ti consentono di raccogliere metriche, log e tracce dalla tua applicazione e inviare questi dati a qualsiasi fornitore, incluso Google Cloud. Per eseguire la strumentazione dell'applicazione, ti consigliamo di utilizzare un framework di strumentazione indipendente dal fornitore open source, come OpenTelemetry, anziché API o librerie client specifiche per il fornitore e il prodotto.

Per informazioni sulla strumentazione delle applicazioni mediante di strumentazione indipendente dal fornitore, vedi Strumentazione e osservabilità.

Come eseguire l'instrumentazione delle applicazioni

Per instrumentare le applicazioni alla raccolta dei dati di traccia, puoi: uno qualsiasi dei seguenti elementi:

Quando creare gli intervalli

In genere, le librerie client di Cloud Trace gestiscono un contesto traccia globale che contiene informazioni sull'intervallo corrente, incluso l'ID traccia e se la traccia viene campionata. Queste librerie in genere creano span sui confini RPC. Tuttavia, potrebbe essere necessario creare intervalli se la creazione predefinita non è sufficiente per le tue esigenze.

L'intervallo attivo attuale è accessibile dal contesto della traccia globale, che è talvolta avvolte in un oggetto Tracer. Puoi aggiungere informazioni pertinenti alla tua applicazione utilizzando annotazioni e tag personalizzati a intervalli esistenti oppure puoi creare nuovi intervalli figlio con le proprie annotazioni e tag per tracciare il comportamento dell'applicazione con maggiore granularità. Poiché il contesto è globale, le applicazioni multithread che lo aggiornano devono utilizzare l'isolamento appropriato.

Quando fornire le credenziali di autenticazione

In genere, non è necessario fornire le credenziali di autenticazione all'applicazione o specificare l'ID progetto Google Cloud nell'applicazione quando esegui su Google Cloud. Per alcune lingue, è necessario specificare l'ID progetto Google Cloud anche se la pubblicazione avviene su Google Cloud. Inoltre, se usi la modalità Autopilot Google Kubernetes Engine o se abiliti la federazione delle identità per i carichi di lavoro per GKE, devi configurare l'applicazione per utilizzare la federazione delle identità per i carichi di lavoro per GKE.

Se esegui l'applicazione al di fuori di Google Cloud, devi fornire le credenziali di autenticazione. Devi specificare anche all'ID progetto Google Cloud nell'applicazione.

Per informazioni dettagliate, vai alle pagine di configurazione specifiche per ogni lingua.

Come forzare il tracciamento di una richiesta

A meno che l'applicazione non campiona sempre ogni intervallo, non è possibile, in generale, forzare il tracciamento end-to-end di una richiesta poiché ogni componente di una richiesta end-to-end fa il proprio decisione sul campionamento. Tuttavia, puoi influenzare decisione aggiungendo all'intestazione di traccia un flag sampled, con questo flag impostato su true. Questa impostazione è un suggerimento per i componenti secondari per campionare la richiesta. Per ulteriori informazioni sulle intestazioni di traccia, consulta Protocolli per la propagazione del contesto.

Per i componenti downstream di cui possiedi il codice, devi determinare se la logica di strumentazione rispetta il flag sampled. Ad esempio, quando utilizzi OpenTelemetry per la strumentazione, puoi usare il campionatore ParentBased per garantire che il flag campionato padre venga rispettato.

I servizi Google Cloud che registrano le informazioni di monitoraggio in Cloud Trace tipicamente accettano il flag di campionamento principale come suggerimento. Tuttavia, la maggior parte dei servizi applica anche un limite di frequenza al campionamento. Ogni servizio Google Cloud determina se supporta il tracciamento, il modo in cui il campionamento padre e il limite di frequenza per il campionamento.

Come correlare i dati di metriche e traccia

Puoi correlare i dati delle metriche con valore di distribuzione con tracce mediante l'aggiunta di esempi ai punti dati delle metriche. A condizione che tu completi i passaggi di configurazione necessari, OpenTelemetry, la libreria di strumentazione consigliata, aggiunge automaticamente questi esemplari. Per ulteriori informazioni, consulta Correlare metriche e tracce utilizzando gli esempi.

Configura il progetto e la piattaforma

  1. Assicurati che l'API Cloud Trace sia abilitata.

    Per impostazione predefinita, l'Cloud Trace API è abilitata nei progetti Google Cloud e non è richiesta alcuna azione da parte tua. Tuttavia, i vincoli di sicurezza definiti dalla tua organizzazione potrebbero aver disabilitato l'API. Per informazioni sulla risoluzione dei problemi, consulta Sviluppare applicazioni in un ambiente Google Cloud vincolato.

    Enable the Cloud Trace API.

    Enable the API

  2. Configura la tua piattaforma.

    Puoi utilizzare Cloud Trace su Google Cloud e altre piattaforme.

    • Google Cloud: quando l'applicazione è in esecuzione su Google Cloud, non è necessario fornire le credenziali di autenticazione sotto forma di account di servizio alla libreria client. Tuttavia, per assicurarti che la piattaforma Google Cloud disponga Ambito di accesso all'API Cloud Trace in un bucket in cui è abilitato il controllo delle versioni.

      Per le seguenti configurazioni, le impostazioni di ambito di accesso predefinite includono l'ambito di accesso dell'API Cloud Trace:

      Se utilizzi ambiti di accesso personalizzati, devi assicurarti che sia abilitato l'ambito di accesso dell'API Cloud Trace. Ad esempio, se utilizzi Google Cloud CLI per creare un cluster GKE e se specifichi il flag --scopes, assicurati che l'ambito includa trace.append. Il comando seguente illustra l'impostazione del flag --scopes:

      gcloud container clusters create example-cluster-name --scopes=https://www.googleapis.com/auth/trace.append
    • Esecuzione locale e altrove: se l'applicazione viene eseguita al di fuori di Google Cloud, devi fornire le credenziali di autenticazione sotto forma di un account di servizio alla libreria client. All'account di servizio deve essere concesso il ruolo Agente Cloud Trace (roles/cloudtrace.agent). Per informazioni sui ruoli, consulta Controllare l'accesso con IAM.

      Le librerie client di Google Cloud utilizzano Credenziali predefinite dell'applicazione (ADC) per trovare le credenziali dell'applicazione. Puoi fornire queste credenziali in uno di tre modi:

      • Esegui gcloud auth application-default login

      • Posiziona l'account di servizio in un percorso predefinito per il sistema operativo. Di seguito sono elencati i percorsi predefiniti per Windows e Linux:

        • Windows: %APPDATA%/gcloud/application_default_credentials.json

        • Linux: $HOME/.config/gcloud/application_default_credentials.json

      • Imposta la variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS su il percorso del tuo account di servizio:

        Linux/macOS

          export GOOGLE_APPLICATION_CREDENTIALS=path-to-your-service-accounts-private-key

        Windows

          set GOOGLE_APPLICATION_CREDENTIALS=path-to-your-service-accounts-private-key

        PowerShell:

          $env:GOOGLE_APPLICATION_CREDENTIALS="path-to-your-service-accounts-private-key"

Passaggi successivi

Per informazioni dettagliate sulla configurazione, esempi e link a GitHub e ad altri repository open source, vai alla pagina di configurazione della tua lingua.