Risoluzione dei problemi

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

Problemi noti

In questa sezione sono elencati i problemi noti:

  • Gli intervalli scritti nel tuo Google Cloud progetto utilizzando l' API Telemetry non sono accessibili all' Cloud Trace API. Ad esempio, se provi a elencare queste tracce, il comando non va a buon fine e viene visualizzato un errore 404 Not Found.

Risolvere i problemi di Observability Analytics

Questa sezione descrive come risolvere gli errori che potresti riscontrare quando utilizzi Observability Analytics per eseguire query sui dati di traccia.

Non riesci a salvare la criterio di avviso a causa di un errore di convalida

Provi a salvare una criterio di avviso che monitora i dati di traccia e ricevi un errore simile al seguente:

The following error occurred when validating your SQL Alert: Error authenticating service account `service-12345@gcp-sa-monitoring-notification.iam.gserviceaccount.com`. BigQuery returned an error.

Questo messaggio di errore indica che all' account di servizio Monitoring non sono state concesse le autorizzazioni richieste o che non esiste. Questo account viene creato automaticamente dal sistema quando si verificano determinate azioni avviate dall'utente. Tuttavia, se l'API Cloud Monitoring è disabilitata, il sistema non può creare il account di servizio.

Per risolvere l'errore:

  1. Nella Google Cloud console, vai alla pagina API e servizi e abilita l'API Cloud Monitoring:

    Vai ad API e servizi

  2. Nella Google Cloud console, vai alla pagina IAM:

    Vai a IAM

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo IAM e amministrazione.

  3. Nella pagina IAM, segui questi passaggi:

    1. Seleziona Includi concessioni di ruoli fornite da Google.

    2. Se l'account di servizio Monitoring non è elencato, crea una criterio di avviso basata su SQL e prova a salvarla.

      Quando salvi la policy, il sistema crea l'account di servizio Monitoring. L'azione di salvataggio non va a buon fine perché questo account di servizio non dispone dei ruoli IAM richiesti.

    3. Concedi all'account di servizio Monitoring i seguenti ruoli:

Messaggio di errore che indica che una vista non esiste

Inserisci una query SQL nel riquadro delle query della pagina Observability Analytics , ma il parser SQL mostra il seguente errore:

projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID/datasets/DATASET_ID/views/OBS_VIEW_ID does not exist

L'errore precedente viene segnalato quando non è possibile trovare la vista specificata nell'istruzione FROM.

Per risolvere questo errore, verifica che la sintassi della vista sia corretta:

  • Verifica che il nome completo della vista segua la sintassi richiesta dallo schema di denominazione di Observability Analytics. Puoi trovare la sintassi richiesta per una vista visualizzando la query predefinita.

  • Se l' Google Cloud ID progetto, la località, l'ID bucket, l'ID set di dati o l'ID vista contengono punti, (.), verifica che il campo sia racchiuso tra virgolette singole, (`).

    Ad esempio, se l'ID del tuo Google Cloud progetto è example.com:bluebird, l'istruzione FROM è la seguente:

    FROM `example.com:bluebird`.`us`.`_Trace`.`Spans`.`_AllSpans`
    

Viene visualizzato il messaggio Inizia a utilizzare Observability Analytics

Apri la pagina Observability Analytics e viene visualizzata una finestra con un messaggio simile al seguente:

Get started with Observability Analytics

Per utilizzare Observability Analytics, fai clic su Chiudi nella finestra.

Il messaggio precedente viene visualizzato quando non hai eseguito l'upgrade di alcun bucket di log per utilizzare Observability Analytics. Tuttavia, i dati di traccia non vengono archiviati in un bucket di log.

Il join di più viste non va a buon fine

Scrivi una query che esegue il join di più viste, ma la query viene contrassegnata come non valida.

Non è possibile eseguire il join di tutte le viste.

Per eseguire il join delle viste, si applicano le seguenti limitazioni:

  1. Le località delle viste soddisfano una delle seguenti condizioni:

    • Tutte le viste hanno la stessa località.
    • Tutte le viste si trovano nella località global o us.
  2. Quando le risorse di archiviazione utilizzano chiavi di crittografia gestite dal cliente (CMEK), deve essere vera una delle seguenti condizioni:

    • Le risorse di archiviazione che utilizzano CMEK utilizzano la stessa chiave Cloud KMS.
    • Le risorse di archiviazione che utilizzano CMEK hanno un predecessore comune e questo predecessore specifica una chiave Cloud KMS predefinita che si trova nella stessa località delle risorse di archiviazione.

    Quando una o più risorse di archiviazione utilizzano CMEK, il sistema cripta i dati temporanei generati da il join con la chiave Cloud KMS comune o con la chiave Cloud KMS predefinita dell'antenato.

Supponiamo, ad esempio, di avere due viste che si trovano nella stessa località. Puoi eseguire il join di queste viste quando si verifica una delle seguenti condizioni:

  • Le risorse di archiviazione non utilizzano CMEK.
  • Una risorsa di archiviazione utilizza CMEK e l'altra no.
  • Entrambe le risorse di archiviazione utilizzano CMEK e la stessa chiave Cloud KMS.
  • Entrambe le risorse di archiviazione utilizzano CMEK, ma chiavi diverse. Tuttavia, le risorse condividono un predecessore che specifica una chiave Cloud KMS predefinita che si trova nella stessa località delle risorse di archiviazione.

    Supponiamo, ad esempio, che la gerarchia delle risorse per un bucket di log e un bucket di osservabilità includa la stessa organizzazione. Puoi eseguire il join delle viste su questi bucket quando, per l'organizzazione, hai configurato le impostazioni predefinite delle risorse per Cloud Logging e per i bucket di osservabilità con la stessa chiave Cloud KMS predefinita per la località di archiviazione.

Nessun dato nella pagina Esplora tracce

Hai un'applicazione che invia dati di traccia al tuo Google Cloud progetto. Tuttavia, quando apri la pagina Esplora tracce, non vengono visualizzati dati.

Esistono diversi motivi possibili per cui non riesci a visualizzare i dati di traccia:

  • Non ti sono state concesse le autorizzazioni necessarie per visualizzare i dati.
  • Gli intervalli di Trace non sono stati inviati al tuo progetto.
  • La tua applicazione non dispone delle autorizzazioni necessarie per scrivere i dati di traccia.
  • Gli intervalli di traccia non vengono archiviati.

Le seguenti sottosezioni forniscono informazioni su come risolvere i problemi relativi agli scenari di errore elencati.

Verificare di disporre dell'autorizzazione per visualizzare i dati di traccia

Per visualizzare i dati di traccia, assicurati di aver ricevuto il ruolo Utente Cloud Trace (roles/cloudtrace.user).

Verificare che gli intervalli di traccia vengano inviati al progetto

Per verificare che gli intervalli vengano inviati al tuo progetto:

  1. Abilita le API Cloud Trace e Telemetry.

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin), che contiene l'autorizzazione serviceusage.services.enable. Scopri come concedere i ruoli.

    Abilita le API

    Entrambe le API possono ricevere intervalli di traccia. Tuttavia, è consigliabile utilizzare l'API Telemetry perché è compatibile con l'ecosistema OpenTelemetry e perché ha limiti più generosi rispetto all'Cloud Trace API.

  2. Vai alla pagina API e servizi abilitati, trova le righe per l'Cloud Trace API e l'API Telemetry.

    Se il conteggio Richieste per queste due API è zero, significa che non vengono inviati dati di traccia al tuo progetto.

Verificare che l'applicazione disponga delle autorizzazioni necessarie per scrivere gli intervalli di traccia

Per determinare se la tua applicazione dispone dell'autorizzazione per scrivere i dati di traccia nel tuo progetto:

  1. Vai alla pagina API e servizi abilitati , trova le righe per l'Cloud Trace API e l'API Telemetry ed esamina la colonna Errori.

  2. Se nella colonna Errori di una delle due API è presente un valore diverso da zero, significa che si sono verificati errori durante la lettura o la scrittura dei dati di traccia tramite l'API. Per identificare il tipo di errore, seleziona l'API, seleziona la scheda Metriche e visualizza Errori per metodo API:

    Se le scritture non vanno a buon fine, concedi al service account che fornisce le credenziali i seguenti ruoli:

Verificare che i dati di traccia siano archiviati

Gli intervalli di Trace vengono archiviati in un bucket di osservabilità denominato _Trace. Questo bucket viene sottoposto a provisioning automaticamente quando il tuo Google Cloud progetto riceve intervalli di traccia. Tuttavia, esistono diversi scenari in cui il provisioning non va a buon fine.

Per determinare se esiste un bucket di osservabilità per i dati di traccia, puoi elencare i bucket di osservabilità o aprire la pagina Esplora tracce. Ad esempio, puoi:

  1. Nella Google Cloud console, vai alla Esplora tracce pagina:

    Vai a Esplora tracce

    Puoi trovare questa pagina anche utilizzando la barra di ricerca.

  2. Se vedi un banner simile al seguente, significa che non è stato eseguito il provisioning dello spazio di archiviazione per i dati di traccia.

    Trace storage is not initialized for this project. Enable trace storage to begin collecting trace data.
    

    Per eseguire il provisioning di un bucket di osservabilità per i dati di traccia, vai al banner e fai clic su Abilita.

    Quando fai clic su Abilita, viene inviato un intervallo al tuo progetto. Quando il sistema riceve l'intervallo, emette il comando per creare un bucket di osservabilità denominato _Trace. Il completamento di questo processo può richiedere diversi minuti.

    Al termine dell'inizializzazione, viene visualizzato un banner di notifica e Cloud Trace riceve tutti i dati di traccia inviati nell'ultima ora. Questi dati sono stati archiviati in un buffer temporaneo. Potrebbero essere necessari alcuni minuti prima che i dati vengano visualizzati in Esplora tracce. Se non vedi alcun dato, aggiorna la finestra.

  3. Se il comando di abilitazione non va a buon fine, viene visualizzato il seguente messaggio:

    Initializing trace storage has failed for an unexpected reason. Please file a support ticket for assistance.
    

    Per risolvere l'errore, contatta Google Cloud l'assistenza facendo clic su Invia un ticket.

La ricerca di una traccia specifica non va a buon fine

Inserisci un ID traccia nella pagina Esplora tracce. La traccia non viene trovata e viene visualizzato un messaggio simile al seguente:

The select trace with ID abcde does not exist or is older than 30 days and has been deleted per our retention policy.

Per risolvere questo errore:

  1. Verifica che il timestamp associato all'ID traccia rientri nel periodo di conservazione.

  2. Identifica il Google Cloud progetto che archivia la traccia e verifica che il selettore di risorse nella Google Cloud console selezioni questo progetto. Per impostazione predefinita, la pagina Esplora tracce ha accesso solo ai dati di traccia archiviati nel progetto selezionato.

Dati precedenti mancanti nella pagina Esplora tracce

Stai utilizzando la pagina Esplora tracce e puoi visualizzare i dati recenti, ma quando imposti il selettore dell'intervallo di tempo su 30 giorni o su un valore maggiore, i dati precedenti non vengono visualizzati.

La pagina Esplora tracce non mostra i dati per periodi di tempo superiori al periodo di conservazione dei dati di Cloud Trace, ovvero 30 giorni.

Se il selettore dell'intervallo di tempo è impostato su 30 giorni o meno, i dati mancanti indicano che il database sottoposto a query dalla pagina Esplora tracce è stato creato più di recente rispetto all'impostazione dell'intervallo di tempo. Ad esempio, se imposti questo valore su 20 giorni e riesci a visualizzare solo i 10 giorni di dati più recenti, significa che il database è stato creato 10 giorni prima. Inoltre, questo database contiene solo le tracce inviate al tuo Google Cloud progetto dopo la creazione del database.

Viene visualizzata una traccia incompleta

Apri la pagina Esplora tracce e seleziona un intervallo da visualizzare. Il riquadro a comparsa Dettagli mostra la traccia, ma non è completa. Alcuni intervalli non vengono visualizzati.

Gli intervalli potrebbero mancare per i seguenti motivi:

  • La pagina Esplora tracce non esegue la ricerca in tutti i Google Cloud progetti che archiviano i dati degli span per la traccia.

  • Il tuo ruolo IAM in un Google Cloud progetto che archivia i dati degli intervalli per la traccia non contiene le autorizzazioni necessarie per visualizzare i dati di traccia.

  • Si è verificato un problema di strumentazione. Ad esempio, solo alcuni intervalli di una traccia sono stati inviati al tuo Google Cloud progetto.

Per risolvere questi problemi:

  1. Nella pagina Esplora tracce, assicurati di impostare l'elemento Ambito su un ambito di traccia che elenca i progetti che archiviano gli span per la traccia selezionata.

    Se non esiste un ambito di traccia che includa i progetti identificati nel passaggio precedente, crea o modifica un ambito di traccia esistente. Per saperne di più, consulta Creare e gestire gli ambiti di traccia.

  2. Verifica di disporre del ruolo Utente Cloud Trace (roles/cloudtrace.user) nei progetti che archiviano i dati degli span.

Non disponi delle autorizzazioni necessarie per visualizzare i dati di traccia

Stai visualizzando la pagina Esplora tracce e vedi la seguente notifica:

You don't have the required permissions to view trace data for one or more projects listed in the trace scope.

Per risolvere questo messaggio, nella barra degli strumenti:

  1. Espandi l'elemento Ambito e identifica l'ambito di traccia selezionato.
  2. Nel riquadro a comparsa Perfeziona ambito, seleziona Gestisci ambiti.
  3. Individua l'ambito di traccia identificato nel primo passaggio, quindi espandi i dettagli per visualizzare l'elenco dei progetti. Google Cloud
  4. Per ogni Google Cloud progetto nell'ambito di traccia, verifica di disporre del ruolo Utente Cloud Trace (roles/cloudtrace.user). Se non disponi di questo ruolo in un progetto, chiedi a un amministratore o al proprietario del progetto di concedertelo.

Le query tra regioni non sono supportate

Apri la pagina Esplora tracce e viene visualizzato un messaggio simile al seguente:

Error loading chart data. Cross-regional queries are not supported. The selected scope comprises buckets residing in multiple locations: list of locations.

Il messaggio di errore indica che la pagina Esplora tracce deve inviare una query per i dati archiviati in località diverse.

Per risolvere questo errore:

  • Limita i dati di traccia a quelli archiviati dal progetto selezionato:

    • Vai alla barra degli strumenti della pagina Esplora tracce ed espandi il menu Ambito.
    • Nel riquadro a comparsa Perfeziona ambito, seleziona Progetto corrente.
  • Seleziona un ambito di traccia che elenca i progetti i cui dati sono archiviati nella stessa località. Per apportare questa modifica, utilizza le opzioni nel menu Ambito.

  • Rimuovi dall'ambito di traccia selezionato i progetti i cui dati sono archiviati in una località diversa da quella del progetto selezionato:

    • Vai alla barra degli strumenti della pagina Esplora tracce ed espandi il menu Ambito.
    • Nel riquadro a comparsa Perfeziona ambito, seleziona Gestisci ambiti.
    • Nella pagina Ambiti di traccia, puoi modificare qualsiasi ambito di traccia.

    Per trovare la località di archiviazione dei dati di traccia, esegui il comando Elenca bucket di osservabilità. Nel parametro del percorso specifica il progetto e, per la LOCATION, imposta il campo su un trattino, (-), che funge da carattere jolly.

Messaggio ID intervallo mancante nella traccia

La traccia contiene un messaggio "ID intervallo mancante".

Nei sistemi di tracciamento distribuito, le tracce incomplete sono previste. 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 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 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 costantemente il messaggio "ID intervallo mancante", prova a:

  • Per i componenti che gestisci, verifica che rispettino e propagino il flag sampled dell'intestazione flag, quando questo campo è presente. Questa impostazione è un suggerimento per i componenti secondari di campionare la richiesta. Per saperne di più sulle intestazioni di traccia, consulta Protocolli per la propagazione del contesto.

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

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

Impossibile correlare i dati di log e di traccia

Stai eseguendo una delle seguenti operazioni:

  • Stai visualizzando un intervallo di traccia e vuoi visualizzare le voci di log associate. Tuttavia, non vengono elencati dati di log oppure, quando apri la pagina Esplora log, non vengono visualizzate voci di log.

  • Stai visualizzando una voce di log e vuoi visualizzare gli intervalli di traccia associati. Tuttavia, quando utilizzi le opzioni nella voce di log per aprire la pagina Esplora tracce, non vengono visualizzati dati di traccia.

Per risolvere questi errori, configura l'ambito di osservabilità. Questo ambito specifica quali ambiti di traccia e di log utilizzare quando si aprono le pagine di esplorazione corrispondenti. Per saperne di più, consulta Configurare gli ambiti di osservabilità per le query multi-progetto.

Nessun dato di 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 vedi più i dati di Cloud Trace.

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

Per informazioni sull'aggiornamento delle librerie client Cloud per Go, consulta il problema n. 4237.