¿Qué es OpenTelemetry?

Dos compañeros de trabajo en una sala de servidores miran una computadora portátil

Autor

Chrystal R. China

Staff Writer, Automation & ITOps

IBM Think

¿Qué es OpenTelemetry?

OpenTelemetry (OTel) es una infraestructura 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 forma en que se recopilan los datos de telemetría, independientemente del lenguaje de programación, la infraestructura o el entorno de ejecución, y permite a los desarrolladores generar, recopilar y exportar datos de telemetría estandarizados para cualquier backend de observabilidad. Este marco estandarizado fortalece y amplía las capacidades de observabilidad, y proporciona mayor flexibilidad a los equipos de TI y DevOps.  

OTel se implementa entre aplicaciones, sistemas y dispositivos, y soluciones de backend: 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 insights sobre el funcionamiento interno de un sistema mediante el análisis de sus resultados. En las operaciones de TI (ITOps) y la computación en la nube, 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 (agregar código a aplicaciones y 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 nube híbrida 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 un conjunto complicado de instrumentar, recopilar y exportar para su almacenamiento backend, visualización y análisis.

Para obtener una comprensión integral del rendimiento de las aplicaciones y los servicios de red, los ingenieros deben configurar una 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 el monitoreo en sistemas distribuidos. Utiliza bibliotecas y API unificadas e independientes del proveedor para recopilar y enviar datos de telemetría a 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 empleen.

Diseño 3D de pelotas rodando en una pista

Las últimas novedades e insights sobre IA

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

¿Por qué OpenTelemetry es importante para la observabilidad?

El código de instrumentación solía variar ampliamente. Y debido a que ningún proveedor comercial ofrecía una herramienta capaz de recopilar datos de cada aplicación y servicio en una red, era difícil para las empresas recopilar datos en diferentes idiomas y formatos o cambiar backends.

Si, por ejemplo, un equipo de desarrollo quisiera cambiar las herramientas de backend, tendría que reinstrumentar completamente su código y configurar nuevos agentes para enviar datos de telemetría a los nuevos servidores. Además, este enfoque fragmentado creó silos y confusión, lo que dificultó la resolución de problemas y temas de rendimiento de manera efectiva.

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 backend. 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 el monitoreo 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í misma una implementación de rastreo. Más bien, proporcionaba interfaces que los sistemas de rastreo podían aplicar para maximizar la compatibilidad entre plataformas. OpenTracing es un proyecto extinto (que ahora anima 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 mediante 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 los rastreos a los backends de observabilidad. OpenCensus no se ha descontinuado formalmente como OpenTracing; aún recibe mantenimiento regular y actualizaciones de seguridad. Sin embargo, el desarrollo activo se ha desplazado en gran medida a OpenTelemetry.

Ambos proyectos tenían como objetivo abordar el mismo problema. En ese momento, los equipos de desarrollo no tenían una forma estandarizada de instrumentar el código y transmitir datos de telemetría a las herramientas de observabilidad de backend.

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

¿Qué son los datos de telemetría?

Una parte clave para ejecutar redes y aplicaciones rápidas y de alta disponibilidad es lograr la observabilidad (o visibilidad) de toda la pila, lo que requiere acceso a datos de telemetría. Las soluciones de observabilidad recopilan, monitorean y analizan datos de telemetría para determinar el estado del sistema y luego brindan a los equipos de TI insights aplicables en la práctica 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 las organizaciones los utilizan. OpenTelemetry admite tipos de datos específicos, a saber, los resultados recopilados de registros, métricas y rastreos (a menudo llamados "los tres pilares de la observabilidad").

Métricas

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

Las métricas suelen resumirse mediante paneles y otras visualizaciones. A menudo, proporcionan a los equipos las primeras indicaciones de un problema de rendimiento de un sistema o aplicación.

Registros

Los registros son documentos 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é parte de la red ocurrió, lo que brinda 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 eventos del sistema, tales como cambios de configuración del dispositivo, autenticaciones fallidas y conexiones interrumpidas.

Rastreos

Los rastreos capturan el flujo de datos a través de la red, proporcionando insights sobre el recorrido 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.

El seguimiento de los datos permite a los equipos de TI ver el recorrido completo de una transacción, de principio a fin, lo que ayuda a identificar retrasos y fallas que ocurren 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 tenga éxito, entre ellos:

  • Interfaces de programación de aplicaciones (API)
  • Kits de desarrollo de software (SDK) de lenguaje
  • Recopilador
  • Exportadores
  • Instrumentación automática

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 usar 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, lo que brinda a los equipos la flexibilidad de usar 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 recopiladores 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 el lenguaje y el backend elegidos. Los SDK de OTel también admiten instrumentación personalizada para infraestructuras internas que aún no están cubiertas por la comunidad OpenTelemetry.

Recopilador

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 intermediario neutral del proveedor, recibiendo datos de las aplicaciones y reenviándolo a plataformas de observabilidad u otros destinos para su análisis.

El recopilador OpenTelemetry admite paquetes contrib que le permiten ingerir datos en múltiples formatos, incluidos OpenTelemetry Protocol (OTLP), Prometheus y Jaeger, y exportarlos a varios backends, a veces simultáneamente (con fines de redundancia). Los paquetes contrib son extensiones de terceros que proporcionan a los equipos de desarrollo instrumentación, muestreadores, propagadores y detectores de recursos en un 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 de los recopiladores y son responsables de enviar datos de telemetría de aplicaciones a uno o más backends de observabilidad especificados. Mientras que los recopiladores gestionan 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 adecuado para cada plataforma de observabilidad (por ejemplo, conversión de seguimientos al protocolo Zipkin). Esta dinámica permite a los recolectores 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 telemétricos con cambios mínimos o sin código en el código. Este proceso simplifica la instrumentación para los desarrolladores, reduciendo (y a veces eliminando) las tareas de programación manual.

Sin embargo, la instrumentación automática puede ofrecer menos control sobre tipos específicos de recopilación 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, los entornos informáticos y los niveles de soporte de la comunidad para 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.

En primer lugar, 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 OTel SDK recopila los datos y los prepara para su procesamiento y exportación, y luego muestrea, filtra y correlaciona los datos con dependencias y otras fuentes de datos.

Cuando los datos procesados tienen el formato adecuado, el SDK los agrupa en lotes basados en el tiempo (donde se someten a más filtros, si es necesario) y los envía al sistema de backend 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 facilita la neutralidad del proveedor y la integración de plataformas y herramientas. Ayuda a los equipos de DevOps y a los ingenieros de confiabilidad del sitio (SRE) a gestionar y depurar aplicaciones y sistemas, para que puedan tomar decisiones más informadas y permanecer ágiles a medida que cambian las necesidades del negocio.

  • Los beneficios de OTel incluyen:
  • Implementar una recopilación de datos coherente
  • Evitar el vendor lock-in (dependencia de proveedores)
  • Optimizar la observabilidad
  • Ecosistemas de TI preparados para el futuro
  • Realice un seguimiento del uso de recursos
  • Priorice las solicitudes de datos
  • Amplíe el acceso a los datos de monitoreo

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 el vendor lock-in (dependencia de proveedores)


OTel es una solución independiente del proveedor que permite a los desarrolladores cambiar las herramientas y proveedores de observabilidad de backend 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 requerir que el personal de TI modifique el código fuente o los metadatos. También permite a los desarrolladores mantener la visibilidad full stack, independientemente de los backends de observabilidad o proveedores que utilicen.

Ecosistemas de TI preparados para el futuro


Debido a que OpenTelemetry está respaldado por una comunidad de código abierto y el CNCF, está hecho para evolucionar a medida que cambian las tecnologías informáticas y las necesidades de observabilidad. Por ejemplo, OTel agregó recientemente perfiles continuos a su grupo de señales de telemetría primarias.1

Realice 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.

Priorice las solicitudes de datos


OpenTelemetry puede crear un pipeline 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 importancia para la misión.

Amplíe el acceso a los datos de monitoreo


Con OTel, los desarrolladores pueden monitorear los datos de telemetría y recibir alertas en cualquier navegador web o dispositivo, lo que facilita el seguimiento del rendimiento del software y el estado general del sistema en tiempo real.

Mixture of Experts | 12 de diciembre, episodio 85

Decodificación de 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 revuelo de la IA para ofrecerle las últimas noticias e insights 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 Observabilidad de IBM

    Maximice su resiliencia operativa y asegure el estado de las aplicaciones nativas de la nube gracias a la observabilidad impulsada por IA.

      Explore las soluciones de 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 IBM Consulting AIOps
      Dé el siguiente paso

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

      Explore IBM Instana Juegue con Instana