Implementa el stack de observabilidad completo para tu aplicación web: error tracking con Sentry, métricas de performance, logs centralizados y alertas que te avisan antes de que lo hagan los usuarios.
Cuándo usarlo: Monitorización, Sentry, observabilidad, DevOps, SRE
Herramienta recomendada: Claude
Eres un Site Reliability Engineer (SRE) con experiencia implementando observabilidad en aplicaciones web con 10k a 1M de usuarios activos. Mi stack: - Backend: [Node.js / Python / PHP Laravel / Go / Ruby / otro] - Frontend: [React / Vue / Next.js / Nuxt / otro] - Infraestructura: [AWS / GCP / Azure / Hetzner VPS / Kubernetes / otro] - Estado actual de monitoring: [sin nada / solo logs básicos / Sentry sin configurar bien / otro] - Presupuesto para herramientas: [gratuito / €X/mes] ## Stack de Observabilidad — [Aplicación] ### 🔍 Los 3 pilares de la observabilidad 1. **Logs:** qué pasó y cuándo 2. **Métricas:** tendencias y valores de salud del sistema 3. **Trazas:** el camino de un request a través de tu sistema No necesitas los tres desde el día 1. Empieza por donde más duele. ### 🚨 Error Tracking con Sentry (empieza aquí) **Instalación básica:** ```javascript // Node.js / Next.js import * as Sentry from "@sentry/nextjs" Sentry.init({ dsn: process.env.SENTRY_DSN, environment: process.env.NODE_ENV, tracesSampleRate: 0.1, // 10% de requests para performance profilesSampleRate: 0.1, integrations: [ Sentry.httpIntegration(), Sentry.prismaIntegration(), // si usas Prisma ], }) ``` ```php // Laravel composer require sentry/sentry-laravel // config/sentry.php — dsn desde variable de entorno // En App\Exceptions\Handler::report(): Sentry::captureException($exception); ``` **Configuración que marca la diferencia:** ```javascript // Añadir contexto de usuario a cada error Sentry.setUser({ id: user.id, email: user.email, subscription: user.plan, }) // Añadir breadcrumbs para reconstruir el camino al error Sentry.addBreadcrumb({ category: 'auth', message: 'User logged in', level: 'info', }) // Capturar errores manejados con contexto extra try { await processPayment(orderId) } catch (error) { Sentry.captureException(error, { tags: { order_id: orderId, payment_method: 'stripe' }, extra: { amount, currency }, }) } ``` **Alertas de Sentry que debes configurar:** - Nueva issue nunca vista → notificación inmediata - Issue que crece >50% en 1h → alerta de regresión - Issue que afecta a >1% de los usuarios → alerta crítica ### 📊 Métricas de infraestructura (elige según tu stack) **Para Kubernetes/contenedores:** Prometheus + Grafana **Para VPS/servidores:** Netdata (gratis, self-hosted) o Datadog (paid) **Para severless:** las métricas nativas de AWS CloudWatch / Vercel Analytics **Las 5 métricas que no pueden faltarte:** 1. P95 de latencia por endpoint 2. Error rate (errores 5xx / total requests) 3. CPU y memoria del servidor 4. Tiempo de respuesta de base de datos 5. Disponibilidad (uptime) ### 🔔 Uptime monitoring (2 minutos de setup) **Herramientas gratuitas:** - UptimeRobot (hasta 50 monitores gratuitos, check cada 5 min) - Better Uptime (más features, plan gratuito limitado) **Lo que monitorizar:** - La home de tu app - El endpoint de health check (`/health` que devuelve 200 si todo va bien) - Los endpoints críticos de tu API **Qué hacer cuando hay una alerta:** Runbook de respuesta a incidencias — el documento que guía al oncall a las 3am.