Este documento descreve como capturar métricas personalizadas do cliente usando OpenTelemetry. As métricas personalizadas do cliente estão disponíveis usando as bibliotecas de cliente Java e Go.
As métricas personalizadas do lado do cliente podem ajudar a encontrar a origem da latência no sistema. Para mais informações, consulte Pontos de latência em uma solicitação do Spanner.
As bibliotecas de cliente do Spanner também fornecem estatísticas e traces usando o framework de observabilidade do OpenTelemetry. Para mais informações, consulte Configurar a coleta de traces usando o OpenTelemetry.
O OpenTelemetry é um framework e kit de ferramentas de observabilidade de código aberto que permite criar e gerenciar dados de telemetria, como traces, métricas e registros.
Antes de começar
É necessário configurar o SDK do OpenTelemetry com as opções adequadas para exportar os dados de telemetria. Recomendamos o uso do exportador do OpenTelemetry Protocol (OTLP).
Para configurar métricas personalizadas do lado do cliente usando o OpenTelemetry, configure o SDK do OpenTelemetry e o exportador OTLP:
Adicione as dependências necessárias ao aplicativo usando o seguinte código:
Java
Go
Crie um objeto OpenTelemetry com o exportador OTLP e injete-o no Spanner usando
SpannerOptions:Java
Go
Capturar a latência do GFE
A latência do Google Front End (GFE) é a duração 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.
É possível capturar a latência do GFE usando o seguinte código:
Java
Go
O app de exemplo de código anexa a string spanner/gfe_latency ao nome da métrica quando ela é exportada para o Cloud Monitoring. É possível pesquisar essa métrica no Monitoring usando a string anexada.
Capturar a latência da solicitação da API Cloud Spanner
A latência da solicitação de API Cloud Spanner é o tempo em segundos entre o primeiro byte da solicitação do cliente que o front-end da API Cloud Spanner recebe e o último byte de resposta que o front-end da API Cloud Spanner envia.
Essa métrica de latência está disponível como parte das métricas do Monitoring.
Capturar a latência de ida e volta do cliente
A latência de ida e volta do cliente é a duração em milissegundos entre o primeiro byte da solicitação de API do Cloud Spanner que o cliente envia ao banco de dados (pelo GFE e pelo front-end da API Cloud Spanner) e o último byte da resposta que o cliente recebe do banco de dados.
A métrica de latência de ida e volta do cliente do Spanner não é compatível com o OpenTelemetry. Em vez disso, é possível conferir a métrica do lado do cliente de latência da operação. Para mais informações, consulte Descrições de métricas do lado do cliente.
Também é possível instrumentar a métrica usando o OpenCensus com uma ponte e migrar os dados para o OpenTelemetry.
Capturar latência da consulta
A latência da consulta é a duração em milissegundos para executar consultas SQL no banco de dados do Spanner.
É possível capturar a latência da consulta usando o seguinte código:
Java
Go
O exemplo de código anexa a string spanner/query_stats_elapsed ao nome da métrica quando ela é exportada para o Monitoring. É possível pesquisar essa métrica no Monitoring usando a string anexada.
Visualizar métricas no Metrics Explorer
No Google Cloud console, acesse a página do Metrics explorer:
Selecione o projeto.
Clique em Selecionar uma métrica.
Pesquise uma métrica de latência usando as seguintes strings:
roundtrip_latency: para a métrica de latência de ida e volta do cliente.spanner/gfe_latency: para a métrica de latência do GFE.spanner/query_stats_elapsed: para a métrica de latência da consulta.
Selecione a métrica e clique em Aplicar.
Para mais informações sobre como agrupar ou agregar sua métrica, consulte Criar consultas usando menus.
A seguir
- Saiba mais sobre o OpenTelemetry.
- Aprenda a configurar o SDK do OpenTelemetry.
- Aprenda a migrar para o OpenTelemetry.
- Aprenda a usar métricas para diagnosticar a latência.