Qué es la observabilidad y lo que cuesta

Óculos diante de uma tela de código, com o texto nítido dentro das lentes, ilustrando o que é observabilidade

¿Qué es la observabilidad? La observabilidad es la capacidad de determinar qué ocurre dentro de un sistema a partir de lo que este emite, sin modificar el sistema para investigar. El término viene de la teoría de control, donde un sistema es observable cuando su estado interno puede deducirse de sus salidas.

En la práctica existe una prueba simple. Un entorno es observable cuando se puede responder una pregunta que nadie previó, sin subir código nuevo para conseguir la respuesta. Si para descubrir dónde se demoró la solicitud hay que agregar un log y esperar a que el problema vuelva a ocurrir, el entorno no es observable.

La comparación con el monitoreo y la decisión de cuál de los dos necesita su empresa están en la página de monitoreo de infraestructura. Este texto trata de lo que viene después de esa decisión: lo que cuestan las tres señales, por qué la mayoría de los entornos solo tiene dos de ellas y dónde la cuenta se va de las manos.

Las tres señales y lo que cuesta cada una

  • Métrica. Dice si empeoró, y cuánto. Volumen pequeño y previsible.
  • Log. Dice qué ocurrió en ese punto. Volumen grande, crece con el tráfico.
  • Traza. Dice dónde se fue el tiempo dentro de la solicitud. Volumen grande y caro de guardar.

A métrica es agregada por naturaleza. Mil solicitudes se convierten en un valor. Por eso es la señal más barata y la única que se guarda por un año sin pensarlo dos veces. El precio de ese ahorro es no poder volver a una solicitud específica.

El log guarda el evento individual, con contexto. Es lo que permite reconstruir qué pasó. El volumen crece junto con el tráfico, y un nivel de detalle más verboso multiplica la cuenta sin avisar.

El traza acompaña una solicitud atravesando los componentes y registra cuánto tiempo estuvo en cada uno. Es la señal que responde la pregunta más cara de responder sin ella: la llamada tardó 8 segundos, en cuál de los once servicios quedó detenida.

El orden de magnitud entre las tres no se parece. Treinta días de métricas y treinta días de trazas del mismo entorno son cuentas de magnitudes distintas, y tratarlas con la misma política de retención es el error más común de quien está empezando.

Sin identificador de correlación, las tres no se suman

Recolectar las tres señales no produce observabilidad. Lo que la produce es la capacidad de ir de una a otra.

El mecanismo es un identificador único generado cuando la solicitud entra y propagado en todas las llamadas siguientes, normalmente en un encabezado HTTP. Es lo que permite tomar una traza lenta y abrir los logs exactamente de esa ejecución, en vez de buscar por horario.

Dos consecuencias prácticas:

  • El log en texto libre no entra en esa correlación. El registro tiene que ser estructurado, en campos, con el identificador entre ellos. Un log lindo para que lo lea una persona y malo para que una máquina lo cruce es el estado más común, y lo primero por corregir.
  • La propagación se rompe en el eslabón más débil. Si un servicio en el medio del camino no reenvía el identificador, la traza termina ahí, y justamente el tramo invisible suele ser donde está el problema.

El rastreo es el pilar que falta, y el motivo es práctico

Casi todos los entornos tienen métricas y logs, y casi ninguno tiene trazas. La razón no es desinterés, es dónde nace cada señal.

Las métricas y los logs se obtienen desde fuera de la aplicación. Un agente en el servidor, un colector leyendo un archivo, un exportador en la base de datos, y el dato empieza a llegar sin que nadie toque el código.

La traza exige instrumentación dentro del código: crear el contexto en la entrada, propagarlo en las llamadas, cerrarlo en la salida. Es trabajo de quien desarrolla, no de quien opera. Por eso la conversación sobre observabilidad cruza la frontera entre infraestructura y desarrollo, y por eso se traba en empresas donde esas dos áreas no se hablan.

Cardinalidad: por dónde estalla la cuenta

Este es el factor que sorprende, y no aparece en el material de los proveedores.

Una métrica no es un número, es una serie temporal por cada combinación distinta de etiquetas. tiempo_de_respuesta con las etiquetas servicio y entorno, para diez servicios y tres entornos, son treinta series. Barato.

Agregue una etiqueta con el identificador del usuario, o de la sesión, o del pedido. Cada valor distinto crea una serie nueva. Treinta series se vuelven cientos de miles, y el cobro acompaña, porque lo que se paga es serie almacenada, no solicitud medida.

La regla que lo evita: la etiqueta sirve para agrupar, no para identificar. El identificador individual pertenece al log y a la traza, que están hechos para guardar un evento único. Cuando alguien pregunta por qué la factura de la plataforma se triplicó sin que el tráfico creciera, la respuesta casi siempre es una etiqueta nueva en alguna métrica.

Retención y muestreo, decididos por pilar

No existe una política de retención. Existen tres.

  • Métrica: larga, porque es barata y sirve para comparar período con período.
  • Log: media, con el detalle más verboso viviendo poco y el registro de error viviendo más.
  • Traza: corta, y con muestreo.

Muestrear trazas tiene dos formas, y la diferencia entre ellas importa. Decidir en la entrada de la solicitud es simple y barato, y tiene el defecto de descartar la traza antes de saber si era interesante. Decidir después de que la solicitud termina permite guardar justamente las que fallaron o tardaron, y descartar las que corrieron con normalidad, que son la mayoría y las que nadie va a consultar.

Una observación honesta: para un parque de pocas decenas de servidores con una aplicación monolítica, todo este aparato es gasto sin retorno. El monitoreo bien parametrizado resuelve, y el dinero rinde más en cobertura y en proceso de atención. La decisión de cuándo cambia la cuenta está en la página de monitoreo.

OpenTelemetry: el estándar importa más que la herramienta

La instrumentación es la parte lenta y cara del proyecto, y es la única que queda en el código de la empresa. La plataforma que recibe los datos es la parte que se cambia.

Cuando la instrumentación se hace con la biblioteca propietaria de un proveedor, cambiar de plataforma significa reinstrumentar todo. Eso crea una dependencia que no es técnica, es contractual: a la hora de la renovación, la alternativa de salir tiene costo de proyecto.

OpenTelemetry resuelve eso siendo un estándar abierto de instrumentación y de transporte. El código pasa a emitir en el formato del estándar, y qué herramienta consume eso se vuelve configuración del colector. La elección de la plataforma deja de ser irreversible.

De ahí la recomendación práctica: instrumentar en el estándar abierto antes de decidir la herramienta, y no al revés.

El orden de implantación

  1. Estructurar el log antes de centralizarlo. Campos, no texto corrido, con identificador de correlación. Sin eso, cualquier plataforma recibe texto y devuelve texto.
  2. Propagar el identificador de punta a punta. Incluso en los servicios que nadie quiere tocar, porque es donde la traza se rompe.
  3. Instrumentar un recorrido entero, desde la entrada del usuario hasta la base de datos, en vez de cobertura superficial en todo.
  4. Definir retención y muestreo por señal, antes de encender la recolección. Es acá donde el costo se controla, no después de la primera factura.
  5. Elegir la herramienta al final, ya sabiendo el volumen que va a recibir.

Los primeros cuatro pasos no dependen de ninguna licencia y son los que determinan si el quinto va a funcionar.

La observabilidad no dice si el proceso del negocio ocurrió

Explica por qué el sistema se comportó de una manera. No verifica si lo que el negocio esperaba ocurrió.

Traza completa, sin error, latencia normal, y el pedido registrado en el e-commerce sigue sin integración en el ERP, porque la integración no fue llamada. No hay falla para observar. Hay ausencia de evento, y la ausencia no emite señal.

Esa verificación parte de lo que el proceso debería producir y en qué ventana, y es una capa por encima de las tres señales. Integrity-UX lo trata como monitoreo de reglas de negocio, con ejemplos de cómo se configura.

Cómo Integrity-UX trabaja con esto

Integrity-UX opera monitoreo de infraestructura, de servicios y de reglas de negocio, con alerta, atención e indicadores de disponibilidad y de tiempo de resolución, por medio de un NOC propio.

La observabilidad entra cuando la pregunta deja de ser qué se cayó y pasa a ser por qué se puso lento, y entra después de que el monitoreo está estructurado. Para saber qué capa falta en su entorno, hable con nosotros.

Preguntas frecuentes

¿Hay un sinónimo de observabilidad?

No hay equivalente exacto en portugués. El término aparece a veces como “visibilidad”, que es impreciso: la visibilidad describe ver lo que ya se eligió vigilar, y la observabilidad trata de responder una pregunta que nadie había hecho.

La empresa ya usa Zabbix y Grafana. ¿Eso es observabilidad?

Es recolección con visualización, que es la base y no el conjunto. Falta el rastreo y falta el identificador de correlación que une las tres señales. Sin eso, la pregunta “en qué servicio se quedó parada esa llamada” sigue sin respuesta, por más paneles que haya.

¿Qué es la cardinalidad en observabilidad?

Es la cantidad de series temporales distintas que genera una métrica, una por cada combinación de etiquetas. Una etiqueta con valor individual, como el identificador de usuario o de sesión, multiplica ese número y es la causa más común de un costo que se va de las manos. La etiqueta sirve para agrupar; el identificador individual pertenece al log y a la traza.

¿Hay que cambiar de herramienta para tener observabilidad?

No necesariamente, y el orden importa. Instrumentar con un estándar abierto como OpenTelemetry hace que el código emita en un formato que cualquier plataforma lee, lo que permite empezar con la herramienta actual y cambiar después sin volver a instrumentar. Decidir la plataforma antes de instrumentar es lo que crea una dependencia difícil de deshacer.

¿Cuánto cuesta la observabilidad?

El costo lo determina el volumen de datos, no la licencia: cuánto entra por día, por cuánto tiempo queda consultable cada señal y cuántas series temporales crea la instrumentación. Por eso definir qué instrumentar y fijar la retención por señal va antes de elegir la herramienta.

Facebook
Twitter
LinkedIn

Vea también

Solicitar presupuesto