Risolvere i problemi

Questa pagina contiene informazioni per la risoluzione dei problemi relativi a Trace.

Nessun dato nell'interfaccia di Trace

Se non riesci a visualizzare alcuna traccia nel tuo progetto Google Cloud quando prevedi che siano presenti dati di traccia, prova i seguenti passaggi:

  1. Nel pannello di navigazione della console Google Cloud, seleziona API e servizi, fai clic su Abilita API e servizi e poi abilita l'Cloud Trace API:

    Vai alle impostazioni dell'API Cloud Trace

  2. Se viene visualizzato API abilitata, significa che l'API è già abilitata. In caso contrario, fai clic sul pulsante Attiva.

  3. Nella barra degli strumenti, fai clic su Menu di navigazione e seleziona API e servizi. Se la riga relativa all'API Cloud Trace non elenca alcun valore numerico per la colonna Requests (Richieste), Errors (Errori) o per altre colonne, allora nessuna richiesta di traccia raggiunge il tuo progetto Google Cloud. Controlla le applicazioni e i proxy per assicurarti che siano configurati per inviare le tracce al progetto corretto.

  4. Per visualizzare i dettagli sull'utilizzo dell'API, fai clic su API Cloud Trace e seleziona la scheda Metriche.

    Per restringere l'origine degli errori, utilizza i filtri Credenziali e Metodi e visualizza l'effetto delle tue selezioni sul grafico Errori per metodo API:

    • Se tutte le scritture non riescono, assicurati che il tuo account di servizio abbia accesso al ruolo Agente Cloud Trace. Questo ruolo include l'autorizzazione cloudtrace.traces.patch. Per ulteriori informazioni, consulta Ruoli IAM di Cloud Trace.

    • Se le letture non riescono, assicurati di avere accesso al ruolo Utente Cloud Trace per questo progetto Google Cloud. Per un elenco completo delle autorizzazioni per questo ruolo, consulta Ruoli IAM di Cloud Trace.

Nessun dato di traccia dopo l'aggiornamento dell'app Go per utilizzare OpenTelemetry

La tua applicazione si basa sulla libreria client per acquisire le tracce e, dopo aver aggiornato l'applicazione per utilizzare OpenTelemetry, non vedrai più i dati di Cloud Trace.

Poiché alcune librerie client di Google per Go sono integrate con OpenCensus, devi utilizzare un bridge OpenCensus. Per ulteriori informazioni sul problema risolto dal bridge, consulta OpenCensus Bridge.

Per informazioni sull'aggiornamento della libreria client di Google per Go, consulta il problema n. 4237.

Nessun dato di traccia per l'app di cui è stato eseguito il deployment

Hai eseguito il deployment dell'applicazione e l'hai instrumentata per raccogliere dati di traccia utilizzando OpenTelemetry, ma questi dati non vengono raccolti.

Per il servizio radice, prova ad aggiornare le variabili di ambiente in modo che OpenTelemetry utilizzi il campionatore traceidratio con una frequenza di campionamento pari a 0.5:

export OTEL_TRACES_SAMPLER="traceidratio"
export OTEL_TRACES_SAMPLER_ARG="0.5"

Per tutti gli altri servizi, non impostare la variabile di ambiente OTEL_TRACES_SAMPLER per utilizzare il Sampler predefinito, ovvero parentbased_always_on. L'impostazione predefinita significa che la decisione di campionamento per un intervallo viene ereditata dal relativo intervallo padre, se esiste. Se non esiste un intervallo padre, l'intervallo viene campionato.

A meno che l'applicazione non campiona sempre ogni intervallo, in generale non è possibile forzare la traccia end-to-end di una richiesta, poiché ogni componente di una richiesta end-to-end prende la propria decisione di campionamento. Tuttavia, puoi influenzare la decisione aggiungendo all'intestazione della 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 delle tracce, consulta Protocolli per la propagazione del contesto.

Messaggio ID intervallo mancante nella traccia

La traccia contiene un messaggio "ID intervallo mancante".

Nei sistemi di tracciamento distribuiti, sono previste tracce incomplete. Una traccia è incompleta quando un intervallo campionato contiene un riferimento a un altro intervallo non ricevuto. Il riferimento non risolto può verificarsi per i seguenti motivi:

  • L'intervallo di riferimento non è stato campionato.
  • L'intervallo di riferimento è stato campionato, ma non è stato ancora ricevuto da Cloud Trace oppure è stato ricevuto, ma non archiviato.

Quando visualizzi una traccia incompleta, Cloud Trace mostra il messaggio "ID intervallo mancante" nel riquadro dei dettagli della traccia.

Se visualizzi sempre il messaggio "ID intervallo mancante", prova quanto segue:

  • Per i componenti che gestisci, assicurati che rispettino e propaghino il flag sampled dell'intestazione, se questo campo è presente. Questa impostazione è un suggerimento per i componenti figlio per campionare la richiesta. Per ulteriori informazioni sulle intestazioni delle tracce, consulta Protocolli per la propagazione del contesto.

    In genere i servizi Google Cloud rispettano questo suggerimento. Tuttavia, limitano anche la frequenza con cui scrivono i dati di traccia.

  • Se utilizzi Anthos Service Mesh, assicurati di seguire le indicazioni per propagare il contesto di traccia per queste configurazioni. Per indicazioni su Anthos Service Mesh, consulta Propagazione del contesto di Trace.