Cómo OpenTelemetry puede ahorrarte algún dolor de cabeza

OpenTelemetry nos ofrece una forma fácil y estándar de poder tener una trazabilidad adecuada en nuestros proyectos, con la que ahorrarnos algún quebradero de cabeza.

¿No te ha pasado alguna vez que estás probando alguna nueva feature, pero por alguna razón no funciona como debería y estás seguro de que no hay ningún fallo? ¿O lo genial que hubiera sido ver qué partes del código se han disparado al hacer una determinada acción? OpenTelemetry, a partir de ahora lo llamaremos OTEL, nos ofrece una forma fácil y estándar de poder tener una trazabilidad adecuada en nuestros proyectos.

¿Qué es eso de observabilidad?

Podemos definir observabilidad como la capacidad de saber en todo momento qué esta pasando dentro de nuestro software mediante el análisis de las salidas que nos da. Podemos hacer esto usando sus datos de telemetría, que incluyen trazas, métricas y logs.

Pero antes de poder ver estos datos, necesitamos instrumentalizar nuestro software. Es decir, nuestro código debe ser capaz de enviar trazas, métricas y logs a algún sitio. Pero, ¿cómo hacemos para enviar esos datos a cualquier sitio? ¿Y si necesito en un tiempo cambiar de sistema por alguna razón? Para eso tenemos OTEL.

OTEL Observabilidad opentelemetry

¿Qué es OTEL o OpenTelemetry?

OTEL es un framework de observabilidad que nos permite crear y administrar nuestros datos en forma de trazas, métricas y logs. La gracia de OTEL es que es agnóstico en cuanto a sistemas que pueden usarlo, esto quiere decir que cualquier sistema que use OTEL lo va a usar bajo el mismo estándar. Además, nos da una serie de APIs y SDKs que nos van a abrir un abanico de lenguajes en los que usarlo. Por supuesto, nosotros somos los dueños de los datos en todo momento, ningún vendor se hace con ellos.

¿Cómo funciona OTEL?

Los principales componentes de OTEL los podemos resumir en:

  • APIs: con las APIs podemos instrumentalizar nuestro código y coordinar los datos en todo el sistema. Estas APIs son especificas para cada lenguaje por lo que tendremos que comprobar como implementarlas correctamente.
  • SDKs: los SDKs se encargan de dar soporte a las APIs para poder obtener, procesar y exportar nuestros datos. Igual que las APIs, son especificas del lenguaje.
  • Especificaciones de los datos: definidas como OTLP (OpenTelemetry Procolol) son las especificaciones que definen como tienen que ser los datos para poder ser utilizados en las aplicaciones.
  • Collector: es la parte encargada para recibir los datos que queremos exportar, tratarlos y exportarlos de la manera adecuada. Usa OTLP para saber como hacer el tratamiento. Podemos obtener mas información en la documentación oficial.
OTEL Observabilidad opentelemetry

Ventajas de usar OTEL

Una de las principales ventajas de usar en nuestros proyectos OTEL es, que no tenemos reinventar la rueda para el tratamiento de los datos ya que es algo que el mismo framework nos da. Vamos a dedicar menos tiempo a desarrollar estos mecanismos y si en algún momento necesitamos cambiar la herramienta de observabilidad (dashboard), al usar todos el mismo protocolo no va a suponer mucho problema.

Junto a eso, otra ventaja es que somos dueños de nuestros datos y elegimos que enviar y que no a nuestras plataformas. Como es tan elástico, podemos modificar en cualquier momento nuestras trazas para añadir nuevos datos.

Además, la instalación suele ser bastante rápida con lo que no perderemos demasiado tiempo y que podamos usarlo en muchos lenguajes nos permite usarlo en cualquier proyecto que tengamos sin tener que hacer grandes migraciones.

Al comprobar nuestros datos en alguna plataforma OTEL vamos a poder consultar el trazado que hace nuestra aplicación en nuestros casos de uso, con lo que cualquier discrepancia con lo que esperamos obtener va a ser observable en el dashboard.

Podéis encontrar mas contenido sobre desarrollo, diseño y negocios en más artículos de Secture & Code.

Backend

Picture of David Luque Quintana

David Luque Quintana

La mejor forma de aprender a programar es programando. Actualmente trabajo con Ruby y React.
Picture of David Luque Quintana

David Luque Quintana

La mejor forma de aprender a programar es programando. Actualmente trabajo con Ruby y React.

We are HIRING!

What Can We Do