Health Monitoring
Sistema completo de monitoreo de salud que supervisa el estado de containers, agrega métricas del sistema y captura logs para debugging avanzado.
Monitoreo Proactivo
El sistema no solo reporta problemas cuando ocurren, sino que los detecta antes de que impacten a usuarios mediante análisis de tendencias y detección de anomalías.
Componentes del Sistema
Health Reporter
Servicio principal de reportes de salud:
Funcionalidades
- Monitoreo continuo de todos los containers y servicios
- Health checks automáticos a intervalos configurables
- Reportes centralizados a sistema de monitoreo
- Integración con Redis para estado distribuido
- Alertas automáticas cuando se detectan problemas
Health Checks Realizados
Servicios:
- MongoDB – Conectividad y tiempo de respuesta
- Redis – Disponibilidad y latencia
- APIs externas – Endpoints críticos
- Queues – Tamaño y procesamiento
Recursos:
- CPU – Uso y disponibilidad
- Memoria – Consumo y leaks potenciales
- Disco – Espacio disponible
- Red – Ancho de banda y latencia
Metrics Aggregator
Servicio de agregación de métricas:
Métricas Capturadas
Por Container:
- Uso de CPU en porcentaje
- Consumo de memoria (RSS, heap)
- I/O de disco (lecturas/escrituras)
- Tráfico de red (in/out)
- Número de procesos activos
Del Sistema:
- Load average (1m, 5m, 15m)
- Uptime del sistema
- Conexiones activas
- Queue sizes
- Rate de requests
Análisis de Tendencias
- Detección de anomalías – Identifica patrones anormales
- Predicción de capacidad – Proyecta necesidades futuras
- Alertas proactivas – Notifica antes de límites críticos
- Historial de performance – Mantiene tendencias a largo plazo
Alertas Inteligentes
El sistema aprende el comportamiento normal de cada métrica y alerta solo cuando hay desviaciones significativas, reduciendo false positives y alert fatigue.
Console Logs Service
Captura centralizada de logs:
Funcionalidades
- Captura en tiempo real de logs de todos los containers
- Almacenamiento estructurado en MongoDB
- Búsqueda eficiente por texto, nivel, timestamp o container
- Retención configurable según criticidad del log
- Streaming de logs para debugging en vivo
Niveles de Log
- ERROR – Errores críticos que requieren atención
- WARN – Advertencias que pueden indicar problemas
- INFO – Información general de operaciones
- DEBUG – Información detallada para debugging
- TRACE – Máximo nivel de detalle
Categorización
Los logs se categorizan automáticamente:
- Errores de aplicación
- Errores de conexión
- Performance warnings
- Security events
- User actions
Schemas de Health Monitoring
ContainerHealth Schema
Estado de salud de containers:
containerId– Identificador único del containercontainerName– Nombre descriptivostatus– 'healthy', 'degraded', 'unhealthy'lastCheck– Timestamp del último checkcpuUsage– Uso actual de CPUmemoryUsage– Uso actual de memoriaerrors– Array de errores detectadosmetadata– Información adicional
ContainerMetricsHistory Schema
Historial de métricas:
containerId– Container al que pertenecen las métricastimestamp– Momento de capturacpu– Uso de CPUmemory– Uso de memoriadisk– I/O de disconetwork– Tráfico de redcustomMetrics– Métricas específicas de la aplicación
ContainerConsoleLog Schema
Logs capturados:
containerId– Container origenlevel– Nivel del log (ERROR, WARN, etc.)message– Contenido del logtimestamp– Momento del logcontext– Contexto adicional (request ID, user ID, etc.)stack– Stack trace si es errormetadata– Datos adicionales
Alertas y Notificaciones
Configuración de Alertas
El sistema permite configurar alertas basadas en:
Umbrales:
- CPU > 80% por más de 5 minutos
- Memoria > 90%
- Disco < 10% libre
- Error rate > 5%
Tendencias:
- Incremento constante de memoria (leak potencial)
- Degradación progresiva de performance
- Incremento anormal de errores
Eventos:
- Container no responde a health check
- Servicio externo no disponible
- Múltiples errores en corto período
Canales de Notificación
- Discord – Alertas en tiempo real
- Slack – Integración con workspace
- Email – Para alertas críticas
- Webhooks – Integración con sistemas externos
Integración con Dashboard
Visualización de Métricas
Gráficos en tiempo real:
- CPU y memoria por container
- Latencia de servicios
- Rate de errores
- Queue sizes
Dashboards:
- Vista general del sistema
- Drill-down por container
- Comparación entre períodos
- Análisis de incidentes
Reportes:
- Uptime por servicio
- SLA compliance
- Performance histórica
- Capacity planning
Debugging Avanzado
El sistema de logs centralizado permite correlacionar eventos entre diferentes containers:
- Seguir un request através de múltiples servicios
- Identificar la causa raíz de errores distribuidos
- Analizar el impacto de deploys
- Reproducir problemas en desarrollo