É possível usar exemplares para correlacionar dados de métricas e traces. Um exemplar é uma solicitação ou um período de amostra representativo associado a uma medição de métrica. O aplicativo pode criar e anexar exemplares a dados de métricas. Como alternativa, o Google Cloud Observability pode gerá-los dinamicamente ao criar gráficos de resultados de consultas. Ao vincular um ID de trace individual a uma métrica agregada, os exemplares ajudam a investigar rapidamente a causa raiz de picos de latência ou erros.
Este documento descreve como configurar OpenTelemetry para criar e anexar exemplares de trace aos dados de métricas.
Se você criar um gráfico dos resultados da consulta SQL em um painel, o Google Cloud Observability também poderá gerar exemplares automaticamente. Para mais informações, consulte Gerar e mostrar exemplares de trace.
Sobre os exemplares
Os exemplares são uma maneira de associar dados arbitrários a dados de métricas. É possível usá-los para anexar dados de não métricas a medições.
Um uso de exemplares é associar dados de trace a dados de métricas.
No Cloud Monitoring, os exemplares podem ser
anexados a dados de métricas que têm o Distribution
tipo de valor. As métricas com valor de distribuição coletam muitas medições e as agrupam em buckets.
Cada "ponto" é um histograma, que é uma matriz que lista as contagens de buckets.
As medições reais não são mantidas, apenas as contagens de buckets. Para mais informações, consulte
Sobre métricas com valor de distribuição.
Quando um ponto de dados de métrica é gravado, uma matriz de Exemplar
objetos pode ser anexada a esses dados. Os exemplares, quando usados, anexam informações úteis aos dados de métricas. Por exemplo,
quando o OpenTelemetry grava um exemplar, ele anexa um link ao intervalo atual
de um trace.
Os dados do histograma normalmente são exibidos usando um mapa de calor. Quando um "ponto" contém um exemplar, o Cloud Monitoring anota o mapa de calor com um ponto:
- Para conferir informações de resumo sobre o ponto de métrica, ative a dica de ferramenta da anotação.
- Para acessar o trace, selecione a anotação.
Por exemplo, a
amostra de instrumentação do Go usa o OpenTelemetry para
gravar dados de métricas, dados de trace e exemplares.
A captura de tela a seguir mostra o valor da métrica prometheus/http_server_duration_milliseconds/histogram após várias execuções do aplicativo:

A captura de tela anterior mostra vários exemplares. A dica de ferramenta de um exemplar é expandida e mostra a data, o nome do trace, os percentis e um valor de latência.
Quando a anotação é selecionada, o trace vinculado no exemplar é mostrado:

Quando as informações mostradas não são suficientemente detalhadas, selecione Ver no trace, que abre a página Trace Explorer. Nessa página, é possível conferir atributos de trace e acessar links para entradas de registro.
Como ativar exemplares do OpenTelemetry
Como o exemplo anterior ilustra, é possível configurar o OpenTelemetry para gravar exemplares que vinculam o span atual de um trace a uma medição de métrica. No entanto, para que os exemplares sejam gravados, faça o seguinte:
- Configure a métrica do OpenTelemetry e os SDKs de trace.
Para incluir exemplares na sua instrumentação personalizada, verifique se a métrica está registrada em um período e se você transmite o contexto do período com a medição da métrica.
Por exemplo, a função
computeSubrequestssegue as orientações anteriores. A funçãosubRequestsHistogram.Recordé invocada apóstracer.Starte antes despan.End, que é adiada. Observe também que o contexto,ctx, é transmitido detracer.Startpara a funçãoRecord:Para mais informações sobre esse exemplo, consulte Adicionar rastreamentos e métricas personalizados ao seu aplicativo.
A seguir
- OpenTelemetry
- Exemplares do OpenTelemetry
- Modelo de dados de métricas do OpenTelemetry
- Histograma do OpenTelemetry