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. 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: implementación de la instrumentación, captación de los datos y 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.

¿Qué son datos de telemetría?

Los datos de telemetría son los datos recopilados de dispositivos remotos o inaccesibles que se transmiten a una ubicación central para el monitoreo, el análisis y la generación de informes. Estos datos suelen recopilarse de distintas fuentes, como sensores, aplicaciones de software y otros dispositivos de monitoreo, y se utilizan para monitorear el rendimiento, el comportamiento y los patrones de uso de los sistemas y las aplicaciones.

Los datos de telemetría son cruciales por varias razones:

  1. Monitoreo del rendimiento: los datos de telemetría proporcionan información valiosa en tiempo real sobre el uso de los recursos, los tiempos de respuesta y otras métricas de rendimiento, lo que hace posible ofrecer mantenimiento y optimización de manera proactiva.
  2. Detección y resolución de problemas: el análisis de los datos de telemetría ayuda a los equipos a detectar problemas, errores y anomalías en los sistemas y las aplicaciones. 
  3. Planificación de la capacidad: si comprenden los patrones y las tendencias del uso actual, los administradores de TI podrán tomar decisiones bien fundamentadas acerca de la asignación de recursos y las mejoras de la infraestructura.
  4. Monitoreo de la seguridad: los datos de telemetría se usan para detectar y responder a amenazas y violaciones de la seguridad y a intentos de acceso no autorizado.
  5. Mejora de la experiencia del usuario: los datos de telemetría proporcionan información útil sobre el comportamiento y las preferencias de los usuarios. Esta información es valiosa para los desarrolladores y los equipos del producto porque permite mejorar la experiencia de los usuarios y optimizar los productos utilizando datos de usuarios reales.

Cumplimiento e informes: las organizaciones tienen que recopilar y almacenar datos específicos para cumplir con los reglamentos y las normas de la industria. Los sistemas de telemetría pueden automatizar el proceso de recopilación de datos y generación de informes para garantizar el cumplimiento de las leyes y los reglamentos correspondientes.

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 varias 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:

Beneficios de OpenTelemetry

  1. Observabilidad unificada: OpenTelemetry proporciona un enfoque unificado a la observabilidad ya que ofrece API y bibliotecas de instrumentación coherentes para varios lenguajes de programación. 
  2. Rastreo distribuido: OpenTelemetry habilita el rastreo distribuido que permite a los desarrolladores hacer seguimiento de las solicitudes a medida que pasan por los distintos servicios y componentes de una aplicación distribuida. 
  3. Recopilación de métricas: OpenTelemetry admite la recopilación de una variedad de métricas, como las tasas de solicitudes, tasas de errores y métricas de uso de recursos.
  4. Propagación del contexto: OpenTelemetry admite la propagación del contexto para garantizar que la información contextual, como las ID de traza y span, se difunda por los distintos servicios y componentes. 
  5. Ecosistema de plugins: OpenTelemetry tiene un vasto ecosistema de plugins e integraciones que permite a los usuarios exportar los datos de telemetría a varios back-ends y plataformas de observabilidad. 
  6. No depende de un proveedor: OpenTelemetry es un proyecto de código abierto y, por lo tanto, es independiente del proveedor, lo que quiere decir que no está vinculado con ningún proveedor específico o stack de tecnología. 
  7. Innovación impulsada por la comunidad: este entorno de colaboración fomenta la innovación y hace posible una mejora continua del framework y sus capacidades.
  8. Estandarización: si adoptan OpenTelemetry, las organizaciones podrán adherirse a un conjunto ampliamente aceptado de prácticas y estándares para la recopilación de datos de telemetría, y así asegurar la coherencia y compatibilidad en sus distintas aplicaciones y servicios.

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 de OpenTelemetry 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 OpenTelemetry (y otras análogas) 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 los back-ends de 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 supervisión 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.