Este documento descreve como adicionar código de observabilidade à sua aplicação através do OpenTelemetry. O OpenTelemetry fornece bibliotecas de instrumentação que geram telemetria para frameworks populares. Pode aumentar a telemetria gerada pela biblioteca adicionando instrumentação personalizada que mede o comportamento específico da sua aplicação.
Os princípios e os conceitos descritos neste documento podem ser aplicados a apps escritas em todos os idiomas suportados pelo OpenTelemetry. Para saber mais sobre a instrumentação, consulte os seguintes documentos:
O código de exemplo, que é a mesma app Go descrita no exemplo de instrumentação Go, está disponível no GitHub. Para ver o exemplo completo, clique em more_vert Mais e, de seguida, selecione Ver no GitHub.
Antes de começar
Enable the Cloud Logging, Cloud Monitoring, and Cloud Trace APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM
role (roles/serviceusage.serviceUsageAdmin
), which
contains the serviceusage.services.enable
permission. Learn how to grant
roles.
Crie rastreios personalizados
Para gerar rastreios personalizados a partir da sua aplicação, adicione código de instrumentação que cria extensões do OpenTelemetry. No OpenTelemetry, os intervalos são os componentes fundamentais dos rastreios.
Para criar um intervalo, faça o seguinte:
Modifique a sua app para adquirir um
Tracer
do OpenTelemetry. No OpenTelemetry, um rastreador é um criador de intervalos. Pode adquirir um rastreador, conforme demonstrado no seguinte código:O nome do rastreador, representado por
scopeName
, identifica o âmbito da instrumentação dos rastreios gerados.Use a instância
tracer
para criar intervalos. No exemplo de código seguinte, a funçãocomputeSubrequests
gera um intervalo sempre que é chamada:No exemplo de código anterior, o intervalo gerado a partir da função
computeSubrequests
representa o trabalho realizado por toda a função. Isto deve-se ao facto de o primeiro passo da função ser iniciar um novo intervalo comtracer.Start
e a palavra-chavedefer
antes despan.End()
garantir que o intervalo termina imediatamente antes de a função terminar.
Crie métricas personalizadas
Para gerar métricas a partir da sua aplicação, adicione código de instrumentação que regista as medições feitas durante a execução da app.
Para criar métricas, faça o seguinte:
Modifique a sua app para adquirir um
Meter
do OpenTelemetry. No OpenTelemetry, um medidor fornece acesso a instrumentos de métricas para registar métricas. Pode adquirir um contador, conforme demonstrado no seguinte código:O nome do contador, representado por
scopeName
, identifica o âmbito da instrumentação das métricas geradas.Use a instância
meter
para criar instrumentos que podem registar métricas. Por exemplo, no código seguinte, usamos ometer
para criar um OpenTelemetry Histogram:Este código anterior gera um histograma denominado
sleepHistogram
.Use a instância
sleepHistogram
para registar a hora de dormir, que é determinada quando a funçãorandomSleep
é invocada:As métricas registadas destes instrumentos são exportadas da sua aplicação com base na configuração do exportador do OpenTelemetry.
O que se segue?
- Correlacione métricas e rastreios através de exemplos
- OpenTelemetry
- Instrumentação do OpenTelemetry
- Modelo de dados de métricas do OpenTelemetry