Risolvere i problemi

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

Nessun dato nell'interfaccia di Trace

Se non riesci a visualizzare tracce nel tuo progetto Google Cloud quando prevedi che i dati delle tracce siano presenti, prova a svolgere i seguenti passaggi:

  1. Enable the Cloud Trace API.

    Enable the API

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

    Vai ad API e servizi

    Dopo aver trovato la riga etichettata API Cloud Trace, prova quanto segue:

    • Se la colonna etichettata Richieste non elenca informazioni numeriche, significa che non vengono inviati dati di traccia al tuo progetto Google Cloud.

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

    • Seleziona l'API Cloud Trace, la scheda Metriche e poi il grafico 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 Agente Cloud Trace (roles/cloudtrace.agent). Questo ruolo include l'autorizzazione cloudtrace.traces.patch, che consente alle applicazioni di scrivere dati di span 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 tuo 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 traccia dopo l'aggiornamento dell'app Go per l'utilizzo di OpenTelemetry

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

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

Per informazioni sull'aggiornamento della libreria client di Google per Go, consulta Issue #4237.

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

Hai implementato un'app che invia dati al tuo progetto Google Cloud utilizzando l'Cloud Trace API, ma i dati di traccia non vengono raccolti.

Prova a procedere come segue:

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

  • Se l'app non è dipiattata 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 sugli intervalli 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 di 0.5:

      export OTEL_TRACES_SAMPLER="traceidratio"
      export OTEL_TRACES_SAMPLER_ARG="0.5"
      
    • Per tutti gli altri servizi, lascia la variabile di ambiente OTEL_TRACES_SAMPLER non impostata per utilizzare il campionatore predefinito, ovvero parentbased_always_on. L'impostazione predefinita indica che la decisione di campionamento per un intervallo viene ereditata dall'intervallo principale, se esistente. Se non esiste uno spazio padre, lo spazio viene campionato.

    A meno che la tua applicazione non esamini sempre ogni span, in genere non è possibile forzare il monitoraggio end-to-end di una richiesta perché 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 impostato su true. Questa impostazione è un suggerimento per i componenti secondari per eseguire il campionamento della richiesta. Per ulteriori informazioni sulle intestazioni di traccia, consulta Protocolli per la propagazione del contesto.

Messaggio ID span mancante nella traccia

La traccia contiene il messaggio "ID span mancante".

Nei sistemi di monitoraggio distribuito, sono previste tracce incomplete. Una traccia è incompleta quando uno span campionato contiene un riferimento a un altro span che non è stato ricevuto. Il riferimento non risolto può verificarsi per i seguenti motivi:

  • L'intervallo a cui si fa riferimento non è stato campionato.
  • L'intervallo a cui si fa riferimento è stato campionato, ma non è ancora stato ricevuto da Cloud Trace o è 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 costantemente il messaggio "ID span mancante", prova a procedere nel seguente modo:

  • 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 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 i dati traccia.

  • Se utilizzi Cloud Service Mesh, assicurati di seguire le indicazioni per la propagazione del contesto della traccia per queste configurazioni. Per indicazioni su Cloud Service Mesh, consulta Propagazione del contesto del tracciato.