Se você escreve aplicativos, pode instrumentar seu código para gerar telemetria e ter uma observabilidade detalhada do comportamento interno do ambiente de execução do aplicativo. Esta página apresenta conceitos de instrumentação no processo, explica os benefícios de frameworks neutros em relação a fornecedores, como o OpenTelemetry, e direciona você a guias e exemplos de código específicos da linguagem para o Google Cloud Observability.
O que são instrumentação e observabilidade?
Instrumentação é o código específico que gera ou coleta dados sobre o comportamento do ambiente de execução do aplicativo. Dentro do aplicativo, a instrumentação, como a fornecida pelo OpenTelemetry, pode coletar informações específicas do domínio sobre o ambiente de execução da linguagem, framework ou lógica do aplicativo e, em seguida, enviar esses dados para um Google Cloud projeto ou para algum outro destino. Esses dados, também conhecidos como telemetria, incluem registros, métricas, e traces.
As métricas no nível do sistema, como uso da CPU, uso da memória e uso do disco, são valiosas para detectar problemas com o aplicativo, mas não fornecem muitos insights sobre as preocupações no nível do aplicativo. A instrumentação pode ajudar seu aplicativo a gerar os dados necessários para diagnosticar a causa raiz de um problema, porque a telemetria resultante mostra o que está acontecendo nele. Por exemplo, os registros geralmente incluem contexto sobre o programa, como uma mensagem de erro ou stack trace específicos, e o local no código-fonte. Da mesma forma, os traces distribuídos ajudam a entender como vários serviços interagem ao processar solicitações. As métricas permitem determinar quando o aplicativo não está se comportando corretamente.
A instrumentação do aplicativo envolve a geração de telemetria e o envio dela para um sistema em que os dados podem ser armazenados e consultados. Por exemplo, sua instrumentação pode enviar telemetria para um Google Cloud projeto. Os serviços no Google Cloud Observability ajudam a coletar, analisar e correlacionar dados de telemetria. Eles também fornecem padrões integrados para ajudar você a começar mais rapidamente, como painéis padrão e políticas de alerta. Para mais informações sobre o Google Cloud Observability, consulte Observabilidade em Google Cloud.
A figura a seguir ilustra como um aplicativo usa a instrumentação para gerar e enviar telemetria para um sistema de armazenamento:
Conforme ilustrado na figura anterior, o código de instrumentação existe no processo do aplicativo e interage com ele para gerar dados de telemetria. Em seguida, o framework de instrumentação exporta a telemetria para um sistema de armazenamento configurado. Na figura, o sistema de armazenamento é seu Google Cloud projeto.
Por que usar frameworks de instrumentação independentes de fornecedor
Mesmo que você pretenda enviar telemetria apenas para Google Cloud, recomendamos que você use um framework de instrumentação de código aberto neutro em relação a fornecedores para instrumentar seus aplicativos. Esses tipos de framework têm alguns benefícios importantes:
- Sem dependência de fornecedores
- Os frameworks neutros em relação a fornecedores não estão vinculados a nenhum fornecedor específico e fornecem o próprio modelo de dados para a telemetria gerada. Portanto, é possível enviar dados para vários fornecedores e, geralmente, é possível mudar o fornecedor usado sem modificar seu código.
- Procedimentos padronizados para coleta de telemetria
- Frameworks bem projetados, como o OpenTelemetry, oferecem uma abordagem padronizada para coletar telemetria de aplicativos. Você pode usar o mesmo framework para aplicativos escritos em linguagens compatíveis. Como o framework é padronizado, é possível coletar e comparar a telemetria de todos os seus serviços.
- Bibliotecas interoperabilidade
- Os frameworks de instrumentação incluem um amplo ecossistema de bibliotecas que coletam sinais de telemetria e são interoperáveis. Por exemplo, o OpenTelemetry fornece bibliotecas para coletar dados de trace e coletar dados de métricas. Você pode usar uma delas ou as duas.
Determinar sua estratégia de instrumentação
- Escolha uma abordagem de instrumentação que forneça recomendações de instrumentação com base na sua plataforma de Google Cloud computação e nos requisitos de telemetria.
- O que é o OpenTelemetry? descreve a missão e as metas do OpenTelemetry.
- Observabilidade em Google Cloud fornece informações gerais.
Exemplos e guias de implementação
Visão geral do exemplo descreve a arquitetura e os papéis necessários do Identity and Access Management para os seguintes exemplos de código baseados em coletores:
Migrar do exportador de traces para o endpoint OTLP descreve como atualizar um aplicativo que usa exportação direta para enviar dados de trace formatados em OTLP.
Usar a instrumentação de código zero do OpenTelemetry para cargas de trabalho Java no GKE descreve como coletar telemetria sem modificar o aplicativo Java.