main content
< Volver a blog sobre aplicaciones móviles

Monitorización y observabilidad en apps web a medida

Cómo implementar monitorización y observabilidad en tu aplicación web a medida

Tu aplicación web está en producción, los usuarios llegan, todo parece funcionar. Hasta que un viernes a las 18:30 alguien del equipo comercial te escribe: "La app va lentísima". Abres el servidor, miras los logs, no ves nada claro. Revisas la base de datos, parece normal. Pruebas tú mismo y, efectivamente, tarda seis segundos en cargar el dashboard principal.

Pero no sabes por qué.

Este escenario se repite en empresas de todos los tamaños. Y la raíz casi siempre es la misma: se construyó la aplicación sin pensar en cómo vigilar su comportamiento una vez en producción. Monitorización y observabilidad no son un extra que se añade cuando hay tiempo. Son parte del diseño, igual que la base de datos o la autenticación.

Monitorización y observabilidad: que no son lo mismo

Se usan como sinónimos constantemente, pero conviene matizar. La monitorización consiste en recoger métricas predefinidas y lanzar alertas cuando algo se sale de los umbrales esperados. Es reactiva por naturaleza: defines qué vigilar y el sistema te avisa si falla.

La observabilidad va un paso más allá. Es la capacidad de entender el estado interno de tu sistema a partir de los datos que genera, sin necesidad de haber previsto el problema concreto. Si tu aplicación es observable, puedes investigar incidencias que nunca habías imaginado.

Piensa en un coche. La monitorización es el testigo del motor en el salpicadero: se enciende cuando algo va mal. La observabilidad es tener acceso al diagnóstico OBD completo, donde puedes consultar presión de cilindros, temperatura del catalizador y mezcla de combustible en tiempo real. Las dos son necesarias. Pero la segunda te permite resolver problemas que el testigo solo jamás explicaría.

Los tres pilares: logs, métricas y trazas

Cualquier estrategia de observabilidad seria se apoya en tres tipos de datos.

Logs (registros)

Son mensajes de texto que tu aplicación genera durante su ejecución. Un log puede decirte que un usuario intentó iniciar sesión, que una consulta a la base de datos tardó 3,2 segundos o que se lanzó una excepción en el módulo de pagos.

El problema habitual no es que falten logs. Es que sobran. Aplicaciones que generan gigabytes diarios de registros sin estructura, imposibles de consultar con agilidad.

La clave está en el logging estructurado. En lugar de escribir cadenas de texto plano, genera logs en formato JSON con campos consistentes: timestamp, nivel de severidad, servicio, ID de correlación. Herramientas como ELK Stack (Elasticsearch, Logstash, Kibana) o Loki permiten indexar y consultar estos registros de forma eficiente.

Métricas

Valores numéricos agregados a lo largo del tiempo. Tiempo de respuesta medio, número de peticiones por segundo, uso de CPU, porcentaje de errores 5xx, tamaño de la cola de tareas en segundo plano. Las métricas te dan la visión panorámica: no te cuentan qué pasó con una petición concreta, pero te muestran tendencias y anomalías.

Prometheus se ha convertido en el estándar de facto para recolección de métricas en entornos cloud-native. Combinado con Grafana para la visualización, forman un tándem que cubre las necesidades del 90% de los proyectos web a medida. Y ambas herramientas son open source, lo que las hace accesibles para startups y pymes sin necesidad de pedir presupuesto a nadie.

Trazas distribuidas

Cuando tu aplicación tiene varios servicios --una API, un servicio de autenticación, una cola de mensajes, un microservicio de notificaciones--, una petición del usuario atraviesa múltiples componentes. Las trazas distribuidas te permiten seguir esa petición de principio a fin, identificando exactamente dónde se produce el cuello de botella.

Jaeger y Zipkin son las herramientas más conocidas, compatibles con el estándar OpenTelemetry. También Datadog y New Relic ofrecen tracing distribuido como parte de sus plataformas comerciales, aunque con un coste muy diferente.

SLIs, SLOs y SLAs: el lenguaje de los compromisos

Antes de configurar alertas, necesitas definir qué significa "funcionar bien" para tu aplicación. Aquí entran tres conceptos que vienen del mundo SRE (Site Reliability Engineering) de Google, pero que son perfectamente aplicables a cualquier proyecto web.

SLI (Service Level Indicator): una métrica concreta que refleja la calidad del servicio. Por ejemplo, "porcentaje de peticiones HTTP que responden en menos de 500 ms" o "tasa de errores del endpoint /api/pedidos".

SLO (Service Level Objective): el objetivo que te marcas para ese indicador. "El 99,5% de las peticiones deben responder en menos de 500 ms durante un periodo de 30 días". Fíjate en que no es el 100%. Ningún sistema real opera sin errores, y perseguir el 100% tiene un coste desproporcionado.

SLA (Service Level Agreement): el compromiso contractual con tu cliente. Si vendes una plataforma SaaS y prometes un 99,9% de disponibilidad, eso es un SLA. Romperlo conlleva penalizaciones económicas.

Para una pyme española que desarrolla su propia aplicación, los SLAs formales pueden no aplicar. Pero definir SLIs y SLOs internos es fundamental. Te obligan a cuantificar la salud de tu sistema en lugar de depender de sensaciones. Y eso, a medio plazo, marca la diferencia entre reaccionar a ciegas y tomar decisiones con datos.

Estrategia de alertas: menos ruido, más señal

Uno de los errores más frecuentes es configurar alertas para todo. El resultado es fatiga de alertas. El equipo recibe tantas notificaciones que deja de prestarles atención, y cuando llega una alerta realmente crítica, se pierde entre el ruido.

¿Te suena? Probablemente sí.

Una buena estrategia de alertas debería seguir estos principios:

  • Alerta sobre síntomas, no sobre causas. Alerta cuando la tasa de errores sube por encima del umbral, no cuando el uso de CPU supera el 80% (puede ser perfectamente normal bajo carga).
  • Clasifica por severidad. Crítica (requiere acción inmediata, envía SMS), alta (investigar en la próxima hora, notifica en Slack), media (revisar en el próximo sprint).
  • Incluye contexto en la alerta. Un mensaje que diga "Error rate > 5% en /api/checkout durante los últimos 10 minutos. Dashboard: [enlace]" es infinitamente más útil que "Alerta: umbral superado".
  • Revisa las alertas periódicamente. Cada trimestre, analiza cuáles se dispararon, cuáles fueron accionables y cuáles solo generaron ruido. Las que no aportan, fuera.

APM y Real User Monitoring

El Application Performance Monitoring (APM) te da visibilidad sobre el rendimiento de tu código: qué funciones tardan más, qué consultas SQL son las más lentas, dónde se producen los cuellos de botella. Sentry, por ejemplo, comenzó como herramienta de tracking de errores y ha evolucionado hacia una plataforma completa de APM con soporte para Python, Node.js, PHP y prácticamente cualquier stack.

El Real User Monitoring (RUM) complementa al APM midiendo la experiencia desde el navegador del usuario. Tiempos de carga percibidos, Web Vitals (LCP, FID, CLS), errores de JavaScript en producción. Google penaliza en su ranking las páginas con malos Core Web Vitals, así que esto tiene impacto directo en tu SEO.

No es poca cosa. Según datos de Google de 2024, las páginas que cumplen los tres Core Web Vitals tienen un 24% menos de tasa de abandono.

Costes: qué opciones tiene una pyme

Aquí es donde muchos proyectos se atascan. Las plataformas comerciales como Datadog o New Relic son potentes, sin duda, pero su facturación por host o por volumen de datos puede dispararse rápidamente. Un entorno modesto con tres servidores, APM y log management puede superar los 400-600 euros al mes en Datadog. Para una startup que acaba de levantar su primera ronda, eso duele.

La ruta open source es viable y cada vez más madura:

  • Prometheus + Grafana para métricas y dashboards. Coste: solo la infraestructura donde los despliegues (un servidor pequeño puede bastar).
  • Loki para agregación de logs, diseñado para integrarse con Grafana.
  • Jaeger para trazas distribuidas.
  • Sentry (versión self-hosted o plan gratuito) para tracking de errores y APM básico.
  • Uptime Kuma para monitorización de disponibilidad externa, ligero y fácil de desplegar.

Un stack completo basado en estas herramientas puede funcionar en un VPS de 20-30 euros al mes. No tendrás la misma experiencia pulida que con Datadog, pero cubrirás el 80% de las necesidades. Y para muchos proyectos, ese 80% es más que suficiente.

Si tu presupuesto es algo mayor, Grafana Cloud ofrece planes con un nivel gratuito generoso y precios predecibles. Buen punto intermedio entre montar todo tú y pagar licencias enterprise.

La observabilidad se diseña, no se añade después

Si esperas a que la aplicación esté en producción para pensar en observabilidad, te encontrarás parcheando: añadiendo logs donde puedes, instrumentando a posteriori, configurando alertas sobre métricas que no reflejan la salud real del sistema.

Tiene que ser parte de la arquitectura desde el primer sprint:

  • Definir estándares de logging antes de escribir la primera línea de código. Formato, campos obligatorios, niveles de severidad.
  • Instrumentar desde el principio. Si usas OpenTelemetry, la instrumentación automática cubre gran parte del trabajo con mínimo esfuerzo.
  • Incluir health checks en cada servicio. Un endpoint /health que devuelva el estado del servicio y sus dependencias.
  • Documentar los SLOs junto con la documentación técnica del proyecto.
  • Presupuestar la infraestructura de observabilidad como parte del coste del proyecto. No como un extra opcional que ya se verá.

Según el informe State of DevOps de DORA (2024), los equipos con prácticas maduras de observabilidad resuelven incidencias un 60% más rápido que los que dependen solo de monitorización básica. En un entorno donde cada minuto de caída puede significar pérdida de ventas o de confianza del usuario, esa diferencia es dinero contante y sonante.

En la práctica: un ejemplo concreto

Imagina que desarrollas una plataforma de gestión de reservas para una cadena de clínicas dental en Andalucía. Backend en Node.js, base de datos PostgreSQL, frontend en React. Unos 200 usuarios concurrentes en hora punta.

Tu stack de observabilidad podría ser algo así:

  1. Prometheus recogiendo métricas del backend (tiempos de respuesta, tasa de errores, conexiones activas a la BBDD).
  2. Grafana con dashboards específicos: uno para el equipo técnico y otro simplificado para el responsable de la clínica que solo quiere saber si todo va bien.
  3. Loki centralizando los logs del backend y de PostgreSQL.
  4. Sentry capturando excepciones en el frontend y el backend, con alertas por Slack para errores nuevos.
  5. Un cron job que ejecuta transacciones sintéticas cada cinco minutos (crear reserva, consultarla, cancelarla) para detectar degradaciones antes de que los usuarios las noten.

Todo esto, desplegado en un VPS adicional, con un coste inferior a 40 euros al mes. Nada exótico. Nada que requiera un equipo de SRE dedicado.

Conclusión

Implementar monitorización y observabilidad en tu aplicación web a medida no requiere un presupuesto de gran empresa ni un equipo de infraestructura de diez personas. Requiere decisiones conscientes desde el inicio del proyecto: qué datos recoger, cómo estructurarlos, qué umbrales definir y cómo actuar cuando algo se desvía.

Las herramientas están ahí, muchas de ellas gratuitas y con comunidades activas. Lo que de verdad marca la diferencia es la intención de construir un sistema que no solo funcione, sino que te cuente cómo está funcionando. Porque cuando llega ese viernes a las 18:30 y alguien te dice que la app va lenta, la diferencia entre tardar cinco minutos en encontrar la causa o tirarte dos horas a ciegas es exactamente eso: haber pensado en observabilidad desde el día uno.

Si estás planificando una aplicación web a medida y quieres asegurarte de que la observabilidad forme parte del diseño desde el primer día, consulta con nuestro equipo técnico para definir la estrategia adecuada a tu contexto y presupuesto.

Contacta con nosotros
Fila 1