O que é OpenTelemetry?
OpenTelemetry é uma poderosa estrutura de código aberto que tem o potencial de revolucionar a maneira como os desenvolvedores abordam a observabilidade em seus aplicativos. Com sua capacidade de coletar e transmitir dados de telemetria em vários idiomas, estruturas e ambientes, o OpenTelemetry oferece vários benefícios que podem ajudar as organizações a simplificar seus processos de monitoramento e depuração. Uma definição mais genérica seria: Framework independente do fornecedor que capacita as equipes DevOps a coletarem informações de desempenho de maneira padronizada.
Um dos principais benefícios do OpenTelemetry é sua flexibilidade. Como uma estrutura de código aberto, o OpenTelemetry permite que os desenvolvedores personalizem os dados de telemetria que coletam e como são transmitidos, facilitando a integração com ferramentas e fluxos de trabalho existentes. Isso significa que os desenvolvedores podem monitorar mais facilmente seus aplicativos em tempo real, identificar e solucionar problemas à medida que surgem e, por fim, melhorar o desempenho geral e a confiabilidade de seus aplicativos.
Outro benefício importante do OpenTelemetry é sua capacidade de fornecer dados mais detalhados e abrangentes sobre o desempenho de um aplicativo. Ao coletar e transmitir dados de telemetria em várias camadas de um aplicativo, o OpenTelemetry pode ajudar os desenvolvedores a identificar problemas que podem passar despercebidos por ferramentas de monitoramento mais tradicionais. Isso pode incluir coisas como chamadas de API lentas, uso excessivo de memória e código ineficiente, todos os quais podem ter um impacto significativo no desempenho de um aplicativo.
Que tipo de Informações se coleta?
Podem ser coletados rastros (traces), métricas, logs e eventos. As métricas por exemplo, são de grande importância para nos indicar um possível problema e impacto na experiência do nosso cliente (Golden signals)
OpenTelemetry também foi projetado para ser altamente escalável, tornando-o adequado para uso em aplicativos grandes e complexos. Com sua capacidade de lidar com grandes volumes de dados de telemetria em vários ambientes, o OpenTelemetry pode ajudar as organizações a monitorar e depurar seus aplicativos em escala, sem sacrificar o desempenho ou a confiabilidade.
OpenTelemetry tem uma interface, uma console, onde eu vejo os dados?
Não. Você utiliza OpenTelemetry para coletar os dados e entregá-los a alguma solução que vai te permitir a visualização. Para o caso de traces temos por exemplo o Jaeger, o ZipKin e o AppDynamics.
Legal, como eu faço para coletar os dados?
Você pode usar um SDK ou um agente. Com o SDK você vai ter de fazer pequenas alterações no seu código fonte, o lado bom é que você controla exatamente o que você vai coletar. Utilizando um agente você vai ter o que chamamos de instrumentação automática. O próprio agente vai ter a inteligência de coletar várias informações interessantes.
Olha só um exemplo de como fazer com SDK e outro de como usar o agente.
Eu já uso AppDynamics, preciso trocar meus agentes?
De forma alguma. O que atualmente é monitorado pelo AppDynamics continua assim. Para aplicações que ainda não são monitoradas você pode optar entre usar os agentes do AppDynamics ou agentes OpenTelemetry.
Eu posso usar agentes OpenTelemetry e mandar as informações para o Jaeger e para o AppDynamics?
Claro que sim! Com uma mudança simples na configuração do OpenTelemetry Collector você envia os dados para o Jaeger e para o AppDynamics ao mesmo tempo. A grande vantagem disso é que vai ser possível você visualizar, em um só lugar, as informações coletadas pelos agentes OpenTelemetry e AppDynamics. Eu mostro isso em detalhes nesse post.
Com OpenTelemetry eu fico limitado a monitoração de linguagens tipo java, python ou é possível coletar telemetria de outras tecnologias?
Essa é a outra grande vantagem do OpenTelemetry. Como é um framework popular e aberto já existem coletas para várias tecnologias diferentes. Você pode conferir quais nessa página aqui. Sugiro também ver esse post que escrevi mostrando como coletar dados do Nginx e visualizá-los no AppDynamics.
Olhando para o futuro, a visão do OpenTelemetry é se tornar o padrão de fato para observabilidade na era Cloud Native. À medida que mais organizações adotam arquiteturas nativas da nuvem e aplicativos baseados em microsserviços, a necessidade de ferramentas de observabilidade abrangentes, flexíveis e escaláveis como AppDynamics continuará a crescer. Ao fornecer uma estrutura unificada para coletar e transmitir dados de telemetria em vários idiomas, estruturas e ambientes, o OpenTelemetry está prestes a se tornar um componente crítico de qualquer estratégia de observabilidade.
Em resumo, o OpenTelemetry com AppDynamics oferece vários benefícios significativos para organizações que buscam melhorar a capacidade de observação de seus aplicativos. Com flexibilidade, escalabilidade e capacidade de fornecer dados detalhados e abrangentes sobre o desempenho de um aplicativo, tem o potencial de revolucionar a maneira como os desenvolvedores abordam o monitoramento e a depuração e ajudam as organizações a garantir o desempenho e a confiabilidade de seus aplicativos na era nativa da nuvem.
Saiba mais: https://www.appdynamics.com/topics/what-is-open-telemetry