
O que é OpenTelemetry?
OpenTelemetry é um projeto de código aberto e padrão unificado para instrumentação de serviços, ou uma maneira de medir o desempenho. Ele fornece uma interface de programação de aplicativo (API) única, bibliotecas, integrações e um kit de desenvolvimento de software (SDK) para linguagens de programação incluindo Java, Go e Python. As equipes de DevOps que usam a API padronizada não precisam se preocupar com alterações de código ao alternarem entre SDKs. Isso poupa tempo, reduz o esforço e otimiza o aprimoramento do desempenho e as atividades de resolução de problemas.
Patrocinado pela Cloud Native Computing Foundation (CNCF), o OpenTelemetry substituiu o OpenTracing e o OpenCensus. O objetivo é padronizar a maneira como os dados de telemetria são coletados e enviados para uma plataforma de back-end. Ele define um serviço de coletor centralizado que pode ser utilizado para coletar dados de telemetria dos seus aplicativos e serviços. E também inclui exportadores para enviar esses dados para a plataforma de observabilidade de sua escolha.
O OpenTelemetry cobre todos os três aspectos do software de monitoramento: implementação da instrumentação de registro, coleta de dados e exportação das informações para análise. Tudo isso sem vínculo aos provedores. As equipes de desenvolvimento não precisam criar manualmente soluções de monitoramento se quiserem uma solução desvinculada de provedores. Com o OpenTelemetry, não é necessário usar as bibliotecas de instrumentação do provedor da solução para atender às especificações do cliente.
Os casos de uso mais úteis do OpenTelemetry
Segundo as equipes, o OpenTelemetry tem valor inestimável nestes três caso de uso prioritários:
- Você tem dados em várias plataformas
- Você precisa de uma solução desvinculada de provedores
- Você quer otimizar as horas valiosas da equipe
Neste blog, você terá uma visão geral do que é o OpenTelemetry e por que esse padrão aberto é o futuro da instrumentação. Vamos começar com um vídeo:
Comece agora
- Consulte o guia rápido de introdução ao OpenTelemetry.
- Confira nossos exemplos de OpenTelemetry.
Benefits of OpenTelemetry
- Unified observability: OpenTelemetry provides a unified approach to observability by offering consistent APIs and instrumentation libraries for multiple programming languages.
- Distributed tracing: OpenTelemetry enables distributed tracing, allowing developers to track requests as they traverse through different services and components of a distributed application.
- Metrics collection: OpenTelemetry supports the collection of various metrics, such as request rates, error rates, and resource usage metrics.
- Context propagation: OpenTelemetry supports context propagation, ensuring that contextual information, such as trace and span IDs, is passed between different services and components.
- Plugin ecosystem: OpenTelemetry has a rich ecosystem of plugins and integrations that allow users to export telemetry data to various backends and observability platforms.
- Vendor-neutral: Being an open-source project, OpenTelemetry is vendor-neutral, meaning it is not tied to any specific vendor or technology stack.
- Community-driven innovation: This collaborative environment encourages innovation, leading to the continuous improvement of the framework and its capabilities.
- Standardization: By adopting OpenTelemetry, organizations can adhere to a widely accepted set of practices and standards for collecting telemetry data, ensuring consistency and compatibility across their applications and services.
Por que o OpenTelemetry é o futuro da instrumentação?
Como descrito no vídeo, há quatro razões para o OpenTelemetry estar mudando a instrumentação:
- Você tem acesso a um conjunto amplo e detalhado de instrumentação, pois é desenvolvido e apoiado por uma grande comunidade de código aberto. Mais de 300 empresas contribuíram para o projeto do OpenTelemetry no ano anterior, com mais de 100.000 contribuições. E a comunidade do OpenTelemetry teve mais de 2.000 contribuidores ao longo do ano anterior. Como um padrão aberto, o OpenTelemetry incentiva a colaboração ampla e promove uma melhor cobertura, flexibilidade e ubiquidade conforme engenheiros de todo o mundo contribuem para a instrumentação.
- A instrumentação padrão significa que diferentes ferramentas e serviços operam juntos, então você tem visibilidade de todo o seu sistema. O OpenTelemetry é interoperável, o que significa que vários sistemas podem usar essa forma padrão de instrumentação em todos os serviços para trocar informações. Sem uma instrumentação padrão para todos os serviços do seu aplicativo, você tem pontos cegos ou silos de dados que afetam a resolução de problemas e reduzem a sua capacidade de detectar e resolver problemas rapidamente. O OpenTelemetry acaba com as lacunas de visibilidade.
- Você tem flexibilidade para mudar suas ferramentas de observabilidade de back-end. A maioria das soluções de monitoramento proprietárias exigem que você instale agentes de instrumentação específicos para reunir dados de telemetria. Se você muda para uma ferramenta diferente, precisa gastar mais tempo e recursos instalando agentes proprietários diferentes ou reinstrumentando o seu código. Com o OpenTelemetry, seu caminho é independente de várias ferramentas proprietárias. Você pode mudar sua ferramenta de observabilidade de back-end sem ter de mudar sua instrumentação. Você tem visibilidade total do código-fonte do OpenTelemetry e insights sobre como a comunidade desenvolve recursos e corrige bugs.
- Você pode monitorar tecnologias emergentes com facilidade. Quando novas tecnologias são desenvolvidas, a instrumentação do OpenTelemetry se torna parte de bibliotecas e frameworks que seus aplicativos já estão usando. Isso significa que você não precisa esperar para que ferramentas de monitoramento individuais sejam compatíveis com as tecnologias mais recentes.
A necessidade de tornar os sistemas orquestrados como Kubernetes mais compreensíveis e o monitoramento do desempenho de aplicativos (APM) mais transparente são dois dos vários tópicos de desenvolvimento que deram origem à disciplina da observabilidade. O objetivo da observabilidade é oferecer contexto vasto e insights incrivelmente granulares sobre como os sistemas se comportam.
Por que você precisa do OpenTelemetry para sua observabilidade?
Dois dos principais tópicos de desenvolvimento de software que deram origem à disciplina da observabilidade são a necessidade de tornar os sistemas orquestrados como Kubernetes mais compreensíveis e de tornar o monitoramento do desempenho de aplicativos (APM) mais transparente. O objetivo da observabilidade é oferecer contexto vasto e insights incrivelmente granulares sobre como os sistemas se comportam.
Para ter observabilidade, você precisa:
- Criar sistemas e aplicativos que coletam dados relevantes, como métricas, traces e logs
- Ser capaz de exportar essas informações com facilidade ou de maneira automática para uma plataforma fora do programa que está sendo analisado
- Ter uma análise que forneça visualizações e insights sobre o sistema como um todo, incluindo como a experiência do usuário final é afetada pelas alterações no desenvolvimento do aplicativo
A observabilidade proporciona monitoramento holístico de sistemas e plataformas para que desenvolvedores e partes interessadas determinem como estão funcionando. Mas a observabilidade é difícil de medir e analisar sem ajuda. Ferramentas como o OpenTelemetry otimizam o monitoramento de desempenho entre provedores e linguagens e ajuda desenvolvedores a observar as métricas de observabilidade e gerar relatórios sobre elas. Para determinar se o OpenTelemetry é ideal para seu produto, desenvolvedores devem se perguntar:
- Quais linguagens de programação, plataformas e frameworks estamos usando?
- Quais tipos de dados queremos analisar?
- Quais ferramentas analíticas vamos usar para analisar os dados?
O OpenTelemetry precisa ser combinado com a observabilidade para funcionar da melhor maneira. Quando partes do coletor do OpenTelemetry (os receptores, processadores e exportadores) assimilam, compilam e distribuem dados e informações significativos em um formato que pode ser analisado adequadamente para fins de desempenho e resolução de problemas, desenvolvedores são capazes de acessar observabilidade e monitoramento totais em uma só ferramenta.
New Relic e OpenTelemetry
A New Relic tem sido uma das maiores contribuidoras do OpenTelemetry desde a sua concepção. Em 2020, anunciamos nosso comprometimento total com a instrumentação de código aberto, incluindo abrir o código de nossos agentes e padronizar nossas ofertas de observabilidade no OpenTelemetry. Com nosso suporte ao protocolo OpenTelemetry (OTLP) nativo e experiências do usuário com curadoria, você pode usar esse novo padrão de instrumentação para entender, resolver problemas e otimizar seu sistema.
Comece a explorar o OpenTelemetry hoje mesmo
Agora é o momento perfeito para começar a experimentar com o tracing do OpenTelemetry nos seus próprios aplicativos e serviços. Se quiser tentar, confira nossos exemplos de OpenTelemetry.
- Cadastre-se na New Relic grátis e comece a enviar seus dados de OpenTelemetry ainda hoje.
- Confira a segunda parte da série sobre os componentes principais do OpenTelemetry.
- Tudo pronto para aplicar seus conhecimentos e instrumentar um aplicativo básico na sua linguagem de programação preferida? Acesse a Masterclass do OpenTelemetry.
- Para mais aprendizado prático sobre OpenTelemetry, confira OpenTelemetry: an open source data collection standard (OpenTelemetry: um padrão de código aberto para coleta de dados), um curso de 90 minutos da New Relic University que você pode fazer no próprio ritmo.
Esta publicação do blog é a primeira parte da série Entenda o OpenTelemetry. Nesta publicação do blog, você tem uma visão geral do que é o OpenTelemetry e por que esse padrão aberto é o futuro da instrumentação. Nas próximas partes, Alan West, um dos responsáveis pelo projeto OpenTelemetry, e o contribuidor Jack Berg nos guiam pelos componentes principais do OpenTelemetry, as fontes de dados, como instrumentar um aplicativo com OpenTelemetry, como ver os dados no New Relic e muito mais.
A parte 2 explora os componentes principais do projeto OpenTelemetry, e a parte 3 foca as fontes de dados primárias do OpenTelemetry. A parte 4 fornece exemplos de como instrumentar um aplicativo Java com OpenTelemetry, e a parte 5 mostra como enviar os dados de OpenTelemetry para sua plataforma de back-end.
As opiniões expressas neste blog são de responsabilidade do autor e não refletem necessariamente as opiniões da New Relic. Todas as soluções oferecidas pelo autor são específicas do ambiente e não fazem parte das soluções comerciais ou do suporte oferecido pela New Relic. Junte-se a nós exclusivamente no Explorers Hub ( discuss.newrelic.com ) para perguntas e suporte relacionados a esta postagem do blog. Este blog pode conter links para conteúdo de sites de terceiros. Ao fornecer esses links, a New Relic não adota, garante, aprova ou endossa as informações, visualizações ou produtos disponíveis em tais sites.