¿Qué es OpenTelemetry?

Definición, beneficios y componentes clave de OpenTelemetry

OpenTelemetry (OTel) es un marco de trabajo de observabilidad de código abierto que sirve para recopilar, procesar y exportar datos de telemetría (logs, métricas y rastreos) en un formato único y unificado.

Fue desarrollado por la Cloud Native Computing Foundation (CNCF) para estandarizar cómo se recopilan los datos de telemetría y se envían a los backends de observabilidad. OpenTelemetry proporciona SDK, API y herramientas neutrales al proveedor, de modo que tus datos se pueden enviar a cualquier backend de observabilidad para su análisis conforme a OpenTelemetry.

OpenTelemetry se está convirtiendo rápidamente en el estándar de telemetría de observabilidad dominante en las aplicaciones nativas del cloud. Adoptar OpenTelemetry se considera esencial para las organizaciones que desean estar preparadas para las demandas de datos del futuro sin quedar atadas a un proveedor específico o a las limitaciones de sus tecnologías actuales.

Diagrama que muestra la integración de OpenTelemetry con Elastic para la observabilidad de microservicios


Comprensión de los datos de telemetría (log, métricas y rastreos)

Los datos de telemetría son la base de la observabilidad moderna. Los tres pilares, logs, métricas y trazas, brindan a los desarrolladores, DevOps y equipos de TI una visión profunda del comportamiento, el rendimiento y la salud del sistema.

  • Logs: un log textual de un evento discreto en un momento específico.
    • Ejemplo: Un intento de inicio de sesión registrado con marca de tiempo, ID de usuario y dirección IP
    • Ideal para: Solución de problemas, depuración y verificación de la ejecución de código
  • Métricas: mediciones numéricas a lo largo del tiempo (datos temporales) que reflejan el rendimiento del sistema.
    • Ejemplo: utilización de la CPU al 85 % o tasa de solicitudes HTTP de 1200/s.
    • Ideal para: Monitoreo en tiempo real, alertas y análisis de tendencias
  • Rastreos: la ruta de una solicitud o transacción a través de varios componentes del sistema, dividida en tramos.
    • Ejemplo: seguimiento de un proceso de pago a través de microservicios en una plataforma de comercio electrónico.
    • Ideal para: identificar cuellos de botella de rendimiento y entender los flujos de solicitudes en arquitecturas distribuidas.

Para obtener una guía detallada sobre la configuración de cada tipo de telemetría con OpenTelemetry, consulta nuestra documentación sobre cómo empezar con OpenTelemetry en Elastic.


Breve historia de OpenTelemetry

Antes de OpenTelemetry, la industria dependía de OpenTracing y OpenCensus, que eran dos proyectos superpuestos que cumplían propósitos similares, pero con implementaciones diferentes. Para eliminar la fragmentación, la CNCF los fusionó en un único proyecto: OpenTelemetry.

Componentes clave heredados:

  • OpenTracing: APIs neutrales con respecto a los proveedores para enviar datos de telemetría.
  • OpenCensus: bibliotecas específicas del lenguaje para la recopilación de métricas o rastreos.

Resultado de la fusión: OTel combina ambos en un único marco de trabajo con:

  • APIs
  • SDKs
  • Opciones de instrumentación
  • Un servicio de recopilación

OpenTelemetry surgió de la unificación de OpenTracing y OpenCensus, y combinó sus fortalezas para crear un estándar global único para la observabilidad.

Con OpenTelemetry, los desarrolladores ya no tienen que elegir entre OpenTracing y OpenCensus. OpenTelemetry proporciona un conjunto unificado de bibliotecas, APIs, agentes y servicios de recopilación para recopilar y transferir datos.


Cómo funciona OpenTelemetry

OpenTelemetry proporciona un pipeline estandarizado para recopilar datos de telemetría y enviarlos a un backend de observabilidad de tu elección. Está diseñado para ser agnóstico al proveedor y extensible.

  • APIs: interfaces específicas del lenguaje para generar datos de telemetría.
  • SDKs: implementan las APIs y gestionan el procesamiento, el batch y la exportación de datos.
  • Instrumentación:Puede ser automática (sin cambios de código) o manual (métricas/eventos personalizados)
  • Exportadores: envían datos procesados a uno o más destinos mediante protocolos estándar, como OTLP.

Las APIs de OpenTelemetry específicas según el lenguaje coordinan la recopilación de datos de telemetría en todo el sistema e instrumentan el código. Los SDK de OpenTelemetry implementan y brindan soporte a las APIs a través de bibliotecas que ayudan con la recopilación, el procesamiento y la exportación de datos. OpenTelemetry también proporciona la instrumentación automática de servicios y brinda soporte para la instrumentación personalizada. Puedes exportar tus datos de telemetría mediante un exportador proporcionado por el proveedor o el protocolo de OpenTelemetry (OTLP).


Componentes básicos de OpenTelemetry

Entre los componentes básicos de OpenTelemetry se incluyen los siguientes:

ComponenteObjetivoEjemplo de uso
RecopiladorRecibe, procesa y exporta datos de telemetría en varios formatos, independientemente del proveedor.Agrega logs, métricas y rastros de clusters de Kubernetes antes de enviarlos a Elastic.
SDK de lenguajeImplementa la API de OpenTelemetry para un lenguaje de programación específicoUsando el SDK de Python para instrumentar una aplicación escrita en Python
Bibliotecas de instrumentaciónAutoinstrumenta automáticamente marcos de trabajo y bibliotecas populares para la generación de telemetría.Recopilación automática de métricas de solicitudes HTTP desde Spring Boot
Instrumentación automáticaAgrega capacidades de telemetría sin necesidad de cambiar el código.Inyecta un agente Java para monitorizar microservicios basados en JVM.
ExportadoresEnvía los datos recopilados a uno o más backends de observabilidad.Exporta rastreos a Jaeger y métricas a Prometheus.

 

Estos componentes permiten una recopilación de datos flexible y estandarizada, independientemente de la elección del backend.

Nuestra documentación de configuración del recopilador OpenTelemetry con Elastic incluye una guía completa de instalación.


Beneficios de OpenTelemetry

Los beneficios de OpenTelemetry son la estandarización de datos y la flexibilidad preparada para el futuro, lo que se traduce en mejor observabilidad, mayor eficiencia y menos costos.

  1. Estandarización
    1. Usa un solo método de recopilación para varios backends: Elastic, Splunk, Datadog y más.
    2. Reduce la complejidad del pipeline con un único marco de trabajo extensible para logs, métricas y rastreos.
  2. Neutralidad del proveedor
    1. Cambia de backend sin volver a instrumentar las aplicaciones.
    2. Adopta fácilmente nuevas herramientas de observabilidad sin necesidad de un reemplazo completo.
    3. Mantén la flexibilidad a medida que evoluciona tu stack tecnológico.
  3. Datos consistentes
    1. Mantén un procesamiento y análisis más fáciles con un esquema común unificado.
    2. Ejecuta análisis, consultas, machine learning y más en datos de diferentes fuentes.

Con OpenTelemetry, obtienes escalabilidad para el crecimiento, compatibilidad entre plataformas e integración fácil a tus herramientas existentes de monitoreo y observabilidad.


Integración de OpenTelemetry y Elastic

Como defensor de los estándares abiertos desde hace mucho tiempo, Elastic se compromete a avanzar en la adopción de OpenTelemetry en toda la industria a través de la contribución activa y la colaboración.

Elastic Observability integra fácilmente los datos de OpenTelemetry y agrega potentes capacidades de búsqueda, machine learning y visualización a escala. En 2023, Elastic contribuyó con ECS a OpenTelemetry para ayudar a unificar los formatos de datos de telemetría.

Elastic Distributions de OpenTelemetry (EDOT) proporciona a los SREs y a los desarrolladores un ecosistema OTel estable. Con el enfoque centrado en OTel de Elastic que preserva las convenciones esquemáticas nativas de OpenTelemetry, no se necesitan conversiones de esquemas. EDOT también incluye correcciones más allá de los ciclos de lanzamiento de OTel y soporte de nivel empresarial sin complementos propios.

Explora las soluciones de Elastic centradas en OpenTelemetry


Casos de uso de observabilidad de CI/CD con OpenTelemetry y Elastic

Elastic trabaja con plataformas populares CI/CD como Jenkins, Ansible y Maven para instrumentar el pipeline con OpenTelemetry.

Esto permite:

  • Visibilidad integral del pipeline de extremo a extremo
  • Dashboards de monitoreo en vivo
  • Alertas automatizadas y detección de anomalías
  • Resolución más rápida de problemas de compilación/prueba

Puedes encontrar instrucciones de configuración para usar OpenTelemetry con el monitoreo de Elastic CI/CD en nuestra documentación oficial.


Preguntas frecuentes de OpenTelemetry

¿OpenTelemetry es un estándar?

Sí. OpenTelemetry es un proyecto de código abierto y un estándar unificado para logs, rastreos y métricas.

¿Cuáles son ejemplos de telemetría?

Los ejemplos de datos de telemetría incluyen logs, métricas y rastreos que se usan en la observabilidad y el monitoreo de sistemas.

¿Cuál es la diferencia entre OpenTelemetry y Jaeger?

OpenTelemetry te ayuda a procesar y exportar datos a una variedad de backends comerciales y de código abierto, pero no es un backend de observabilidad como Jaeger. Mientras que OpenTelemetry proporciona un conjunto de API, SDK y herramientas para ayudar a generar y administrar datos de telemetría, Jaeger es una herramienta de rastreo distribuida de código abierto. Los equipos de IT usan Jaeger para monitorear aplicaciones y solucionar problemas en ellas con base en la arquitectura de microservicios. Jaeger no es compatible con logs y métricas.

¿Cuál es la diferencia entre API y SDK de OpenTelemetry?

Las APIs, o interfaces de programación de aplicaciones, de OpenTelemetry coordinan la recopilación de datos de telemetría en todo el sistema e instrumentan el código. Como las APIs son específicas según el lenguaje, deben coincidir con el lenguaje de tu código. Los SDK, o kits de desarrollo de software, de OpenTelemetry implementan y brindan soporte a las APIs a través de bibliotecas que ayudan con la recopilación, el procesamiento y la exportación de datos a un backend de observabilidad.

¿Quién desarrolló OpenTelemetry y por qué?

OpenTelemetry fue desarrollado bajo la Cloud Native Computing Foundation (CNCF) para unificar y estandarizar cómo se recopilan y exportan los datos de telemetría. Fusionó los proyectos anteriores OpenTracing y OpenCensus para eliminar la fragmentación.

¿Qué es el protocolo OpenTelemetry (OTLP) y por qué es importante?

OTLP es el protocolo predeterminado y neutral con respecto a los proveedores de OpenTelemetry para enviar datos de telemetría entre componentes y backends. Garantiza que todos los datos, logs, métricas y rastreos se transmitan en un formato consistente, lo que hace que la integración entre herramientas sea más sencilla y confiable.

¿Qué es el recopilador OpenTelemetry Collector?

El OpenTelemetry Collector es un servicio neutral con respecto a los proveedores que recibe datos de telemetría de varias fuentes, los procesa (filtrando, agregando o transformándolos) y los exporta a uno o más back ends. Admite varios protocolos y formatos en un único despliegue.

¿Cómo se integra OpenTelemetry con Elastic?

Puedes traer trazas, logs y métricas nativas de OTel a Elastic desde cualquier herramienta de OTel de terceros o desde tus propios colectores de OTel usando procesadores y exportadores personalizados para análisis y visualización en Elastic. Elastic ingesta de forma nativa datos OTLP de OpenTelemetry y ofrece capacidades avanzadas, como búsqueda escalable, visualización interactiva, monitoreo en tiempo real y detección de anomalías basada en machine learning. No se requieren conversiones de esquema.


Recursos de OpenTelemetry de Elastic