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
Tracerdo 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
tracerpara criar intervalos. No exemplo de código seguinte, a funçãocomputeSubrequestsgera um intervalo sempre que é chamada:No exemplo de código anterior, o intervalo gerado a partir da função
computeSubrequestsrepresenta 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.Starte a palavra-chavedeferantes 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
Meterdo 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
meterpara criar instrumentos que podem registar métricas. Por exemplo, no código seguinte, usamos ometerpara criar um OpenTelemetry Histogram:Este código anterior gera um histograma denominado
sleepHistogram.Use a instância
sleepHistogrampara 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