Questa pagina fornisce una panoramica delle componenti di alto livello coinvolti in una richiesta Spanner e come ogni componente può influire sulla latenza.
Richieste API Spanner
I componenti di alto livello utilizzati per effettuare una richiesta all'API Spanner includono:
Librerie client Spanner, che forniscono un livello di astrazione sopra gRPC e gestiscono i dettagli di comunicazione del server, come la gestione delle sessioni, le transazioni e i tentativi di nuovo invio.
Google Front End (GFE), un servizio di infrastruttura comune a tutti i servizi Google Cloud, incluso Spanner. GFE verifica che tutte le connessioni Transport Layer Security (TLS) siano interrotte e applica protezioni contro gli attacchi di tipo Denial of Service. Per scoprire di più sul GFE, consulta Google Front End Service.
Il frontend dell'API Spanner, che esegue vari controlli richieste API (inclusi controlli di autenticazione, autorizzazione e quota) e mantiene le sessioni e gli stati delle transazioni.
Il database Spanner, che esegue letture e scritture nei per configurare un database.
Quando effettui una chiamata di procedura remota a Spanner, Le librerie client di Spanner preparano la richiesta API. Quindi, l'API la richiesta passa attraverso il frontend GFE e l'API Spanner prima di raggiungere il database Spanner.
Misurando e confrontando le latenze delle richieste tra i diversi componenti e il database, puoi determinare quale componente sta causando il problema. Queste latenze includono round trip del client, GFE e API Spanner. le latenze delle richieste e delle query.
Le sezioni seguenti spiegano ogni tipo di latenza visualizzato nel diagramma precedente.
Latenza di andata e ritorno del client
La latenza di round trip del client è il periodo di tempo (in millisecondi) che intercorre tra primo byte della richiesta API Spanner che il client invia a il database (tramite GFE e l'API Spanner end) e l'ultimo byte di risposta che il client riceve dal database.
La grpc.io/client/roundtrip_latency
indica il tempo che intercorre tra il primo byte della richiesta API inviata
l'ultimo byte della risposta ricevuta.
Per acquisire e visualizzare la latenza di questo componente, consulta Acquisire e visualizzare la latenza di viaggio di andata e ritorno del client con OpenTelemetry o con OpenCensus.
Latenza GFE
La latenza di Google Front End (GFE) è il periodo di tempo (in millisecondi) che intercorre quando la rete Google riceve una chiamata di procedura remota dal client e quando il GFE riceve il primo byte della risposta. Questa latenza non include alcun handshake TCP/SSL.
Ogni risposta di Spanner, che si tratti di REST o gRPC, include un'intestazione contenente il tempo totale tra il GFE e il backend (il servizio Spanner) sia per la richiesta che per la risposta. Questo aiuta a distinguere meglio l'origine della latenza tra il client e la rete Google.
La metrica spanner/gfe_latency
cattura ed espone la latenza GFE per le richieste Spanner.
Per acquisire e visualizzare la latenza di questo componente, consulta Acquisire e visualizzare la latenza GFE con OpenTelemetry o con OpenCensus.
Latenza delle richieste dell'API Spanner
La latenza della richiesta dell'API Spanner è il periodo di tempo (in secondi) tra il primo byte della richiesta ricevuto dal frontend dell'API Spanner e l'ultimo byte della risposta inviato dal frontend dell'API Spanner. La latenza include il tempo necessario per elaborare le richieste dell'API sia nel backend di Spanner sia nel livello API. Tuttavia, questa latenza non include l'overhead di rete o del proxy inverso tra client e server Spanner.
La metrica spanner.googleapis.com/api/request_latencies
acquisisce
ed espone la latenza di frontend dell'API Spanner
Richieste Spanner.
Per acquisire e visualizzare la latenza per questo componente, consulta: Acquisire e visualizzare la latenza delle richieste API Spanner con OpenTelemetry o con OpenCensus.
Latenza query
La latenza delle query è il tempo (in millisecondi) necessario per eseguire query SQL nel database Spanner.
La latenza delle query è disponibile per l'API executeSql.
Se QueryMode
è impostato su PROFILE
, allora il parametro
ResultSetStats
disponibili nelle risposte.
L'impostazione di QueryMode
su PROFILE
restituisce entrambe le query
del piano di controllo e le statistiche di esecuzione
insieme ai risultati. Inoltre,
ResultSetStats
include il tempo trascorso per l'esecuzione delle query nel
database Spanner.
Per acquisire e visualizzare la latenza per questo componente, consulta: Acquisire e visualizzare la latenza delle query con OpenTelemetry o con OpenCensus.
Passaggi successivi
- Scopri come identificare i punti di latenza in Componenti Spanner.