Checkpoint: Phase 12: Real-time Docker Swarm monitoring for /nodes page
Реализовано: - gateway/internal/docker/client.go: Docker API клиент через unix socket (/var/run/docker.sock) - IsSwarmActive(), GetSwarmInfo(), ListNodes(), ListContainers(), GetContainerStats() - CalcCPUPercent() для расчёта CPU% - gateway/internal/api/handlers.go: новые endpoints - GET /api/nodes: список Swarm нод или standalone Docker хост - GET /api/nodes/stats: live CPU/RAM статистика контейнеров - POST /api/tools/execute: выполнение инструментов - gateway/cmd/gateway/main.go: зарегистрированы новые маршруты - server/gateway-proxy.ts: добавлены getGatewayNodes() и getGatewayNodeStats() - server/routers.ts: добавлен nodes router (nodes.list, nodes.stats) - client/src/pages/Nodes.tsx: полностью переписан на реальные данные - Auto-refresh: 10s для нод, 15s для статистики контейнеров - Swarm mode: показывает все ноды кластера - Standalone mode: показывает локальный Docker хост + контейнеры - CPU/RAM gauges из реальных docker stats - Error state при недоступном Gateway - Loading skeleton - server/nodes.test.ts: 14 новых vitest тестов - Все 51 тест пройдены
This commit is contained in:
@@ -87,6 +87,11 @@ func main() {
|
||||
|
||||
// Tools
|
||||
r.Get("/tools", h.ListTools)
|
||||
r.Post("/tools/execute", h.ExecuteTool)
|
||||
|
||||
// Nodes / Docker Swarm monitoring
|
||||
r.Get("/nodes", h.ListNodes)
|
||||
r.Get("/nodes/stats", h.NodeStats)
|
||||
})
|
||||
|
||||
// ── Start Server ─────────────────────────────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user