Observabilidade para desenvolvedores de aplicativos

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:

Figura ilustrando a arquitetura da instrumentação em processo.

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

Exemplos e guias de implementação