Saltar al contenido principal

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 container
  • containerName – Nombre descriptivo
  • status – 'healthy', 'degraded', 'unhealthy'
  • lastCheck – Timestamp del último check
  • cpuUsage – Uso actual de CPU
  • memoryUsage – Uso actual de memoria
  • errors – Array de errores detectados
  • metadata – Información adicional

ContainerMetricsHistory Schema

Historial de métricas:

  • containerId – Container al que pertenecen las métricas
  • timestamp – Momento de captura
  • cpu – Uso de CPU
  • memory – Uso de memoria
  • disk – I/O de disco
  • network – Tráfico de red
  • customMetrics – Métricas específicas de la aplicación

ContainerConsoleLog Schema

Logs capturados:

  • containerId – Container origen
  • level – Nivel del log (ERROR, WARN, etc.)
  • message – Contenido del log
  • timestamp – Momento del log
  • context – Contexto adicional (request ID, user ID, etc.)
  • stack – Stack trace si es error
  • metadata – 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