Primeros pasos con OpenTelemetry
binoculares apuntando hacia la ciudad

¿Qué es OpenTelemetry? 

OpenTelemetry es un proyecto de código abierto y un estándar unificado para la instrumentación de servicios, o una manera de medir el rendimiento. Proporciona una única interfaz de programación de aplicaciones (API), bibliotecas, integraciones y un kit de desarrollo de software (SDK) para lenguajes de programación, incluidos Java, Go y Python. Los equipos de DevOps que utilizan la API estandarizada no tienen que preocuparse por los cambios de código cuando cambian de un SDK a otro. Esto les permite ahorrar tiempo, reducir el esfuerzo y simplificar la mejora del rendimiento y las actividades de resolución de problemas.

Patrocinado por la Cloud Native Computing Foundation (CNCF), OpenTelemetry ha reemplazado a OpenTracing y OpenCensus. El objetivo es estandarizar la manera de recopilar y enviar los datos de telemetría a una plataforma del back-end.  Define un servicio de recopilación centralizado que puedes utilizar para recopilar los datos de telemetría de tus aplicaciones y servicios. Y también incluye exportadores para enviar esos datos a la plataforma de observabilidad de tu elección.

OpenTelemetry incluye los tres aspectos del software de monitoreo: la implementación de la instrumentación de registro, la captación de datos y la exportación de la información para el análisis. Además, es independiente del proveedor. Los equipos de desarrollo no tienen necesidad de crear soluciones de monitoreo manualmente si desean una solución que no depende del proveedor. Con OpenTelemetry, no tendrás que utilizar las bibliotecas de instrumentación del proveedor de la solución para cumplir con las especificaciones de los clientes.

Los casos de uso más valiosos de OpenTelemetry

Los equipos encuentran que OpenTelemetry es más valioso en tres casos de uso prioritarios:

  • Tienes datos en distintas plataformas
  • No deseas depender del proveedor
  • Deseas optimizar las horas valiosas del equipo

En esta publicación del blog, encontrarás información general sobre OpenTelemetry y por qué este estándar abierto es el futuro de la instrumentación.  Comencemos con un video:

Por qué OpenTelemetry es el futuro de la instrumentación

Como se describe en el video, hay cuatro razones por las que OpenTelemetry está transformando la instrumentación:

  1. Tienes acceso a un conjunto de opciones de instrumentación que es extenso y exhaustivo, porque ha sido creado y es mantenido por una amplia comunidad de código abierto. Más de 300 compañías contribuyeron al proyecto de OpenTelemetry el año pasado, con más de 100,000 colaboradores. Y la comunidad de OpenTelemetry tuvo más de 2000 colaboradores en el último año. Como estándar abierto, OpenTelemetry fomenta una amplia colaboración y promueve una mejor cobertura, flexibilidad y ubicuidad ya que ingenieros de todas partes del mundo colaboran con la instrumentación.  
  2. Una instrumentación estándar significa que diferentes herramientas y servicios funcionan juntos, lo que te permite tener visibilidad de todo el sistema. OpenTelemetry es interoperable, lo que quiere decir que varios sistemas pueden usar esta forma estándar de instrumentación en todos los servicios para intercambiar información. Si no tienes una instrumentación estándar en todos los servicios de tu aplicación, tendrás  puntos ciegos o silos de datos que afectan la resolución de problemas y reducen la posibilidad de detectar y resolver problemas con rapidez. OpenTelemetry cierra las brechas de visibilidad.
  3. Tienes la flexibilidad de cambiar tus herramientas de observabilidad del back-end. La mayoría de las soluciones de monitoreo patentadas requieren la instalación de agentes de instrumentación específicos para recopilar datos de telemetría. Si cambias a una herramienta diferente, tendrás que invertir más tiempo y recursos en instalar diferentes agentes patentados o en volver a instrumentar tu código. Con OpenTelemetry, tu trayectoria no depende de las distintas herramientas patentadas. Puedes cambiar tu herramienta de observabilidad del back-end sin necesidad de cambiar tu instrumentación. Tienes completa visibilidad del código fuente de OpenTelemetry e información valiosa sobre cómo la comunidad desarrolla características y corrige errores.
  4. Puedes monitorear fácilmente las tecnologías emergentes.  Cuando se desarrollan nuevas tecnologías, la instrumentación de OpenTelemetry se convierte en parte de las bibliotecas y los frameworks que tus aplicaciones ya están utilizando. Eso quiere decir que no tendrás que esperar a que lleguen ciertas herramientas de monitoreo para poder admitir las tecnologías más avanzadas.

La necesidad de hacer que los sistemas orquestados como Kubernetes sean más comprensibles y que el monitoreo del rendimiento de aplicaciones (APM) sea más transparente son dos de los muchos temas de desarrollo que dieron origen a la disciplina de observabilidad. El objetivo de la observabilidad es ofrecer un contexto amplio e información increíblemente detallada sobre el comportamiento de los sistemas. 

Por qué se necesita OpenTelemetry para la observabilidad

Los dos temas principales de desarrollo de software que dieron origen a la disciplina de la observabilidad son la necesidad de hacer que los sistemas orquestados como Kubernetes sean más comprensibles y la necesidad de hacer que el monitoreo del rendimiento de aplicaciones (APM) sea más transparente. El objetivo de la observabilidad es ofrecer un contexto amplio e información increíblemente detallada sobre el comportamiento de los sistemas. 

Para la observabilidad, es necesario: 

  • crear sistemas y aplicaciones que recopilen datos relevantes como métricas, trazas y logs 
  • poder exportar esa información de manera fácil y automática a una plataforma fuera del programa que se está analizando 
  • que el análisis proporcione visualizaciones e información del sistema en su totalidad, lo que incluye cómo se verá afectada la experiencia del usuario final por los cambios en el desarrollo de la aplicación

La observabilidad proporciona un monitoreo integral de los sistemas y las plataformas para que los desarrolladores y los interesados puedan determinar cómo están funcionando. Pero la observabilidad es difícil de medir y analizar sin ayuda. Las herramientas como OpenTelemetry simplifican el monitoreo del rendimiento de los distintos proveedores y lenguajes y ayudan a los desarrolladores a vigilar las métricas de observabilidad y reportar sobre ellas. Para determinar si OpenTelemetry es adecuado para un producto, los desarrolladores deben hacerse las siguientes preguntas: 

  • ¿Qué lenguaje de programación, plataforma y frameworks estamos utilizando?  
  • ¿Qué tipos de datos queremos analizar? 
  • ¿A qué herramientas de análisis vamos a enviar los datos para el análisis? 

OpenTelemetry tiene que combinarse con la observabilidad para que pueda funcionar de la mejor manera. Cuando partes del recopilador de OpenTelemetry (los receptores, procesadores y exportadores) ingieren, compilan y distribuyen datos e información significativos en un formato que se puede analizar correctamente para fines de rendimiento y resolución de problemas, los desarrolladores tienen acceso a la observabilidad completa y el monitoreo en una sola herramienta.

New Relic y OpenTelemetry

New Relic ha sido uno de los principales colaboradores de OpenTelemetry desde su inicio.  En 2020, anunciamos nuestro compromiso total con la instrumentación de código abierto, incluido el código abierto de nuestros agentes y la estandarización de nuestras ofertas de observabilidad en OpenTelemetry.  Gracias a la compatibilidad nativa con OpenTelemetry Protocol (OTLP) y las experiencias de usuario seleccionadas, puedes utilizar este nuevo estándar de instrumentación para comprender, solucionar problemas y optimizar tus sistemas.