¿Qué es OpenTelemetry?

Qué es y qué no es OpenTelemetry, una breve explicación

OpenTelemetry es:

  • Un framework de observabilidad y un conjunto de herramientas diseñado para crear y gestionar datos de telemetría tales como trazas, métricas y logs.
  • Independiente de proveedores y herramientas, lo que significa que puede usarse con una amplia variedad de backends de observabilidad, incluyendo Jaeger y Prometheus, así como soluciones comerciales.
  • No es un backend de observabilidad como Jaeger, Prometheus, o productos comerciales de terceros.
  • Enfocado en la generación, recopilación, gestión y exportación de telemetría. Uno de los objetivos principales de OpenTelemetry es que puedas instrumentar fácilmente tus aplicaciones o sistemas, sin importar el lenguaje de programación, infraestructura o entorno de ejecución. El almacenamiento y visualización de la telemetría se deja intencionadamente a otras herramientas.

¿Qué es la observabilidad?

Observabilidad es la capacidad para comprender el estado interno de un sistema a través del análisis de sus resultados. En el contexto del software, esto significa ser capaces de comprender el estado interno de un sistema a través del análisis de sus datos de telemetría, que incluyen trazas, métricas y logs.

Para que un sistema sea observable, debe ser instrumentado, esto es, su código debe emitir trazas, métricas o logs. Los datos instrumentados tienen que ser enviados luego a un backend de observabilidad.

¿Por qué OpenTelemetry?

Con el auge de la computación en la nube, las arquitecturas de microservicios y requisitos comerciales cada vez más complejos, la necesidad de observabilidad del software y la infraestructura es mayor que nunca.

OpenTelemetry satisface la necesidad de observabilidad siguiendo dos principios fundamentales:

  1. Eres dueño de los datos que generas. No hay ningún tipo de dependencia del proveedor.
  2. Solo tienes que aprender un único conjunto de API y convenciones.

Ambos principios combinados otorgan a los equipos y organizaciones la flexibilidad que necesitan en el mundo informático de hoy en día.

Si quieres aprender más, echa un vistazo a la misión, la visión y los valores de OpenTelemetry.

Principales componentes de OpenTelemetry

OpenTelemetry consta de los siguientes componentes principales:

OpenTelemetry es utilizado por una amplia variedad de librerías, servicios y aplicaciones que integran OpenTelemetry y proporcionan observabilidad por defecto.

OpenTelemetry cuenta con el respaldo de numerosos proveedores, muchos de los cuales brindan soporte comercial para OpenTelemetry y contribuyen directamente al proyecto.

Extensibilidad

OpenTelemetry está diseñado para ser extensible. Algunos ejemplos de cómo se puede extender incluyen:

  • Agregar un receptor al OpenTelemetry Collector para admitir datos de telemetría desde una fuente de datos personalizada.
  • Cargar librerías de instrumentación personalizadas en un SDK.
  • Crear una distribución de un SDK o Collector adaptada a un caso de uso específico.
  • Crear un nuevo exportador para un backend personalizado que aún no admite el
    protocolo OpenTelemetry (OTLP).
  • Crear un propagador personalizado para un formato de propagación de contexto que no es estándar.

Aunque la mayoría de los usuarios tal vez no necesiten extender OpenTelemetry, el proyecto está diseñado para hacerlo posible en casi todos los niveles.

Historia

OpenTelemetry es un proyecto de Cloud Native Computing Foundation (CNCF) que es el resultado de una fusión entre dos proyectos anteriores, OpenTracing y OpenCensus. Ambos proyectos fueron creados para resolver el mismo problema: la falta de un estándar sobre cómo instrumentar código y enviar datos de telemetría a un backend de Observabilidad. Como ninguno de los dos proyectos anteriores pudo resolver por completo el problema de forma independiente, se fusionaron para formar OpenTelemetry y combinar así sus fortalezas a la vez que ofrecían una solución única.

Si usas OpenTracing u OpenCensus, aprende cómo migrar a OpenTelemetry en la guía de migración.

Pasos siguientes


Última modificación November 12, 2024: Add missing en anchors for ES translations (#5580) (d65dd0e1)