Logo

dev-resources.site

for different kinds of informations.

Instrumentação com OpenTelemetry: Zero-Code, Code-Based ou Bibliotecas Instrumentadas?

Published at
10/5/2024
Categories
beginners
observability
opentelemetry
opensource
Author
dellamas
Author
8 person written this
dellamas
open
Instrumentação com OpenTelemetry: Zero-Code, Code-Based ou Bibliotecas Instrumentadas?

A instrumentação é o coração da observabilidade em sistemas complexos e distribuídos, e ferramentas como o OpenTelemetry estão transformando a forma como desenvolvedores e arquitetos coletam dados de suas aplicações. Neste artigo, vamos explorar as três abordagens principais de instrumentação oferecidas pelo OpenTelemetry: instrumentação zero-code, instrumentação code-based e bibliotecas instrumentadas. Cada uma delas possui suas vantagens e desvantagens, e entender qual delas utilizar pode ser determinante para o sucesso do monitoramento do seu sistema.

Instrumentação Zero-Code: Simplicidade ou Limitação?

A instrumentação zero-code é uma proposta intrigante. O conceito é simples: sem precisar modificar o código da aplicação, você consegue coletar métricas e traços diretamente. Isso se torna possível através de agentes ou ferramentas que fazem o trabalho pesado nos bastidores, interceptando chamadas e gerando os dados de observabilidade.

Imagine que você tem um sistema legado, ou até mesmo uma aplicação moderna, e precisa urgentemente começar a monitorar seu desempenho. A zero-code permite que você faça isso rapidamente. No entanto, há um lado negativo: essa abordagem pode ser limitada em termos de customização e profundidade das informações capturadas. Por exemplo, em uma aplicação complexa, como as utilizadas na série Naruto (se você fosse monitorar todos os movimentos e interações entre os personagens), a instrumentação zero-code seria suficiente para capturar os detalhes de cada combate? Provavelmente não. Ela oferece uma visão mais superficial e genérica, ideal para situações onde a velocidade é crucial, mas pode deixar a desejar quando se precisa de um nível maior de controle.

Instrumentação Code-Based: Controle Total

Se a zero-code se trata de velocidade e simplicidade, a instrumentação baseada em código é o oposto: aqui, o desenvolvedor tem controle total. Ao inserir manualmente as chamadas de instrumentação no código, é possível personalizar completamente o que é rastreado e como esses dados são reportados. Isso significa que se você precisa de visibilidade total sobre uma função específica ou fluxo de trabalho, esta é a abordagem ideal.

No entanto, essa flexibilidade vem com um preço. Requer tempo e esforço da equipe de desenvolvimento. É uma escolha particularmente vantajosa quando a aplicação exige monitoramento detalhado em áreas específicas que a instrumentação automática não cobre de forma eficiente. Se voltarmos ao exemplo de Naruto, isso seria como monitorar não só os movimentos de cada personagem, mas também suas intenções, motivações e até o fluxo de chakra. Com a instrumentação baseada em código, você pode capturar tudo isso com precisão, mas precisará trabalhar mais para configurá-la.

Bibliotecas Instrumentadas: O Melhor dos Dois Mundos?

Para aqueles que querem o meio-termo entre a simplicidade da instrumentação zero-code e o controle da code-based, as bibliotecas instrumentadas são uma excelente opção. Elas vêm pré-configuradas com pontos de instrumentação e oferecem integração nativa com o OpenTelemetry. Você pode usá-las para monitorar componentes específicos do sistema sem precisar reinventar a roda.

Bibliotecas populares como frameworks web e sistemas de banco de dados já possuem suporte nativo para OpenTelemetry, o que facilita a adoção e acelera o processo de coleta de dados. Novamente, utilizando o universo de Naruto como exemplo, seria como pegar uma biblioteca pronta para monitorar os combates de cada ninja sem precisar escrever o código para isso do zero. Prático, não?

Conclusão

No final das contas, a escolha entre zero-code, code-based ou bibliotecas instrumentadas vai depender das necessidades do seu projeto e da sua equipe. Se você precisa de uma solução rápida e eficiente, zero-code pode ser a melhor escolha. Mas se o seu foco é controle e precisão, code-based provavelmente será o caminho. Já as bibliotecas instrumentadas oferecem um excelente compromisso entre ambos.

Luis De Llamas

opentelemetry Article's
30 articles in total
Favicon
OpenTelemetry Collector Implementation Guide: Unified Observability for Modern Systems
Favicon
Auto-Instrumentação com OpenTelemetry no EKS [Lab Session]
Favicon
InsightfulAI v0.3.0a1 Update: Railway Oriented Programming and Enhanced OpenTelemetry for Robust Pipelines
Favicon
Using OpenTelemetry with gRPC in Node.js and Express Hybrid Applications
Favicon
Enhancing Observability in Machine Learning with OpenTelemetry: InsightfulAI Update
Favicon
From Zero to Observability: Your first steps sending OpenTelemetry data to an Observability backend
Favicon
Usando stack de monitoria opensource no Kubernetes (sem Prometheus)
Favicon
Observing Spin Apps with OpenTelemetry and the .NET Aspire Dashboard
Favicon
Golang com Opentelemetry, prometheus, Grafana tempo OSS e Grafana padrão
Favicon
Monitor R Applications with an OpenTelemetry Collector
Favicon
Understanding Open telemetry and Observability for SRE
Favicon
How to publish JetBrains Rider plugin for opentelemetry/honeycomb
Favicon
Tracetest Tip: Testing Span Order with Assertions
Favicon
How to publish JetBrains Rider plugin for opentelemetry/honeycomb
Favicon
Monitoring Browser Applications with OpenTelemetry
Favicon
Instrumentação com OpenTelemetry: Zero-Code, Code-Based ou Bibliotecas Instrumentadas?
Favicon
OpenTelemetry: Traces, Métricas, Logs e Baggage
Favicon
Getting Started with OpenTelemetry
Favicon
Explorando a Observabilidade com OpenTelemetry: Propagação de Contexto e Arquiteturas Distribuídas
Favicon
Observability with ASP.NET Core using OpenTelemetry, Prometheus and Grafana
Favicon
Trace-Based Tests with GraphQL in Action!
Favicon
Wednesday Links - Edition 2024-08-07
Favicon
Implementing an Order Processing System: Part 5 - Distributed Tracing and Logging
Favicon
Tracetest Monitors: Synthetic Monitoring with OpenTelemetry and Playwright
Favicon
Unlocking Open Source Observability: OpenTelemetry, Prometheus, Thanos, Grafana, Jaeger, and OpenSearch
Favicon
Announcing Tracetest Enterprise On-Prem Solution
Favicon
OpenTelemetry with Elastic Observability
Favicon
Performans Ve Güvenilirlik Ölçekleri
Favicon
OpenTelemetry Metrics meets Azure
Favicon
OpenTelemetry Tracing on Spring Boot, Java Agent vs. Micrometer Tracing

Featured ones: