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. 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, 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.
O que são dados de telemetria?
Os dados de telemetria são os dados coletados de dispositivos remotos ou inacessíveis e transmitidos para um local central para monitoramento, análise e relatório. Esses dados costumam ser coletados de várias fontes, como sensores, aplicativos de software e outros dispositivos de monitoramento, e são usados para monitorar os padrões de desempenho, comportamento e uso de sistemas e aplicativos.
Os dados de telemetria são cruciais por vários motivos:
- Monitoramento de desempenho: os dados de telemetria fornecem insights em tempo real sobre o uso de recursos, os tempos de resposta e outras métricas de desempenho, permitindo uma manutenção e otimização proativas.
- Detecção e resolução de problemas: a análise de dados de telemetria ajuda as equipes a detectar problemas, erros e anomalias em sistemas e aplicativos.
- Planejamento de capacidade: ao entender os padrões e as tendências de uso atuais, administradores de TI podem tomar decisões bem informadas sobre alocação de recursos e atualizações de infraestrutura.
- Monitoramento de segurança: os dados de telemetria são usados para detectar e responder a ameaças de segurança, violações e tentativas de acesso não autorizado.
- Melhoria da experiência do usuário: os dados de telemetria fornecem insights sobre o comportamento e as preferências do usuário. Essas informações são valiosas para que desenvolvedores e equipes de produto aprimorem a experiência do usuário e otimizem os produtos com base em dados de usuários reais.
Conformidade e relatórios: as organizações precisam coletar e armazenar dados específicos para ficar em conformidade com os regulamentos e padrões do setor. Os sistemas de telemetria podem automatizar o processo de coleta de dados e criação de relatórios, garantindo a conformidade com leis e regulamentos relevantes.
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.
Benefícios do OpenTelemetry
- Observabilidade unificada: o OpenTelemetry proporciona uma abordagem unificada à observabilidade, fornecendo APIs e bibliotecas de instrumentação consistentes para várias linguagens de programação.
- Distributed tracing: o OpenTelemetry habilita o distributed tracing, permitindo que desenvolvedores acompanhem as solicitações conforme passam pelos diferentes serviços e componentes de um aplicativo distribuído.
- Coleta de métricas: o OpenTelemetry é compatível com a coleta de várias métricas, como taxas de solicitação, taxas de erros e métricas de uso de recursos.
- Propagação de contexto: o OpenTelemetry é compatível com a propagação de contexto, garantindo que as informações contextuais, como IDs de trace e span, sejam passadas entre diferentes serviços e componentes.
- Ecossistema de plug-ins: o OpenTelemetry tem um rico ecossistema de plug-ins e integrações que permite aos usuários exportar dados de telemetria para vários backends e plataformas de observabilidade.
- Sem vínculo a provedores: sendo um projeto de código aberto, o OpenTelemetry não é vinculado a provedores, o que significa que não está amarrado a nenhum provedor ou stack de tecnologia específico.
- Inovação viabilizada pela comunidade: esse ambiente colaborativo incentiva a inovação, levando à melhoria contínua do framework e de suas capacidades.
- Padronização: ao adotar o OpenTelemetry, as organizações podem aderir a um conjunto amplamente aceito de práticas e padrões para a coleta de dados de telemetria, garantindo consistência e compatibilidade entre aplicativos e serviços.
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 backends de 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.