Risolvere i problemi

Questa pagina contiene informazioni sulla risoluzione dei problemi per Trace.

Nessun dato nell'interfaccia di Trace

Se non riesci a visualizzare alcuna traccia nel progetto Google Cloud quando ti aspetti presenti i dati, prova a procedere nel seguente modo:

  1. Attiva l'API Cloud Trace.

    Abilita l'API

  2. Nella console Google Cloud, vai al menu API e Servizi:

    Vai su API e Servizi

    Una volta trovata la riga con l'etichetta API Cloud Trace, prova a procedere nel seguente modo:

    • Se la colonna Requests non riporta informazioni numeriche, non verranno inviati dati di traccia al progetto Google Cloud.

      Per risolvere il problema, controlla le applicazioni e i proxy per assicurarti che configurate per inviare le tracce al progetto corretto.

    • Seleziona API Cloud Trace, seleziona la scheda Metriche e trova il grafico Errori per metodo API:

      • Se le operazioni di scrittura non vanno a buon fine, concedi la account di servizio fornisce le credenziali di autenticazione, Agente Cloud Trace (roles/cloudtrace.agent). Questo ruolo include l'autorizzazione cloudtrace.traces.patch, che consente alle applicazioni di scrivere dati di intervallo in un progetto Google Cloud.

        Per ulteriori informazioni, vedi Ruoli IAM di Cloud Trace.

      • Se le letture non vanno a buon fine, assicurati che i server IAM del progetto Google Cloud include le autorizzazioni nel ruolo Utente Cloud Trace (roles/cloutrace.user). Per una lista di autorizzazioni per questo ruolo, consulta Ruoli IAM di Cloud Trace.

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

L'applicazione si basa sulla libreria client per acquisire le tracce, e dopo aggiornare l'applicazione per utilizzare OpenTelemetry, non vedrai più di Cloud Trace.

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

Per informazioni sull'aggiornamento della libreria client di Google per Go, vedi Problema n. 4237.

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

Hai eseguito il deployment di un'app che invia dati al tuo progetto Google Cloud utilizzando Cloud Trace API, ma non vengono raccolti dati di traccia.

Prova a procedere come segue:

  • Se non vedi dati nella pagina Esplora tracce dell' Google Cloud, segui i passaggi nella sezione intitolata Nessun dato nell'interfaccia di Trace.

  • Se non è stato eseguito il deployment dell'app su Google Cloud o se utilizza una account di servizio per fornire le credenziali di autenticazione, quindi assicurati che all'account di servizio è stato concesso il ruolo Agente Cloud Trace (roles/cloudtrace.agent).

    Questo ruolo include l'autorizzazione cloudtrace.traces.patch, che consente alle applicazioni di scrivere dati di intervallo in un progetto Google Cloud.

  • Se l'app si basa su OpenTelemetry, procedi nel seguente modo:

    • Per il servizio radice, prova ad aggiornare le variabili di ambiente in modo che OpenTelemetry utilizza il campionatore traceidratio con un frequenza di campionamento di 0.5:

      export OTEL_TRACES_SAMPLER="traceidratio"
      export OTEL_TRACES_SAMPLER_ARG="0.5"
      
    • Per tutti gli altri servizi, lascia la OTEL_TRACES_SAMPLER non impostata per utilizzare il Sampler predefinito, ovvero parentbased_always_on. L'impostazione predefinita significa che la decisione di campionamento per un intervallo viene ereditata il 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, 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.

Messaggio ID intervallo mancante nella traccia

La traccia contiene un "ID intervallo mancante" .

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

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

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

Se visualizzi ripetutamente il messaggio "ID intervallo mancante", prova a utilizzare la seguenti:

  • Assicurati che i componenti che gestisci rispettino e propagare il flag flag sampled dell'intestazione, quando questo è presente. Questa impostazione è un suggerimento per i componenti secondari per campionare richiesta. Per ulteriori informazioni sulle intestazioni di traccia, consulta Protocolli per la propagazione del contesto.

    In genere i servizi Google Cloud rispettano questo suggerimento. Tuttavia, Limitano la frequenza di scrittura dei dati di traccia.

  • Se utilizzi Cloud Service Mesh, assicurati di seguire le indicazioni per propagare il contesto della traccia per queste configurazioni. Per Cloud Service Mesh consulta le indicazioni sulla propagazione del contesto di tracciamento.