Questa pagina fornisce una panoramica dei componenti di alto livello coinvolti in una richiesta di Spanner e di come ogni componente può influire sulla latenza.
Richieste API Spanner
I componenti di alto livello utilizzati per effettuare una richiesta API Spanner includono:
Librerie client di Spanner, che forniscono un livello di astrazione su gRPC e gestiscono i dettagli di comunicazione del server, come la gestione delle sessioni, le transazioni e i nuovi tentativi.
Google Front End (GFE), un servizio di infrastruttura comune a tutti i servizi Google Cloud, incluso Spanner. Il GFE verifica che tutte le connessioni TLS (Transport Layer Security) siano interrotte e applica le protezioni contro gli attacchi DoS. Per ulteriori informazioni su GFE, vedi Google Front End Service.
Il frontend dell'API Spanner, che esegue vari controlli sulla richiesta API (tra cui controlli di autenticazione, autorizzazione e quota) e mantiene le sessioni e gli stati delle transazioni.
Il database Spanner, che esegue letture e scritture nel database.
Quando effettui una chiamata di procedura remota a Spanner, le librerie client di Spanner preparano la richiesta API. Quindi, la richiesta API passa attraverso il frontend dell'API Spanner e del GFE prima di raggiungere il database Spanner.
Misurando e confrontando le latenze delle richieste tra i diversi componenti e il database, puoi determinare quale componente causa il problema. Queste latenze includono round trip del client, GFE, richiesta API Spanner e latenze delle query.
Le sezioni seguenti spiegano ciascun tipo di latenza che vedi nel diagramma precedente.
Latenza di round trip client
La latenza di round trip del client è il tempo (in millisecondi) che intercorre tra il primo byte della richiesta dell'API Spanner che il client invia al database (tramite sia il frontend GFE che l'API Spanner) e l'ultimo byte di risposta che il client riceve dal database.
La metrica grpc.io/client/roundtrip_latency
indica il tempo che intercorre tra il primo byte della richiesta API inviata e
l'ultimo byte della risposta ricevuta.
Per acquisire e visualizzare la latenza per questo componente, consulta Acquisire e visualizzare la latenza di round trip del client con OpenTelemetry o con OpenCensus.
Latenza GFE
La latenza di Google Front End (GFE) è il periodo di tempo (in millisecondi) che intercorre tra il momento in cui la rete Google riceve una chiamata di procedura remota dal client e il momento in cui il GFE riceve il primo byte della risposta. Questa latenza non include alcun handshake TCP/SSL.
Ogni risposta da Spanner, sia REST che gRPC, include un'intestazione che contiene il tempo totale tra GFE e il backend (il servizio Spanner) sia per la richiesta che per la risposta. Ciò consente di distinguere meglio l'origine della latenza tra il client e la rete Google.
La metrica spanner/gfe_latency
acquisisce ed espone la latenza GFE per le richieste Spanner.
Per acquisire e visualizzare la latenza per questo componente, consulta Acquisire e visualizzare la latenza GFE con OpenTelemetry o con OpenCensus.
Latenza delle richieste API Spanner
La latenza delle richieste API Spanner è il periodo di tempo (in secondi) tra il primo byte di richiesta ricevuto dal frontend dell'API Spanner e l'ultimo byte di risposta inviato dal frontend dell'API Spanner. La latenza include il tempo necessario per l'elaborazione delle richieste API sia nel backend di Spanner sia nel livello API. Tuttavia, questa latenza non include l'overhead di rete o di reverse-proxy tra i client e i server di Spanner.
La metrica spanner.googleapis.com/api/request_latencies
acquisisce ed espone la latenza di frontend dell'API Spanner per le richieste di 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 il parametro QueryMode
è impostato su PROFILE
, ResultSetStats
di Spanner sono disponibili nelle risposte.
L'impostazione di QueryMode
su PROFILE
restituisce sia il piano di query sia 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 nei componenti di Spanner.