Curso exprés · No. 19
Cuando tu código corre en tu portátil puedes pausarlo y husmear por dentro. Cuando corre en producción sirviendo a usuarios reales, no puedes — solo sabes lo que ocurre por lo que el sistema te cuenta. La observability es el oficio de hacer que un sistema se explique a sí mismo, mediante logs, metrics y traces, para que cuando algo se rompa a las 3 de la madrugada puedas hacer preguntas y obtener respuestas en lugar de adivinar.
22 conceptos · un diagrama para cada uno · hoja de referencia al final
Todo el campo existe por un hecho duro: no puedes depurar un sistema en producción vivo como depuras el código en tu máquina. Así que tienes que hacer que el sistema te cuente lo que está haciendo.
El mapa: 22 conceptos en siete grupos
Un mapa de metro: primero ves el conjunto de todas las líneas, luego recorres estación por estación.
Primero vienen tres fundamentos — por qué en producción vuelas por instrumentos, en qué se diferencia el monitoring de la observability y qué es una black box. Luego seis grupos, uno por capítulo: logs, metrics, traces, cómo trabajan los tres pilares juntos, alerting y cómo usarla bien.
Cada concepto de abajo sigue la misma forma: su nombre en inglés (apréndelo — es el término), una imagen de la vida, un diagrama y una ficha con campos: problema, idea, ejemplo, coste u ojo, cuándo usarlo y relaciones.
Flying by Instruments — no puedes adjuntar un debugger a producción
Un piloto no puede salir e inspeccionar el motor en pleno vuelo — vuela enteramente por los instrumentos del panel, confiando en que las agujas le digan lo que está pasando.
En tu portátil pausas el código, inspeccionas variables, avanzas paso a paso. En producción — servidores reales, usuarios reales, ahora mismo — no puedes detenerlo para mirar. Solo puedes enterarte de lo que ocurre por las señales que el sistema emite mientras corre.
Este es el cambio de fondo: en producción vuelas por instrumentos, y la observability consiste en tener los instrumentos correctos en el panel antes de necesitarlos.
- Problema
No puedes pausar la producción en vivo ni inspeccionarla con un debugger.
- Idea
Enterarte de lo que pasa solo por las señales que el sistema emite mientras corre.
- Ejemplo
En vez de un breakpoint en el código de pagos — una metric de errores, un trace de la solicitud y una línea de log.
- Consecuencia
Los instrumentos tienen que estar en el panel de antemano, no añadirse durante la caída.
- Relaciones
Los instrumentos son los tres pilares: logs, metrics, traces.
Monitoring vs Observability — preguntas conocidas y nuevas
El tablero de un coche muestra las pocas cosas que sabías que debías vigilar — velocidad, combustible, temperatura. Pero cuando empieza un ruido extraño y nuevo, necesitas poder investigar algo para lo que nadie puso una aguja.
El monitoring es vigilar problemas que anticipaste — dashboards y alertas para modos de fallo conocidos. La observability (a menudo escrita o11y) es la propiedad más profunda: ¿puedes responder preguntas que no previste, solo con los datos que el sistema produce?
Las caídas reales suelen ser inéditas — «¿por qué los usuarios en Brasil ven checkouts lentos desde las 2 de la tarde?» — y la observability es si tu sistema emite lo suficiente para dejarte perseguir una pregunta que nunca planeaste.
- Problema
Los dashboards y las alertas atrapan solo los fallos que previste; las caídas reales suelen ser nuevas.
- Idea
El sistema emite datos suficientes para responder una pregunta que nadie planeó.
- Ejemplo
«¿Por qué los checkouts van lentos en Brasil desde las 2 de la tarde?» — cortas los datos por región, hora y endpoint.
- Monitoring
- Vigilar lo conocido. Hace falta, pero no basta.
- Relaciones
- Te permite investigar; el alerting te dice cuándo empezar.
Black Box — un sistema sobre el que solo puedes adivinar
Una máquina expendedora que se quedó con el dinero de alguien y no dio nada, sin pantalla y sin recibo — todo lo que puedes hacer es encogerte de hombros y adivinar, porque no te dice nada.
Un sistema que emite poco es una black box: cuando se porta mal, quedas reducido a adivinar y reiniciar. El coste aparece en el peor momento — un incidente en producción donde cada minuto cuenta y no tienes ni idea de dónde mirar.
La observability se paga por adelantado, instrumentando el sistema mientras está en calma, para que cuando esté en llamas tengas luz para ver.
- Qué es
- Un sistema que casi no emite nada sobre sí mismo.
- Por qué duele
Durante un incidente adivinas y reinicias mientras cada minuto cuesta dinero.
- Ejemplo
El servicio se cae, los logs están vacíos, no hay metrics — ¿dónde mirar?
- Remedio
- Instrumentar el sistema mientras está en calma.
- Relaciones
- Se cura con la práctica Instrument as You Build.
No puedes pausar la producción para inspeccionarla. La observability es construir el sistema para que se explique a sí mismo — y así responder preguntas que nunca previste, no solo vigilar las que sí.
La señal más antigua y detallada es el log: un diario continuo de lo que hizo el sistema. Es lo primero a lo que recurres y lo más fácil de usar mal.
Log — el diario del sistema
El cuaderno de bitácora de un barco: entradas con fecha y hora que anotan qué pasó y cuándo — «10:42, entramos al puerto» — para que cualquiera pueda reconstruir el viaje después.
Un log es un registro con fecha y hora de un evento: «el usuario 42 inició sesión», «el pago falló: tarjeta rechazada», «empezó a procesarse el pedido 91». Cada línea es una nota pequeña y detallada sobre algo que ocurrió, escrita mientras corre el código.
Los logs son la señal más rica porque llevan detalles — qué exactamente, cuándo exactamente, con los datos adjuntos. Cuando necesitas saber qué pasó de verdad en un caso concreto, miras los logs.
- Qué es
- Un registro de un evento, con fecha y hora y detalles.
- Responde
- «¿Qué pasó exactamente en este caso concreto?»
- Ejemplo
10:42:09 ERROR payment failed: card declined- Ojo
- Es fácil pasarse — ruido, factura de almacenamiento, búsquedas lentas.
- Relaciones
Se vuelve útil con el structured logging y los log levels; se une al trace mediante un correlation ID.
Structured Logging — logs en los que se puede buscar
La diferencia entre una caja de zapatos con notas a mano y una hoja de cálculo — ambas guardan los hechos, pero solo una te deja filtrar al instante todo lo del cliente 42.
Una línea de texto libre es difícil de buscar entre millones de entradas. Los structured logs registran cada evento como datos — campos como user_id: 42, status: failed, duration_ms: 230 — para que puedas consultarlos: «muéstrame cada pago fallido de más de 500 ms hoy».
Esto convierte los logs de un muro de texto por el que haces scroll en una base de datos que puedes interrogar. La estructura es lo que hace usables los logs a escala de producción.
- Problema
El texto libre no se puede encontrar ni filtrar entre millones de líneas.
- Idea
- Escribir cada evento como datos: campos con nombre en vez de una frase.
- Ejemplo
user_id: 42,status: failed,duration_ms: 230→ «cada pago fallido de más de 500 ms hoy».- Coste
- Hay que acordar los nombres de los campos y mantenerlos consistentes.
- Cuándo usarlo
Siempre, en cuanto hay más logs de los que puedes recorrer con la vista.
- Relaciones
Un campo
request_iden cada línea es la base de un correlation ID.
Log Levels — separar la señal del ruido
Un diario donde las entradas rutinarias van a lápiz y las emergencias en tinta roja — así, en una crisis, vas directo a lo rojo e ignoras el resto.
Cada log tiene un nivel que marca su importancia: DEBUG e INFO para detalle rutinario, WARN para algo raro, ERROR para un fallo real. Los niveles te dejan subir el volumen al investigar y bajarlo en la operación normal, y saltar directo a los errores en una avalancha de entradas.
Bien usados, los niveles mantienen localizables las líneas importantes; ignorados, todos los logs parecen igual de urgentes y ninguno destaca.
- Qué es
- Una etiqueta de importancia en cada línea de log.
- Cómo funciona
DEBUG/INFO— rutina,WARN— algo raro,ERROR— un fallo real.- Ejemplo
Durante un incidente filtras por
ERRORy ves los fallos de inmediato.- Ojo
- Si todo se registra como
ERROR, nada destaca. - Relaciones
- La perilla de volumen frente al log volume.
Log Volume — demasiado log es tan inútil como muy poco
Un diario que anota cada respiración es tan ilegible como uno en blanco — la señal que necesitas queda enterrada en un ruido que nadie puede cribar.
Es tentador abusar de los logs, y el over-logging tiene un coste real: es caro de almacenar, lento de buscar y entierra las líneas que importan bajo el ruido.
La habilidad está en registrar lo que de verdad querrás más tarde — decisiones, fallos, eventos clave — con detalle suficiente para ser útil y no tanto como para ahogar la señal. Registra con intención, no por reflejo.
- Qué es
- Registrar cada paso «por si acaso».
- Por qué duele
Caro de almacenar, lento de buscar, y lo que importa se ahoga en el ruido.
- Ejemplo
Un diario que anota cada respiración es tan inútil de leer como uno en blanco.
- Remedio
- Registrar con intención: decisiones, fallos, eventos clave.
- Relaciones
Se controla con los log levels; la misma trampa de ruido que la alert fatigue.
Los logs son el diario detallado de lo que pasó. Hazlos estructurados para poder consultarlos, con niveles para poder filtrarlos y enfocados para que la señal no se pierda en el ruido.
Los logs te hablan de eventos individuales. Las metrics te hablan del conjunto, a lo largo del tiempo — los números que muestran, de un vistazo, si el sistema está sano o se está deteriorando.
Metric — un número a lo largo del tiempo
La gráfica de un hospital que sigue el pulso durante la noche — no cada latido, solo el número muestreado de forma constante, así que una tendencia al alza salta a la vista.
Una metric es una medición seguida en el tiempo: solicitudes por segundo, tasa de errores, tiempo de respuesta, memoria usada. A diferencia de un log, no trata de un evento — es el agregado, muestreado de forma continua, así que ves tendencias y picos.
Las metrics son baratas de recolectar y guardar porque son solo números, lo que significa que puedes tenerlas para todo, todo el tiempo, y ver moverse la forma de tu sistema.
- Qué es
- Una medición numérica muestreada de forma constante en el tiempo.
- Responde
- «¿Algo va mal y cuál es la tendencia?»
- Ejemplo
Solicitudes por segundo, tasa de errores, tiempo de respuesta, memoria.
- Ventaja
- Barata de recolectar y guardar — tenla para todo, todo el tiempo.
- Desventaja
No sabe nada de los detalles de una solicitud — para eso, ve a los traces y los logs.
- Relaciones
Viene como counter o gauge; se ve en un dashboard; es la base de un SLI.
Counter vs Gauge — los counters suben, los gauges oscilan
Un cuentakilómetros solo sube, contando el total de kilómetros recorridos; un velocímetro sube y baja según lo rápido que vas ahora mismo.
Dos formas básicas cubren la mayoría de las metrics. Un counter solo aumenta — total de solicitudes atendidas, total de errores — y lo que observas es su ritmo de cambio. Un gauge sube y baja para mostrar un valor actual — memoria en uso, conexiones activas, longitud de la cola.
Saber cuál tienes delante te dice cómo leerla: en un counter lo que cuenta es la pendiente; en un gauge, su altura actual.
- Counter
- Solo sube: total de solicitudes, total de errores. Lee su ritmo.
- Gauge
Sube y baja: memoria, conexiones activas, longitud de la cola. Lee su valor actual.
- Ejemplo
«10.400 errores en total» dice poco; «los errores por minuto se triplicaron» dice mucho.
- Ojo
- Leer un counter como un gauge — mirar la altura, no la pendiente.
- Relaciones
- Las dos formas de cualquier metric.
Dashboard — hacer visibles las tendencias
Una pared de indicadores en una sala de control: de un vistazo el operador ve que todo está en verde y estable, o que una aguja sube hacia el rojo.
Las metrics suelen verse en un dashboard — gráficas de los números clave a lo largo del tiempo, una junto a otra. Un buen dashboard te deja ver la salud del sistema en segundos y notar el momento en que una línea se torció.
Aquí las metrics se ganan el pan: no en un valor suelto, sino en la tendencia visible que dice «algo empezó a ir mal a las 2 de la tarde» antes de que los usuarios terminen de quejarse.
- Qué es
- Gráficas de las metrics clave a lo largo del tiempo, una junto a otra.
- Por qué
Ver la salud del sistema en segundos, y el momento en que una línea se dobló.
- Ejemplo
Los errores empezaron a subir a las 2 de la tarde — visible antes de que lleguen las quejas.
- Ojo
Un dashboard no despierta a nadie — alguien tiene que mirarlo. Lo urgente va a las alertas.
- Relaciones
Muestra metrics; las primeras gráficas son los four golden signals.
Four Golden Signals — las constantes vitales de un servicio
La revisión rápida de constantes vitales de un médico — pulso, temperatura, presión arterial, respiración — un conjunto diminuto que detecta casi todo lo que anda mal sin medirlo todo.
No necesitas mil metrics para empezar. Los four golden signals cubren la mayor parte de la salud de un sistema: latency (cuánto tardan las solicitudes), traffic (cuánta demanda hay), errors (cuántas solicitudes fallan) y saturation (qué tan llenos están tus recursos).
Vigila estos cuatro y atraparás pronto la gran mayoría de los problemas. Son las constantes vitales de un servicio — las primeras agujas que poner en el panel.
- Problema
- No está claro con qué metrics empezar, y mil metrics son ruido.
- Idea
Cuatro números cubren la mayor parte de la salud de un sistema: latency, traffic, errors, saturation.
- Ejemplo
Un servicio de pagos: tiempo de respuesta, solicitudes por segundo, proporción de fallos, uso del pool de conexiones.
- Cuándo usarlo
- Las primeras gráficas de cualquier servicio nuevo.
- Relaciones
Van en un dashboard; de ellos se sacan los SLIs; el comienzo de Start Small and Grow.
Las metrics son números a lo largo del tiempo — counters que suben, gauges que oscilan — mostrados en dashboards. Empieza con los four golden signals: latency, traffic, errors, saturation.
En un sistema de muchos servicios, una solicitud de usuario toca muchos de ellos. Un trace sigue esa única solicitud de punta a punta — y responde lo que los logs y las metrics no pueden: ¿dónde, entre todo, se fue el tiempo o ocurrió el fallo?
Trace — el camino de una solicitud entre servicios
El historial de seguimiento de un paquete: recogido aquí, clasificado allá, enviado por avión, entregado — el viaje completo de un paquete por todas las manos que lo tocaron.
En los sistemas modernos una sola solicitud salta por muchos servicios — el gateway llama al servicio de pedidos, que llama a pagos, que llama a una base de datos. Un trace registra ese viaje entero de una solicitud, cosido para que veas cada salto que dio.
Responde algo que ni los logs ni las metrics pueden: no «qué pasó» ni «cuánto», sino «¿cuál fue el camino de esta solicitud concreta por todo el sistema?»
- Qué es
- Un registro del camino completo de una solicitud por cada servicio.
- Responde
- «¿En qué punto del camino de esta solicitud está el problema?»
- Ejemplo
Gateway → pedidos → pagos → base de datos, todo bajo un mismo trace ID.
- Coste
- Cada servicio tiene que pasar el ID, o el camino se rompe.
- Relaciones
- Se compone de spans; su ID es el correlation ID.
Span — dónde se fue el tiempo
Un itinerario de viaje dividido en tramos, cada uno con su duración — y de inmediato ves que la escala de tres horas, no los vuelos, se comió el día.
Un trace se compone de spans — uno por paso, cada uno midiendo cuánto tardó esa pieza. Dispuestos como una cascada (waterfall), los spans muestran exactamente dónde pasó su tiempo una solicitud lenta: el span de la base de datos tardó 900 ms mientras todo lo demás tardó 50.
Sin esto, «la solicitud fue lenta» es un misterio repartido entre muchos servicios; con esto, señalas directo al culpable. Los spans convierten una lentitud vaga en una ubicación precisa.
- Qué es
- Un paso medido dentro de un trace: inicio, fin, duración.
- Cómo funciona
Los spans se anidan y se disponen en el tiempo como una cascada.
- Ejemplo
El span de la base de datos tardó 900 ms, todo lo demás junto 50 ms. El culpable es obvio.
- Por qué
- Convierte «lento en algún sitio» en una ubicación precisa.
- Relaciones
- El bloque de construcción de un trace.
Distributed Tracing — cómo se depuran los sistemas distribuidos
Seguir un solo testigo caído hasta atrás en una carrera de relevos para encontrar exactamente qué traspaso falló — imposible de ver solo con el resultado final.
Cuando una solicitud falla o se arrastra y el trabajo está repartido entre servicios, un trace suele ser la única forma de encontrar dónde. Eso es el distributed tracing.
Las metrics te dicen que el sistema está lento; los logs te dicen lo que dijo cada servicio; el trace une el camino de una solicitud y señala el servicio y el paso exactos que fallaron. Para cualquier cosa distribuida, el tracing es la herramienta que convierte «en algún punto de ahí salió mal» en «justo aquí».
- Problema
El trabajo está repartido entre servicios; el resultado final no muestra qué paso falló.
- Idea
- Seguir cada solicitud por todos los servicios como un solo trace.
- Ejemplo
El checkout falla: el trace muestra que el paso del servicio de pagos es el que falla.
- Cuándo usarlo
- En cuanto una solicitud pasa por más de un servicio.
- Relaciones
Se construye con trace y span; el segundo paso de notice → locate → explain.
Un trace sigue una solicitud por todos los servicios, dividida en spans medidos — para que veas exactamente dónde, en un sistema distribuido, se fue el tiempo o ocurrió el fallo.
Logs, metrics y traces se llaman los tres pilares de la observability porque cada uno responde una pregunta distinta. La fuerza está en usarlos juntos, no en elegir uno.
Three Pillars — cada uno responde una pregunta distinta
Investigar un problema con tres herramientas: una gráfica que muestra cuándo cambiaron las cosas, un mapa que muestra dónde y un informe detallado que muestra exactamente qué — inútiles por separado, decisivas juntas.
Los tres pilares de la observability se reparten el trabajo. Las metrics responden «¿hay algo mal y cuál es la tendencia?» — el panorama barato y siempre activo. Los traces responden «¿dónde, entre todos los servicios, está el problema?» — lo acotan a un paso. Los logs responden «¿qué exactamente pasó ahí?» — el detalle completo en la escena.
Ninguno basta por sí solo; cada uno recoge donde los demás se detienen.
- Problema
- Ninguna señal sola responde todas las preguntas de un incidente.
- Idea
Metrics — «¿hay un problema?», traces — «¿dónde?», logs — «¿qué exactamente?».
- Ejemplo
Solo metrics: sabes que va mal pero no dónde. Solo logs: te ahogas en detalle sin un mapa.
- Cuándo usarlo
- Para cada servicio en producción.
- Relaciones
Se recorren en orden como notice → locate → explain; unidos por un correlation ID.
Notice → Locate → Explain — el flujo natural
Un médico ve fiebre en la gráfica, explora para hallar qué órgano, y luego pide la prueba específica que nombra la enfermedad — señal amplia, luego estrecha, luego exacta.
En la práctica los recorres en orden. Una metric o alerta te dice que algo va mal (la tasa de errores saltó). Un trace te muestra dónde (el paso del servicio de pagos está fallando). Un log en ese punto te dice exactamente qué (el proveedor de pagos devolvió un timeout).
De lo amplio a lo estrecho y a lo exacto: la metric nota, el trace localiza, el log explica. Conocer este flujo es casi todo lo que hay que saber para depurar producción.
- Problema
- En un incidente no está claro con qué señal empezar.
- Idea
- Ir de lo amplio a lo exacto: metric, luego trace, luego log.
- Ejemplo
La tasa de errores saltó → trace: el paso de pagos está fallando → log: el proveedor devolvió un timeout.
- Ojo
- Empezar con un grep por los logs — buscar una aguja sin mapa.
- Relaciones
Es rápido solo cuando las señales están unidas por un correlation ID.
Correlation ID — el hilo que lo une todo
Un número de caso escrito en cada documento, foto e informe — para que un investigador pueda reunir todo sobre un incidente en vez de buscar en cada montón por separado.
Los pilares son mucho más fuertes cuando están enlazados. Adjuntar un request ID (o trace ID) compartido a las metrics, al trace y a cada línea de log de una solicitud te deja saltar de «esta solicitud falló» directo a su trace y a sus logs exactos. Eso es la correlation.
Sin correlation tienes tres pajares separados; con ella, un solo tirón reúne la historia completa de un incidente. Los enlaces entre los pilares son lo que los hace un sistema y no tres herramientas.
- Problema
- Metrics, traces y logs están en tres pajares separados.
- Idea
- Un ID compartido por solicitud — en el trace y en cada línea de log.
- Ejemplo
Buscas
request_id=abc123y obtienes el trace más los logs del gateway y de pagos de esa solicitud.- Coste
- El ID tiene que pasar por cada servicio y escribirse en cada log.
- Relaciones
Pega los three pillars; lo más fácil es llevarlo como un campo en el structured logging.
Las metrics notan, los traces localizan, los logs explican — de lo amplio a lo estrecho y a lo exacto. Correlaciónalos con request IDs compartidos y tres herramientas se vuelven una sola historia de lo que salió mal.
La observability te deja investigar; el alerting te dice cuándo empezar. Lo difícil no es detectar problemas — es decidir cuáles merecen despertar a una persona.
Symptom-based Alerting — alerta sobre lo que sienten los usuarios
Una alarma de humo debe sonar ante un incendio de verdad, no cada vez que alguien hace una tostada — o la gente le arranca la pila y se pierde la alarma real.
Una alerta es una notificación automática cuando algo cruza una línea. El arte está en alertar sobre los síntomas que los usuarios realmente sienten — checkouts que fallan, el sitio lento — no sobre cada espasmo interno.
Un servidor al 80 % de memoria no es un problema si los usuarios están bien; un pico de pedidos fallidos sí lo es, aunque todos los servidores parezcan sanos. Alerta sobre el resultado de cara al usuario y despertarás a las personas solo por lo que de verdad importa.
- Problema
Alertar sobre cada espasmo interno despierta a la gente por cosas que no importan.
- Idea
- Avisar solo por resultados que los usuarios realmente sienten.
- Ejemplo
80 % de memoria con usuarios contentos — sin alerta. Un pico de pedidos fallidos — alerta, aunque los servidores se vean en verde.
- Cuándo usarlo
- Para todo lo que envía una notificación a una persona.
- Relaciones
- La línea la fija un SLO; te salva de la alert fatigue.
SLI / SLO / SLA — definir qué es suficientemente bueno
Una empresa de reparto que promete «el 99 % de los paquetes llega en dos días» — una vara clara y medible de lo que cuenta como servicio aceptable, acordada de antemano.
Tres siglas formalizan «qué tan bueno es suficientemente bueno». Un SLI (service level indicator) es la medición (el porcentaje de solicitudes atendidas en menos de 300 ms). Un SLO (service level objective) es la meta que fijas para él (debería ser 99,9 %). Un SLA (service level agreement) es una promesa contractual a un cliente, con consecuencias si se incumple.
Fijar un SLO explícito convierte la fiabilidad de una sensación vaga en un número al que puedes exigirle al sistema — y en una línea clara de cuándo actuar.
- SLI
- La medición: proporción de solicitudes atendidas en menos de 300 ms.
- SLO
- La meta para el SLI: debería ser 99,9 %.
- SLA
- Una promesa contractual a un cliente, con consecuencias si se incumple.
- Por qué
«Suficientemente fiable» se vuelve un número — y una línea clara de cuándo actuar.
- Relaciones
Los SLIs se construyen con metrics y los golden signals; el SLO es la línea para las alertas.
Alert Fatigue — el asesino silencioso
Un coche que pita sin parar por tonterías enseña al conductor a ignorar todos los pitidos — y la única advertencia que importaba se descarta con el resto.
Demasiadas alertas es un fallo en sí mismo: cuando avisan a la gente por cosas que no importan, empiezan a ignorar las alertas por completo, y la real se pierde en el ruido — eso es la alert fatigue.
Cada alerta debe ser accionable y merecer la atención de una persona ahora mismo; si no, su sitio es un dashboard, no un pager. Menos alertas, más afiladas, ganan a una avalancha, porque una alerta en la que nadie confía es peor que ninguna.
- Qué es
- La gente deja de reaccionar a las alertas porque son demasiadas.
- Por qué duele
- La alerta real se ignora junto con el ruido.
- Ejemplo
El pager pita por tonterías cada hora — nadie se levanta por la que importa.
- Remedio
- Cada alerta accionable y urgente; todo lo demás va a un dashboard.
- Relaciones
Se cura con el symptom-based alerting y los SLOs; prima del log volume.
Alerta sobre los síntomas que sienten los usuarios, define «suficientemente bueno» con un SLO y cuídate de la alert fatigue — porque una alerta en la que nadie confía es peor que ninguna.
La observability se construye desde dentro, no se pega después. La habilidad está en instrumentar sobre la marcha, mantener limpia la señal y gastar tu atención en las pocas cosas que más revelan.
Instrument as You Build — no después del incendio
Instalar los detectores de humo mientras construyes la casa — no estar de pie entre el humo deseando haberlo hecho.
El peor momento para añadir observability es durante una caída, cuando descubres que el sistema no te dice nada. Así que incorporas la instrumentación sobre la marcha: emite una metric para la función nueva, registra sus decisiones clave, asegúrate de que una solicitud pueda trazarse a través de ella.
Un poco de instrumentación añadida mientras el código está fresco ahorra horas de adivinar a ciegas más tarde. Trata «¿cómo voy a ver esto en producción?» como parte de construirlo, no como una ocurrencia tardía.
- Problema
Descubres los huecos en tus señales durante la caída — demasiado tarde.
- Idea
- Una metric, logs clave y tracing son parte de cada función nueva.
- Ejemplo
Una función nueva de pagos sale con una metric de errores, registra sus decisiones y pasa el trace ID adelante.
- Coste
Un poco de trabajo mientras el código está fresco — en vez de horas de adivinar después.
- Relaciones
- El antídoto de una black box.
Start Small and Grow — empieza por los golden signals
El dueño de una tienda nueva vigila primero los pocos números que importan — ventas, visitas, quejas — y añade un seguimiento más fino solo cuando surgen preguntas concretas.
No necesitas cobertura total el primer día. Empieza con los four golden signals y un puñado de logs en los puntos clave de decisión, y luego añade detalle donde los incidentes reales te muestren un blind spot (punto ciego).
Cada caída es una lección sobre lo que desearías haber estado registrando — así que deja que tu observability crezca siguiendo los contornos de donde el sistema de verdad te sorprende, en vez de instrumentarlo todo de entrada.
- Problema
- Instrumentarlo todo de entrada es lento, caro y ruidoso.
- Idea
Empezar con los golden signals; añadir detalle donde un fallo real te sorprendió.
- Ejemplo
Un incidente mostró que los timeouts del proveedor eran invisibles — añades una metric y un log justo ahí.
- Cuándo usarlo
- Desde el primer día de cualquier servicio.
- Relaciones
Parte de los four golden signals; mantiene a raya el log volume.
Cómo se conectan los conceptos
Un panel de instrumentos de avión: una docena de indicadores, pero todos sobre un solo vuelo — y el piloto los lee juntos.
Todo en este curso es parte de un solo panel. Un sistema en marcha emite tres señales: las metrics notan, los traces localizan, los logs explican. Un correlation ID ata las tres a una solicitud. Las metrics y los golden signals alimentan los SLIs y SLOs, y estos mueven las alertas basadas en síntomas — pocas y afiladas, así que no hay alert fatigue. Y el panel mismo crece cuando instrumentas al construir y añades detalle tras los incidentes reales.
- ¿Qué puede decirme en producción — o es una black box cuando se rompe?
- Los golden signals — ¿sigo latency, traffic, errors y saturation?
- Logs — ¿estructurados, con niveles y centrados en las decisiones y fallos que importan?
- Tracing — ¿puedo seguir una solicitud por los servicios que toca?
- Correlation — ¿comparten un request ID las metrics, los logs y los traces?
- Alertas y un SLO — ¿aviso por lo que sienten los usuarios, frente a una meta definida?
- Cuando algo se rompe, el sistema te dice dónde mirar en vez de dejarte adivinando.
- Vas metric → trace → log para pasar de notar a localizar y a explicar.
- Un request ID compartido une las señales de un incidente.
- Tus alertas saltan por síntomas de cara al usuario y la gente aún confía en ellas.
- Tienes SLOs explícitos, e instrumentaste al construir, no durante la caída.
Hoja de referencia: los 22 conceptos
Fundamentos
- Flying by Instrumentsproducción
No puedes pausar la producción — solo ves lo que el sistema emite.
- Observabilityo11y
Responder preguntas imprevistas con los datos del sistema. El monitoring vigila lo conocido.
- Black Boxsistema opaco
Un sistema que no emite nada: ante un fallo, solo puedes adivinar.
Logs
- Logregistro de evento
Un registro de un evento con fecha y hora. Responde «qué pasó exactamente».
- Structured Logginglogs como datos
Eventos como campos de datos — logs que puedes consultar.
- Log LevelsDEBUG · INFO · WARN · ERROR
Una etiqueta de importancia: volumen arriba para investigar, abajo en marcha normal.
- Log Volumeover-logging
Demasiados logs son ruido y una factura. Registra con intención.
Metrics
- Metricserie temporal
Un número a lo largo del tiempo. Barata, siempre activa, muestra la tendencia.
- Counter vs Gaugelas dos formas
Un counter solo sube (lee la pendiente); un gauge oscila (lee el valor).
- Dashboardmetrics de un vistazo
Metrics clave una junto a otra: la salud en segundos.
- Four Golden Signalsconstantes vitales
Latency, traffic, errors, saturation — las constantes vitales de un servicio.
Traces
- Tracecamino de la solicitud
El camino de una solicitud por todos los servicios. Responde «dónde».
- Spanpaso medido
Un paso medido de un trace; la cascada de spans muestra dónde se fue el tiempo.
- Distributed Tracingtracing entre servicios
Depurar un sistema distribuido: «en algún sitio» se vuelve «justo aquí».
Juntos
- Three Pillarsmetrics, traces, logs
Metrics — hay un problema, traces — dónde, logs — qué exactamente.
- Notice → Locate → Explainmetric → trace → log
El flujo de la investigación, de lo amplio a lo exacto.
- Correlation IDrequest ID, trace ID
Un ID en todas las señales de una solicitud — la historia completa en un paso.
Alerting
- Symptom-based Alertingavisar por el dolor del usuario
Despierta a la gente por lo que sienten los usuarios, no por espasmos internos.
- SLI / SLO / SLAmedir, meta, promesa
La medición, la meta para ella y la promesa contractual a un cliente.
- Alert Fatigueruido del pager
Demasiadas alertas y nadie escucha. Menos y más afiladas.
Usarla bien
- Instrument as You Buildincorporada, no pegada después
Las señales son parte de construir una función, no una reacción a un incendio.
- Start Small and Growcrecer con los incidentes
Empieza con los golden signals; añade detalle donde un fallo real te sorprendió.
Una buena observability se construye desde dentro: golden signals desde el principio, logs estructurados, solicitudes trazables, correlacionadas por ID, y unas pocas alertas confiables frente a un SLO real.