``` Container Monitoring Architecture - No Agents Required! ┌─────────────────────────────────────────────────────────────────┐ │ Management Container │ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ Monitoring Controller │ │ │ │ │ │ │ │ 1. HTTP Health Endpoints ──┐ │ │ │ │ 2. Docker Stats API ────────┼──── Fallback Chain │ │ │ │ 3. Docker Compose Status ───┤ │ │ │ │ 4. Process List Scanning ───┘ │ │ │ └─────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ Target Containers │ ├─────────────────┬─────────────────┬─────────────────┬───────────┤ │ App Containers│ Infrastructure │ Cache Layer │ Database │ │ │ │ │ │ │ ┌─────────────┐ │ ┌─────────────┐ │ ┌─────────────┐ │ ┌───────┐ │ │ │ Backend │ │ │ Nginx │ │ │ Redis │ │ │ Postgres│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ /health ←───┼─┼─┼─HTTP calls──┼─┼─┼─Basic ping──┼─┼─┼─Port │ │ │ │ /metrics │ │ │ /nginx_stat │ │ │ │ │ │ check │ │ │ └─────────────┘ │ └─────────────┘ │ └─────────────┘ │ └───────┘ │ ├─────────────────┼─────────────────┼─────────────────┼───────────┤ │ │ │ │ │ │ Enhanced Data │ Basic Status │ Connectivity │ Status │ │ • CPU usage │ • Up/Down │ • Responsive │ • Running│ │ • Memory % │ • Port info │ • Timeout │ • Health │ │ • Custom │ • Health │ │ │ │ metrics │ check │ │ │ └─────────────────┴─────────────────┴─────────────────┴───────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ Docker Daemon │ │ │ │ If HTTP calls fail, query Docker directly: │ │ • docker stats --no-stream (CPU, Memory, Network, Disk) │ │ • docker-compose ps (Status, Health, Ports) │ │ • ps aux | grep (Process detection as final fallback) │ └─────────────────────────────────────────────────────────────────┘ Data Flow: 1. Management container tries HTTP health endpoints first 2. Falls back to Docker daemon APIs if containers don't respond 3. Uses docker-compose for basic status if Docker unavailable 4. Scans processes as absolute last resort Benefits: ✅ No agents to install or maintain ✅ Works with existing containers immediately ✅ Gradual enhancement possible (add health endpoints when convenient) ✅ Comprehensive coverage (all containers, not just yours) ✅ Multiple fallbacks ensure data is always available ✅ Standard HTTP + Docker APIs (no proprietary protocols) ```