Risolvi problemi

Questa pagina contiene informazioni sulla risoluzione dei problemi relativi a Trace.

Nessun dato nell'interfaccia di Trace

Se non riesci a visualizzare alcuna traccia nel progetto Google Cloud quando prevedi che saranno presenti i dati di traccia, prova a seguire questi passaggi:

  1. Attiva l'API Cloud Trace.

    Abilita l'API

  2. Nella console Google Cloud, vai alla pagina API e servizi:

    Vai ad API e servizi

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

    • Se nella colonna Requests (Richieste) non sono riportate informazioni numeriche, i dati di traccia non verranno inviati al tuo progetto Google Cloud.

      Per risolvere questo caso, controlla le applicazioni e i proxy per assicurarti che siano configurati per inviare le tracce al progetto corretto.

    • Seleziona API Cloud Trace, seleziona la scheda Metriche, quindi trova il grafico con l'etichetta Errori per metodo API:

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

        Per ulteriori informazioni, consulta Ruoli IAM di Cloud Trace.

      • Se le letture non vanno a buon fine, assicurati che il ruolo IAM nel progetto Google Cloud includa le autorizzazioni nel ruolo Utente Cloud Trace (roles/cloutrace.user). Per un elenco delle 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 aver aggiornato l'applicazione per l'utilizzo di OpenTelemetry, non vedrai più i dati di Cloud Trace.

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

Per informazioni sull'aggiornamento della libreria client di Google per Go, consulta il codice 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 l'Cloud Trace API, ma i dati di traccia non sono stati raccolti.

Prova a procedere come segue:

  • Se non visualizzi alcun dato nella pagina Esplora tracce della console Google Cloud, segui i passaggi nella sezione Nessun dato nell'interfaccia di Trace.

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

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

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

    • Per il servizio principale, 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, lascia non impostata la variabile di ambiente OTEL_TRACES_SAMPLER per utilizzare il Sampler predefinito, ovvero parentbased_always_on. L'impostazione predefinita indica che la decisione sul campionamento per un intervallo viene ereditata dal relativo intervallo padre, se esistente. 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 il tracciamento di una richiesta end-to-end perché ogni componente in 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 ai 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 messaggio "ID intervallo mancante".

Nei sistemi di tracciamento distribuito, sono previste tracce incomplete. Una traccia è incompleta quando un intervallo campionato contiene un riferimento a un altro intervallo che non è stato 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 è ancora stato ricevuto da Cloud Trace oppure l'intervallo è stato ricevuto ma non archiviato.

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

Se visualizzi ripetutamente il messaggio "ID intervallo mancante", prova a procedere nel seguente modo:

  • Per i componenti che gestisci, assicurati che rispettino e propaghino il flag flag sampled dell'intestazione, se presente questo campo. Questa impostazione è un suggerimento ai componenti secondari per campionare la 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 anche la frequenza con cui scrivono dati di traccia.

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