Analytics y Monitoreo
Sistema completo de captura, almacenamiento y análisis de métricas que proporciona visibilidad en tiempo real del uso de la plataforma y performance de endpoints.
Analytics Sin Impacto
El sistema de analytics está diseñado para capturar métricas sin impactar el performance de los endpoints. Todo el procesamiento y almacenamiento se realiza de forma asíncrona después de enviar la respuesta al cliente.
Componentes del Sistema
Dashboard Analytics
Sistema principal de métricas y estadísticas:
Métricas Capturadas
Por Endpoint:
- Total de requests procesados
- Tiempo promedio de respuesta
- Requests por método HTTP (GET, POST, PUT, DELETE)
- Tasa de errores (4xx, 5xx)
- Distribución horaria de tráfico
Por Usuario:
- Actividad total del usuario
- Endpoints más utilizados
- Patrones de uso por día/hora
- Sesiones activas y dispositivos
- Historial de navegación
Globales:
- Total de requests en el sistema
- Performance general de la plataforma
- Usuarios activos por período
- Picos de tráfico y carga
- Tendencias de crecimiento
Dashboard Analytics Service
Servicio que proporciona:
getEndpointStats(endpoint, period)– Estadísticas de un endpointgetUserAnalytics(userId, period)– Analytics de usuario específicogetGlobalStats(period)– Estadísticas globalesgetTopEndpoints(limit)– Endpoints más utilizadosgetSlowEndpoints(threshold)– Endpoints con performance bajo umbral
Analytics Interceptor
Interceptor que captura métricas automáticamente:
Proceso de Captura
- Antes del request – Registra timestamp de inicio
- Procesamiento – El request se procesa normalmente
- Después del request – Calcula duración y captura datos
- Almacenamiento asíncrono – Guarda métricas sin bloquear respuesta
Datos Capturados
- Endpoint y método HTTP
- Usuario autenticado (si aplica)
- Tiempo de respuesta en milisegundos
- Código de estado HTTP
- Tamaño de respuesta
- IP del cliente
- User agent
- Timestamp preciso
Captura Transparente
El interceptor es completamente transparente para los controladores. No requiere configuración adicional y se aplica automáticamente a todos los endpoints configurados sin modificar su lógica.
Analytics Middleware
Middleware para captura a nivel de aplicación:
Funcionalidades
- Captura global – Aplica a todos los requests sin excepción
- Filtrado inteligente – Excluye health checks y assets estáticos
- Agregación en memoria – Acumula métricas antes de persistir
- Flush periódico – Escribe a base de datos cada N segundos
Optimizaciones
- Buffer en memoria para reducir writes
- Batch inserts para eficiencia
- Índices optimizados en MongoDB
- TTL automático para datos antiguos
Schemas de Analytics
EndpointStats Schema
Estadísticas agregadas por endpoint:
endpoint– Ruta del endpointmethod– Método HTTPtotalRequests– Total de requestsavgResponseTime– Tiempo promedio de respuestaminResponseTime– Respuesta más rápidamaxResponseTime– Respuesta más lentaerrorCount– Número de erroressuccessCount– Número de éxitosperiod– Período de agregación (hora, día, mes)timestamp– Momento de la agregación
SystemMetrics Schema
Métricas del sistema:
cpuUsage– Uso de CPU en porcentajememoryUsage– Uso de memoriadiskUsage– Uso de discoactiveConnections– Conexiones activasqueueSize– Tamaño de colas de procesamientotimestamp– Momento de captura
MonthlyRegistration Schema
Registros mensuales agregados:
year– Añomonth– MestotalRegistrations– Total de registrosverifiedUsers– Usuarios que completaron verificaciónactiveUsers– Usuarios con actividad en el mesaverageAge– Edad promedio de usuarios
Dashboard Analytics Controller
Controlador para acceso a analytics:
Endpoints Disponibles
Estadísticas Generales:
GET /analytics/dashboard– Dashboard completo con métricas principalesGET /analytics/summary– Resumen ejecutivo de estadísticasGET /analytics/trends– Tendencias y proyecciones
Por Endpoint:
GET /analytics/endpoints– Lista de todos los endpoints con statsGET /analytics/endpoints/:path– Estadísticas detalladas de un endpointGET /analytics/endpoints/slow– Endpoints con performance bajo umbral
Por Usuario:
GET /analytics/users/:id– Analytics de usuario específicoGET /analytics/users/active– Usuarios más activosGET /analytics/users/growth– Crecimiento de base de usuarios
Sistema:
GET /analytics/system/health– Métricas de salud del sistemaGET /analytics/system/performance– Performance históricaGET /analytics/system/errors– Análisis de errores
Cleanup y Retención
Analytics Cleanup Task
Tarea programada de mantenimiento de datos:
Operaciones Automáticas
Agregación:
- Agrupa datos horarios en diarios (después de 7 días)
- Agrupa datos diarios en mensuales (después de 90 días)
- Mantiene métricas mensuales indefinidamente
Limpieza:
- Elimina datos raw después de período configurado
- Mantiene agregados para análisis histórico
- Optimiza índices periódicamente
Retención:
- Raw data: 7 días
- Agregados horarios: 90 días
- Agregados diarios: 1 año
- Agregados mensuales: Indefinido
Programación
- Ejecuta diariamente a las 3 AM
- Procesa en lotes para no impactar performance
- Logging detallado de operaciones
- Notificación de problemas detectados
Integración con Dashboard
El módulo de analytics alimenta dashboards visuales que muestran:
Gráficos en Tiempo Real
- Línea de tiempo – Requests por minuto/hora
- Heatmap – Actividad por día de semana y hora
- Barras – Top endpoints por uso
- Pastel – Distribución de métodos HTTP
- Área – Tendencia de usuarios activos
Métricas Clave (KPIs)
- Total de requests (último período)
- Tiempo promedio de respuesta
- Tasa de error
- Usuarios activos
- Growth rate
Alertas Configurables
- Performance degradada en endpoint específico
- Incremento anormal de tráfico
- Tasa de error elevada
- Recursos del sistema saturados
Analytics Accionables
Los analytics no son solo para ver datos históricos, sino para tomar decisiones:
- Identificar endpoints que necesitan optimización
- Detectar patrones de uso para mejor UX
- Planificar escalamiento basado en tendencias
- Identificar y resolver cuellos de botella
- Validar impacto de cambios desplegados