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ção- computeSubrequestsgera 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 com- tracer.Starte a palavra-chave- deferantes de- span.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 o- meterpara 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ção- randomSleepé 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