Esta página oferece uma visão geral dos componentes de alto nível envolvidos em uma solicitação do Spanner e como cada componente pode afetar a latência.
Solicitações da API Spanner
Os componentes de alto nível usados para fazer uma solicitação da API Spanner incluem:
Bibliotecas de cliente do Spanner, que fornecem uma camada de abstração sobre o gRPC e processam detalhes de comunicação do servidor, como gerenciamento de sessão, transações e novas tentativas.
O Google Front End (GFE), um serviço de infraestrutura comum a todos os serviços do Google Cloud , incluindo o Spanner. O GFE verifica se todas as conexões TLS (Transport Layer Security) são interrompidas e aplica proteções contra ataques de negação de serviço. Para saber mais sobre o GFE, consulte Google Front End Service.
O front-end da API Spanner (AFE), que realiza várias verificações na solicitação da API, incluindo autenticação, autorização e verificações de cota, e mantém sessões e estados de transação.
O banco de dados do Spanner, que executa leituras e gravações no banco de dados.
Quando você faz uma chamada de procedimento remoto para o Spanner, as bibliotecas de cliente do Spanner preparam a solicitação da API. Em seguida, a solicitação da API passa pelo GFE e pelo AFE do Spanner antes de chegar ao banco de dados do Spanner.
Ao medir e comparar as latências de solicitação entre diferentes componentes e o banco de dados, você pode determinar qual componente está causando o problema. Essas latências incluem as de ponta a ponta do cliente, do GFE, de solicitação da API Spanner e de consulta.

As seções a seguir explicam cada tipo de latência que aparece no diagrama anterior.
Latência de ponta a ponta
A latência de ponta a ponta é o período (em milissegundos) entre o primeiro byte da solicitação da API Spanner que o cliente envia ao banco de dados (pelo GFE e pelo front-end da API Spanner) e o último byte da resposta que o cliente recebe do banco de dados.

A métrica
spanner.googleapis.com/client/operation_latencies
fornece o tempo entre o primeiro byte da solicitação de API
enviada e o último byte da resposta recebida. Isso inclui as tentativas feitas
pela biblioteca de cliente.
Para mais informações, consulte Ver e gerenciar métricas do lado do cliente.
Latência do GFE
A latência do Google Front End (GFE) é o período (em milissegundos) entre o momento em que a rede do Google recebe uma chamada de procedimento remoto do cliente e quando o GFE recebe o primeiro byte da resposta. Essa latência não inclui handshakes de TCP/SSL.

Cada resposta do Spanner (REST ou gRPC) inclui um cabeçalho que contém o tempo total entre o GFE e o back-end (o serviço do Spanner) para a solicitação e a resposta. Isso ajuda a distinguir melhor a origem da latência entre o cliente e o GFE.
A métrica spanner.googleapis.com/client/gfe_latencies captura e expõe a latência do GFE para solicitações do Spanner.
Para mais informações, consulte Ver e gerenciar métricas do lado do cliente.
Latência de solicitação da API Spanner
A latência da solicitação da API Spanner é o período (em segundos) entre o momento em que o AFE do Spanner recebe o primeiro byte de uma solicitação e o momento em que o front-end da API Spanner envia o último byte de uma resposta. A latência inclui o tempo necessário para o processamento das solicitações de API no back-end do Spanner e na camada de API. No entanto, essa latência não inclui sobrecarga de rede ou proxy reverso entre clientes e servidores do Spanner.

A métrica spanner.googleapis.com/api/request_latencies captura e expõe a latência do AFE do Spanner para solicitações do Spanner. Para mais informações, consulte
Métricas do Spanner.
Latência da consulta
A latência de consulta é o tempo (em milissegundos) necessário para executar consultas SQL no banco de dados do Spanner.

A latência da consulta está disponível para a API executeSql.
Se o parâmetro
QueryMode
estiver definido como WITH_STATS ou WITH_PLAN_AND_STATS,
o
ResultSetStats
do Spanner estará disponível nas respostas. ResultSetStats inclui o tempo decorrido para executar consultas no banco de dados do Spanner.
Para capturar e visualizar a latência da consulta, consulte Capturar latência da consulta com o OpenTelemetry.
A seguir
- Saiba como identificar pontos de latência nos componentes do Spanner.