🧪 Problem-Driven Systems Lab
🔭 Caso 03 · Observabilidad

Observabilidad deficiente y logs inutiles

Existen errores e incidentes, pero no hay trazabilidad suficiente para identificar causa raiz de forma rapida y confiable.

OPERATIVO 🐘 PHP🟢 Node.js🐍 Python☕ Java🔵 .NET🐹 Go🦀 Rust

📈 Que cambia para el negocio

Reduce MTTR y convierte incidentes vagos en fallas diagnosticables con evidencia.

💼 Que demuestra tecnicamente

Prueba la diferencia entre tener logs pobres y tener telemetria util en tres runtimes distintos sin cambiar la historia del problema.

✅ Evidencia que deja

  • Compara checkout-legacy contra checkout-observable para ver que cambia cuando existe correlacion real.
  • Expone logs, trazas, metricas y diagnostics/summary para reconstruir el incidente con evidencia.
  • Demuestra transferibilidad del criterio en los siete stacks: contexto explicito en Go, lifetime acotado en Rust, AsyncLocal en .NET y ThreadLocal en Java.

👀 Que mirar al ejecutarlo

  • Si puedes identificar el paso exacto que falla y la dependencia implicada.
  • Si request_id y trace_id permiten correlacionar una request de punta a punta.
  • Si diagnostics/summary pasa de un incidente vago a una explicacion accionable.
Honestidad: No reemplaza una plataforma completa de tracing distribuido. Si deja una base reproducible para demostrar por que logs pobres alargan el MTTR.

Como esta resuelto en cada stack

PHP + Node.js + Python con logs estructurados, trazas y metricas; Java 21 con ThreadLocal<RequestContext> para correlation ID; .NET 8 con AsyncLocal<RequestContext> para correlation_id en pipeline async

StackHealth check localComposeDetalle
🐘 PHP 8.3http://localhost:8100/03/healthcompose.root.ymlREADME del stack
🟢 Node.js 22http://localhost:8300/03/healthcompose.nodejs.ymlREADME del stack
🐍 Python 3.12http://localhost:8200/03/healthcompose.python.ymlREADME del stack
☕ Java 21http://localhost:8400/03/healthcompose.java.ymlREADME del stack
🔵 .NET 8http://localhost:8500/03/healthcompose.dotnet.ymlREADME del stack
🐹 Go 1.23http://localhost:8600/03/healthcompose.go.ymlREADME del stack
🦀 Rust 1.83http://localhost:8700/03/healthcompose.rust.ymlREADME del stack

El expediente completo

El caso no empieza en el codigo: empieza en el sintoma y termina en el postmortem.

← Caso 02Caso 04 →