Ir al contenido

Qué es OpenTelemetry y por qué es importante

Alessandro Mengoli
Series: Fundamentos de OpenTelemetry: conceptos clave · 1

OpenTelemetry se está convirtiendo en un estándar común para la telemetría de sistemas distribuidos. ¿Por qué resulta útil? Veamos el proyecto y sus ideas principales.

¿Qué es OpenTelemetry?

OpenTelemetry, también llamado OTel, es un framework de código abierto que estandariza cómo las aplicaciones recopilan y gestionan datos de telemetría. Surgió de los proyectos OpenCensus y OpenTracing y hoy forma parte del ecosistema CNCF.

Su objetivo es ofrecer API, SDK y herramientas estándar para recopilar telemetría sin depender del proveedor que la almacena o muestra.

Trazas, métricas y logs

OpenTelemetry trabaja con tres señales principales:

  1. Las trazas siguen el recorrido de una petición entre servicios de un sistema distribuido.
  2. Las métricas registran medidas numéricas como contadores, indicadores e histogramas.
  3. Los logs registran eventos concretos que ocurren en el sistema.

Otros conceptos relacionados son Baggage, metadatos que se propagan con una petición, y Profiles, que ayudan a analizar dónde emplea el tiempo el código.

¿Por qué es útil OpenTelemetry?

1. Independencia del proveedor

Antes de OpenTelemetry, los productos de monitorización solían exigir sus propias API o SDK. Cambiar de proveedor podía obligar a modificar el código. Con OpenTelemetry puedes instrumentar una aplicación una vez y enviar su telemetría a distintos sistemas compatibles.

2. Estandarización

OpenTelemetry define convenciones semánticas para atributos y nombres de medidas. Ayudan a mantener datos coherentes entre lenguajes de programación y entornos.

3. Una visión conectada

Las trazas, métricas y logs se pueden correlacionar. Juntos ofrecen una imagen más clara del comportamiento y rendimiento de un sistema que las señales aisladas.

4. Amplia adopción

OpenTelemetry cuenta con soporte en muchos lenguajes, frameworks y productos de observabilidad. Es una opción práctica para equipos que utilizan más de una herramienta.

Arquitectura en pocas palabras

Sus componentes principales son:

  • API: interfaces utilizadas para instrumentar el código.
  • SDK: implementaciones que procesan y exportan telemetría.
  • Collector: componente que recibe, procesa y exporta telemetría.
  • Bibliotecas de instrumentación: integraciones que recopilan datos de frameworks y bibliotecas habituales.

¿Quién debería usar OpenTelemetry?

Es especialmente útil si:

  • Gestionas una arquitectura de microservicios.
  • Quieres cambiar de proveedor de monitorización sin reescribir la instrumentación.
  • Necesitas telemetría coherente entre equipos o proyectos.
  • Quieres correlacionar distintas señales de telemetría.

Un ejemplo práctico

Imagina una aplicación de comercio electrónico cuyas páginas de pago se vuelven lentas de repente. Sin telemetría correlacionada, podrías revisar por separado los logs de la aplicación, las métricas del servidor, la base de datos y los servicios de pago. Después tendrías que reconstruir mentalmente la secuencia de eventos.

Con OpenTelemetry:

  1. Una traza muestra el recorrido completo de la petición y revela un retraso en el servicio de detección de fraude.
  2. Las métricas relacionadas muestran un aumento de carga en ese servicio.
  3. Sus logs, vinculados a la misma traza, revelan intentos repetidos de conexión a una base de datos.

Esta visión conectada concentra la investigación y ayuda a encontrar antes la causa.

Conclusión

OpenTelemetry cambia la forma de recopilar y utilizar telemetría. Su independencia del proveedor y su amplio ecosistema lo hacen útil para construir sistemas observables.

En el siguiente artículo de la serie veremos las señales con más detalle y cómo una sola petición de usuario puede producir trazas, métricas y logs relacionados.

¿Quieres probar OpenTelemetry en .NET? Consulta el tutorial paso a paso de .NET (en italiano).

Este artículo se ha escrito o traducido con ayuda de inteligencia artificial.