Neste tópico, descrevemos como examinar um componente do Spanner para encontrar a fonte da latência e visualizar essa latência usando o OpenTelemetry. Para ter uma visão geral de alto nível dos componentes neste tópico, consulte Pontos de latência em uma solicitação do Spanner.
O OpenTelemetry é um kit de ferramentas e framework de observabilidade de código aberto que permite criar e gerenciar dados de telemetria, como traces, métricas e registros. Esse é o resultado de uma fusão entre o OpenTracing e o OpenCensus. Para mais informações, consulte O que é o OpenTelemetry?
As bibliotecas de cliente do Spanner fornecem métricas e traces com o uso do framework de observabilidade do OpenTelemetry. Siga o procedimento em Identificar o ponto de latência para encontrar os componentes ou componentes que estão mostrando latência no Spanner.
Antes de começar
Antes de começar a capturar métricas de latência, familiarize-se com a instrumentação manual com o OpenTelemetry. Configure o SDK do OpenTelemetry com as opções apropriadas para exportar seus dados de telemetria. Há várias opções de exportador do OpenTelemetry disponíveis. Recomendamos usar o exportador do protocolo OpenTelemetry (OTLP). Outras opções incluem o uso de um coletor OTel com o Google Cloud Exporter ou o Google Managed Service para Prometheus Exporter.
Se você estiver executando seu aplicativo no Compute Engine, poderá usar o Agente de operações para coletar métricas e traces do protocolo do OpenTelemetry. Para mais informações, consulte Coletar métricas e traces do OTLP.
Adicionar dependências
Para configurar o SDK do OpenTelemetry e o exportador do OTLP, adicione as seguintes dependências ao aplicativo.
Java
Go
Injetar o objeto do OpenTelemetry
Em seguida, crie um objeto do OpenTelemetry com o exportador do OTLP e injete o
objeto do OpenTelemetry usando SpannerOptions
.
Java
Go
Capturar e visualizar a latência de ida e volta do cliente
A latência de ida e volta do cliente é o tempo (em milissegundos) entre o primeiro byte da solicitação da API Spanner que o cliente envia ao banco de dados (por meio do GFE e do front-end da API Spanner) e o último byte de resposta que o cliente recebe do banco de dados.
Capturar a latência de ida e volta do cliente
A métrica de latência de ida e volta do cliente do Spanner não é compatível com o OpenTelemetry. É possível instrumentar a métrica usando o OpenCensus com uma ponte e migrar os dados para o OpenTelemetry.
Visualizar a latência de ida e volta do cliente
Depois de recuperar as métricas, é possível visualizar a latência de ida e volta do cliente no Cloud Monitoring.
Veja um exemplo de gráfico que ilustra a latência do 5o percentil da métrica de latência de ida e volta do cliente. Para alterar a latência do percentil para o 50o ou 99o percentil, use o menu Agregador.
O programa cria uma visualização chamada roundtrip_latency
. Essa string se torna parte do nome da métrica quando ela é exportada para o Cloud Monitoring.
Capturar e visualizar a 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.
Capturar a latência do GFE
É possível capturar métricas de latência do GFE ativando as opções a seguir usando a biblioteca de cliente do Spanner.
Java
Go
Visualizar a latência do GFE
Depois de recuperar as métricas, é possível visualizar a latência do GFE no Cloud Monitoring.
Veja um exemplo de gráfico que ilustra a agregação de distribuição da métrica de latência do GFE. Para mudar a latência do percentil para o 5o, 50o, 95o ou 99o percentil, use o menu Agregador.
O programa cria uma visualização chamada spanner/gfe_latency
. Essa string se torna parte do nome da métrica quando é exportada para o Cloud Monitoring.
Capture e visualize a latência da solicitação da API Spanner
A latência de solicitação da API Spanner é o tempo (em segundos) entre o primeiro byte da solicitação que o front-end da API Spanner recebe e o último byte de resposta que ele envia.
Capturar a latência de solicitação da API Spanner
Por padrão, essa latência está disponível como parte das métricas do Cloud Monitoring. Você não precisa fazer nada para capturar e exportar essas informações.
Conferir a latência da solicitação da API Spanner
É possível usar a ferramenta de gráficos do Metrics Explorer para visualizar o gráfico da métrica spanner.googleapis.com/api/request_latencies
no Cloud Monitoring.
Veja um exemplo de gráfico que ilustra a latência do 5o percentil da métrica de latência de solicitações da API Spanner. Se quiser mudar a latência do percentil para o 50o ou 99o percentil, use o menu Agregador.
Capturar e visualizar a latência da consulta
A latência da consulta é o tempo (em milissegundos) necessário para executar consultas SQL no banco de dados do Spanner.
Capturar latência da consulta
É possível capturar a latência da consulta nos seguintes idiomas:
Java
Go
Visualizar a latência da consulta
Depois de recuperar as métricas, é possível visualizar a latência da consulta no Cloud Monitoring.
Veja um exemplo de gráfico que ilustra a agregação de distribuição da métrica de latência do GFE. Para mudar a latência do percentil para o 5o, 50o, 95o ou 99o percentil, use o menu Agregador.
O programa cria uma visualização do OpenCensus chamada query_stats_elapsed
.
Essa string se torna parte do nome da métrica quando é exportada para o
Cloud Monitoring.
A seguir
Saiba mais sobre o OpenTelemetry.
Aprenda a migrar para o OpenTelemetry.
Saiba como usar metrics para diagnosticar a latência.