Adicionar instrumentação personalizada do OpenTelemetry ao código do aplicativo permite registrar períodos de trace e métricas personalizados que medem o comportamento específico do aplicativo além do que as bibliotecas de framework padrão coletam. É possível aplicar os conceitos deste documento a aplicativos escritos em qualquer linguagem compatível com o OpenTelemetry. Para mais informações, consulte Observabilidade para desenvolvedores de aplicativos e Escolher uma abordagem de instrumentação.
Os exemplos neste documento usam o aplicativo de amostra do Go descrito em Exemplo de instrumentação do Go, que está disponível no GitHub.
Antes de começar
Ative as APIs Cloud Logging, Cloud Monitoring e API Cloud Trace, se ainda não estiverem ativadas.
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão serviceusage.services.enable. Se você
criou o projeto, provavelmente já tem essa permissão pelo
papel de proprietário (roles/owner). Caso contrário, é possível conseguir essa permissão pelo
papel de administrador do Service Usage (roles/serviceusage.serviceUsageAdmin).
Saiba como conceder papéis.
Criar rastreamentos personalizados
Para gerar traces personalizados do seu aplicativo, adicione código de instrumentação que cria períodos do OpenTelemetry. No OpenTelemetry, os períodos são os blocos de construção dos traces.
Para criar um período, faça o seguinte:
Modifique seu app para adquirir um OpenTelemetry
Tracer. No OpenTelemetry, um rastreador é o criador de períodos. Você pode adquirir um rastreador conforme demonstrado no código a seguir. Para ver o exemplo completo, selecione o logotipo do GitHub na barra de ferramentas do exemplo.O nome do rastreador, representado por
scopeName, identifica o escopo de instrumentação dos traces gerados.Use a instância
tracerpara criar períodos. No exemplo de código a seguir, a funçãocomputeSubrequestsgera um intervalo sempre que é chamada:No exemplo de código anterior, o período gerado pela função
computeSubrequestsrepresenta o trabalho realizado por toda a função. Isso ocorre porque a primeira etapa da função é iniciar um novo período usandotracer.Starte a palavra-chavedeferantes despan.End()garantir que o período seja encerrado logo antes do encerramento da função.
Criar métricas personalizadas
Para gerar metrics do seu aplicativo, adicione um código de instrumentação que registre as medições feitas durante a execução do seu aplicativo.
Para criar métricas, faça o seguinte:
Modifique seu app para adquirir um OpenTelemetry
Meter. No OpenTelemetry, um medidor fornece acesso a instrumentos métricos para registrar métricas. Você pode adquirir um medidor conforme demonstrado no código a seguir:O nome do medidor, representado por
scopeName, identifica o escopo de instrumentação das métricas geradas.Use a instância
meterpara criar instrumentos que possam registrar métricas. Por exemplo, o código a seguir usameterpara criar um histograma OpenTelemetry:O código anterior gera um histograma chamado
sleepHistogram.Use a instância
sleepHistogrampara registrar o tempo de suspensão, que é determinado quando a funçãorandomSleepé invocada:As métricas registradas desses instrumentos são exportadas do seu aplicativo com base na configuração do exportador OpenTelemetry.
A seguir
- Relacionar métricas e traces usando exemplos
- OpenTelemetry
- Instrumentação OpenTelemetry
- Modelo de dados de métricas do OpenTelemetry