¿Qué es OpenTelemetry?

Dos compañeros de trabajo en una sala de servidores mirando un ordenador portátil

Autores

Chrystal R. China

Staff Writer, Automation & ITOps

IBM Think

¿Qué es OpenTelemetry?

OpenTelemetry, u OTel, es un marco de observabilidad de código abierto que incluye una colección de kits de desarrollo de software (SDK), API independientes del proveedor y otras herramientas para la instrumentación de aplicaciones, sistemas y dispositivos.

OTel simplifica la recogida de datos telemétricos, independientemente del lenguaje de programación, la infraestructura o el entorno de tiempo de ejecución, y permite a los desarrolladores generar, recoger y exportar datos telemétricos normalizados para cualquier backend de observabilidad. Este marco estandarizado refuerza y amplía las capacidades de observabilidad, y proporciona a los equipos de TI y DevOps una mayor flexibilidad.  

OTel se implementa entre aplicaciones, sistemas y dispositivos, y soluciones de back-end: el almacenamiento y la visualización se dejan intencionalmente en manos de otras herramientas, lo que otorga a las organizaciones la libertad de elegir las herramientas que mejor se adapten a ellas.

La observabilidad es la capacidad de obtener conocimientos sobre el funcionamiento interno de un sistema mediante el análisis de sus resultados. En las operaciones de TI (ITOps) y el cloud computing, los datos de telemetría (como registros, métricas y rastreos) se utilizan para evaluar el rendimiento y el estado del sistema. Los profesionales de DevOps confían en la instrumentación (añadir código a las aplicaciones y los sistemas para producir y capturar datos de telemetría) para crear sistemas observables.

Esta instrumentación suele ser una tarea compleja cuando se trabaja en entornos modernos, con entornos de cloud híbrido y multinube, aplicaciones basadas en microservicios, contenedores Kubernetes y otras características de los entornos informáticos actuales. Estos sistemas distribuidos, y los diversos lenguajes de programación y tiempos de ejecución que incorporan, presentan una matriz complicada de instrumentar, recopilar y exportar para el almacenamiento, la visualización y el análisis de back-end.

Para obtener una comprensión completa del rendimiento de los servicios y aplicaciones de red, los ingenieros deben configurar instrumentación personalizada para aplicaciones y sistemas en toda la infraestructura. OpenTelemetry ayuda a resolver este problema.

OTel proporciona un método estándar para recopilar y transmitir datos de observabilidad, lo que ayuda a simplificar la supervisión en sistemas distribuidos. Utiliza bibliotecas y API unificadas e independientes del proveedor para recopilar y enviar datos telemétricos a las plataformas backend. Al adoptar OpenTelemetry, los equipos pueden recopilar y procesar de manera uniforme la telemetría en sistemas complejos, independientemente de las aplicaciones que gestionen o de las herramientas de observabilidad que utilicen.

Diseño 3D de bolas rodando por un circuito

Las últimas noticias + conocimientos de IA 


Descubra ideas y noticias de expertos sobre IA, nube y mucho más en el boletín semanal Think. 

¿Por qué es importante OpenTelemetry para la observabilidad?

El código de instrumentación solía variar mucho. Y como ningún proveedor comercial ofrecía una herramienta capaz de recopilar datos de todas las aplicaciones y servicios de una red, a las empresas les resultaba difícil recopilar datos en diferentes idiomas y formatos o cambiar los backends.

Si, por ejemplo, un equipo de desarrollo quisiera cambiar las herramientas de backend, tendría que volver a instrumentar completamente su código y configurar nuevos agentes para enviar datos de telemetría a los nuevos servidores. Además, este enfoque fragmentado creaba silos de datos y confusión, lo que dificultaba la resolución de problemas de rendimiento de forma eficaz.

OpenTelemetry representó un avance significativo en las herramientas de observabilidad porque estandarizó la forma en que se recopilan, analizan y transmiten los datos de telemetría a las plataformas de back-end. Proporciona una solución de código abierto, basada en estándares impulsados por la comunidad, para recopilar datos sobre el comportamiento y la seguridad del sistema, ayudando a los equipos a optimizar la monitorización y la observabilidad en ecosistemas distribuidos. Como tal, OTel ofrece a las empresas un enfoque abierto y coherente para recopilar datos críticos de aplicaciones y servicios de red.

La evolución de OpenTelemetry

OpenTelemetry se creó combinando las capacidades de rastreo distribuido de OpenTracing y OpenCensus en una sola herramienta. OpenTracing fue un proyecto de código abierto diseñado por la Cloud Native Computing Foundation (CNCF) para proporcionar a los ingenieros una API independiente del proveedor para agregar instrumentación de rastreo distribuido a las aplicaciones. Estableció un conjunto de convenciones semánticas para ayudar a garantizar la coherencia en los datos de telemetría.

Sin embargo, a diferencia de OpenTelemetry, OpenTracing no era en sí una implementación de rastreo. Más bien, proporcionó interfaces que los sistemas de rastreo podían implementar para maximizar la compatibilidad entre plataformas. OpenTracing es un proyecto extinto (que ahora alienta a los usuarios a migrar a OpenTelemetry), pero varias soluciones de software y rastreo aún dependen de sus API.

OpenCensus es un conjunto de bibliotecas de instrumentación, desarrolladas por Google, para recopilar métricas de aplicaciones y rastreos distribuidos, que pueden exportar datos a diferentes backends en tiempo real. Recopila datos utilizando etiquetas de propagación y metadatos coherentes, un concepto que ahora existe en OpenTelemetry como "recursos".

Con OpenCensus, las aplicaciones pueden importar y exportar datos en función de sus requisitos específicos, lo que garantiza la flexibilidad en la forma en que se envían las métricas y las trazas a los backends de observabilidad. OpenCensus no se ha descatalogado formalmente como OpenTracing; sigue recibiendo mantenimiento regular y actualizaciones de seguridad. Sin embargo, el desarrollo activo se ha desplazado en gran medida a OpenTelemetry.

Ambos proyectos pretendían abordar la misma cuestión. En aquel momento, los equipos de desarrollo no disponían de una forma estándar de instrumentar el código y transmitir los datos de telemetría a las herramientas de observabilidad backend.

Sin embargo, ninguno de los proyectos podría resolver este problema por sí solo. Así que, la CNCF patrocinó el proyecto OpenTelemetry, que combinaba las mejores características de cada solución. OpenTelemetry reúne las capacidades de estandarización de API de OpenTracing y de recopilación de datos de OpenCensus para proporcionar una plataforma única y unificada de envío, recopilación y transferencia de datos de telemetría a las plataformas de observabilidad de fondo.

¿Qué son los datos de telemetrís?

Una parte clave del funcionamiento de redes y aplicaciones rápidas y de alta disponibilidad es lograr una observabilidad full stack, lo que requiere acceso a datos de telemetría. Las soluciones de observabilidad recopilan, monitorizan y analizan datos de telemetría para determinar el estado del sistema y luego brindan a los equipos de TI conocimientos ejecutables para reparaciones y optimizaciones.

Para obtener una comprensión más profunda de OpenTelemetry, profundicemos en qué son los datos de telemetría y cómo los utilizan las organizaciones. OpenTelemetry admite tipos de datos específicos, a saber, los resultados recopilados de registros, métricas y rastreos (a menudo denominados los "tres pilares de la observabilidad").

Métricas

Las métricas son evaluaciones numéricas del rendimiento del sistema y del uso de los recursos. Proporcionan una visión general de alto nivel del estado de la red mediante la captura de indicadores clave de rendimiento (KPI) como la latencia, la pérdida de paquetes, la utilización del ancho de banda y el uso de la CPU del dispositivo.

Las métricas suelen resumirse mediante paneles de control y otras visualizaciones. A menudo proporcionan a los equipos los primeros indicios de un problema de rendimiento del sistema o de la aplicación.

Registros

Los registros son registros detallados de cada evento o acción que ocurre dentro del entorno. Proporcionan información granular sobre lo que ocurrió, cuándo ocurrió y en qué lugar de la red ocurrió, brindando a los equipos un contexto valioso para la resolución de problemas, la depuración y el análisis forense.

Los registros revelan las causas subyacentes de los problemas al detallar los eventos del sistema, como los cambios en la configuración del dispositivo, las autenticaciones fallidas y las conexiones caídas.

Rastreos

Los rastreos capturan el flujo de datos a través de la red, proporcionando información sobre la ruta y el comportamiento de los paquetes a medida que atraviesan múltiples dispositivos y sistemas. Son esenciales para comprender los sistemas distribuidos y diagnosticar problemas de latencia.

Los datos de rastreo permiten a los equipos de TI ver el recorrido completo de una transacción, de extremo a extremo, lo que ayuda a identificar los retrasos y fallos que se producen en entornos complejos y de múltiples capas.

Componentes de OpenTelemetry

OpenTelemetry se basa en varios componentes y procesos para que la recopilación de datos sea exitosa, entre ellos:

Interfaces de programación de aplicaciones (API)

Una API es un conjunto de reglas o protocolos que permite que las aplicaciones de software se comuniquen entre sí para intercambiar datos, características y funciones.

OpenTelemetry proporciona API específicas del lenguaje (para Java, Ruby, JavaScript, Python y otros lenguajes) que los desarrolladores pueden utilizar para instrumentar sus aplicaciones para la recopilación de datos de telemetría. Las API de OpenTelemetry desacoplan las aplicaciones de la infraestructura de red, dando a los equipos la flexibilidad de utilizar cualquier endpoint que coincida con su código de instrumentación.

Kits de desarrollo de software (SDK) de lenguaje

Los SDK de OpenTelemetry permiten a los ingenieros configurar y personalizar el comportamiento de la API. Los SDK constituyen el puente entre las API y los colectores y permiten conectar la instrumentación manual de las bibliotecas comunes con la instrumentación manual de las aplicaciones. 

OTel ofrece SDK para una variedad de lenguajes de programación, por lo que los desarrolladores pueden usar las API de OTel para generar y exportar datos de telemetría específicos para su lenguaje y backend elegidos. Los SDK de Otel también admiten instrumentación personalizada para marcos internos que aún no están cubiertos por la comunidad de OpenTelemetry.

Coleccionistas

Un recopilador es un agente que recopila datos de telemetría de aplicaciones instrumentadas con OpenTelemetry. Compuesto por receptores, procesadores, agregados y exportadores, el recopilador actúa como un intermediario neutral con respecto al proveedor, recibe los datos de las aplicaciones y los envía a plataformas de observabilidad u otros destinos para su análisis.

El recopilador OpenTelemetry admite paquetes contrib que le permiten consumir datos en múltiples formatos, incluidos OpenTelemetry Protocol (OTLP), Prometheus y Jaeger, y exportarlos a varios backends, a veces simultáneamente (por redundancia). Los paquetes Contrib son extensiones de terceros que proporcionan a los equipos de desarrollo instrumentación, muestreadores, propagadores y detectores de recursos en formato de submódulo.

Los recopiladores también pueden procesar y filtrar los datos de telemetría antes de exportarlos para priorizar la entrega de los datos más vitales y acelerar los procesos de resolución de problemas y depuración.

Exportadores

Los exportadores forman parte del recopilador y son responsables de enviar los datos de telemetría de la aplicación a uno o más backends de observabilidad especificados. Mientras que los recopiladores administran el flujo general de datos, los exportadores priorizan la transmisión de datos hacia su destino.

Los exportadores de datos de OpenTelemetry desacoplan la instrumentación de las configuraciones de backend y convierten los datos al formato apropiado para cada plataforma de observabilidad (convirtiendo los rastros al protocolo Zipkin, por ejemplo). Esta dinámica permite al recolector enviar los mismos datos de telemetría a múltiples backends, lo que facilita el cambio de destinos sin alterar la lógica de instrumentación del código.

Instrumentación automática

La instrumentación automática proporciona bibliotecas y marcos listos para usar que permiten a las aplicaciones generar automáticamente datos de telemetría con cambios mínimos o nulos en el código. Este proceso simplifica la instrumentación para los desarrolladores, reduciendo (y a veces eliminando) las tareas de codificación manual.

Sin embargo, la autoinstrumentación podría ofrecer menos control sobre tipos específicos de recogida de datos en comparación con la instrumentación manual. La amplitud de la instrumentación automática también puede variar en función de los tiempos de ejecución de los lenguajes, los entornos informáticos y los niveles de apoyo de la comunidad a los marcos de observabilidad.

¿Cómo funciona OpenTelemetry?

OpenTelemetry funciona combinando API, SDK, recopiladores y procesos de instrumentación automática para extraer datos y enviarlos al sistema de destino.

Primero, el equipo de DevOps instrumenta el código de la aplicación con las API de OTel, especificando qué métricas, rastreos y registros recopilar y cómo recopilarlos. El recopilador del SDK de OTel recopila los datos y los prepara para su procesamiento y exportación y, a continuación, muestrea, filtra y correlaciona los datos con dependencias y otras fuentes de datos.

Cuando los datos procesados están formateados correctamente, el SDK los agrupa en lotes basados en el tiempo (donde se someten a un mayor filtrado, si es necesario) y los envía al sistema back-end designado.

Beneficios de OpenTelemetry

El objetivo principal de OpenTelemetry es recopilar y exportar datos de telemetría y mejorar la observabilidad, proporcionando a las organizaciones una herramienta que facilite la neutralidad del proveedor y la integración de plataformas y herramientas. Ayuda a los equipos de DevOps y a los ingenieros de fiabilidad del sitio (SRE) a gestionar y depurar aplicaciones y sistemas, para que puedan tomar decisiones más informadas y seguir siendo ágiles a medida que cambian las necesidades empresariales.

Los beneficios de OTel incluyen:

  • Implementar una recopilación de datos coherente. OpenTelemetry permite a los equipos recopilar datos de telemetría de forma coherente en diferentes aplicaciones, sistemas y casos de uso.
  • Evitar quedarse atrapado en un proveedor. Otel es una solución independiente de los proveedores que permite a los desarrolladores cambiar las herramientas de observabilidad de fondo y los proveedores sin realizar cambios significativos en el código de instrumentación.
  • Optimizar la observabilidad. OTel simplifica la observabilidad mediante la recopilación de datos de telemetría sin necesidad de que el personal de TI modifique el código fuente o los metadatos. También permite a los desarrolladores mantener la visibilidad de pila completa, independientemente de los backends de observabilidad o proveedores que utilicen.
  • Ecosistemas de TI preparados para el futuro. Como OpenTelemetry cuenta con el respaldo de una comunidad de código abierto y la CNCF, está hecho para evolucionar a medida que cambian las tecnologías informáticas y las necesidades de observabilidad. Por ejemplo, Otel añadió recientemente perfiles continuos a su grupo de señales de telemetría principales1.
  • Realizar un seguimiento del uso de recursos. OpenTelemetry puede capturar solicitudes de datos entre servidores para categorizar el uso de recursos por grupos, ayudando a los equipos de TI a rastrear la utilización entre sistemas compartidos.
  • Priorizar las solicitudes de datos. OpenTelemetry puede crear una canalización de clasificación de prioridades para las solicitudes de datos dentro de la arquitectura, de modo que las solicitudes en competencia atraviesen la red en orden de misión crítica.
  • Ampliar el acceso a los datos de monitorización. Con Otel, los desarrolladores pueden supervisar los datos de telemetría y recibir alertas en cualquier navegador web o dispositivo, lo que facilita el seguimiento del rendimiento del software y del estado general del sistema en tiempo real.
Mixture of Experts | 12 de diciembre, episodio 85

Descifrar la IA: resumen semanal de noticias

Únase a nuestro panel de ingenieros, investigadores, responsables de producto y otros profesionales de talla mundial que se abren paso entre el bullicio de la IA para ofrecerle las últimas noticias y conocimientos al respecto.

Soluciones relacionadas
OpenTelemetry

Optimice las operaciones y el rendimiento de sus aplicaciones nativas de la nube con OpenTelemetry en IBM Instana Observability.

    Explore OpenTelemetry
    Solución de IBM Observability

    Maximice su resiliencia operativa y garantice la salud de las aplicaciones nativas de la nube gracias a la observabilidad con IA.

      Explore la solución IBM Observability
      IBM Consulting AIOps

      Aumente la automatización y las operaciones de TI con IA generativa, alineando todos los aspectos de su infraestructura de TI con las prioridades empresariales.

      Explore AIOps de IBM Consulting
      Dé el siguiente paso

      Desbloquee el rendimiento de las aplicaciones nativas de la nube con la observabilidad automatizada impulsada por IA.

      Explore IBM Instana Descubra Instana