docs(bf-53q6): note that feature was already complete
This commit is contained in:
parent
408506837c
commit
3e6d348690
1 changed files with 44 additions and 42 deletions
|
|
@ -1,53 +1,55 @@
|
|||
# Task bf-53q6: System cgroup memory panel for web dashboard
|
||||
# System Cgroup Memory Panel - Already Complete
|
||||
|
||||
## Status: Feature Already Complete
|
||||
## Status
|
||||
|
||||
This task requested adding a system cgroup memory panel to the FABRIC web dashboard with:
|
||||
- Current cgroup memory usage vs MemoryHigh (progress bar with color coding)
|
||||
- 5-minute sparkline of memory.current sampled every 10s
|
||||
- oom_kill counter from memory.events
|
||||
- Swap usage if enabled
|
||||
The system cgroup memory panel feature was already fully implemented in prior commits.
|
||||
|
||||
## Implementation Summary
|
||||
|
||||
The feature was already fully implemented in the codebase:
|
||||
### Backend (Completed)
|
||||
- **API Endpoints** (src/web/server.ts, lines 1619-1664):
|
||||
- `GET /api/system/memory` - Current memory status with formatted values
|
||||
- `GET /api/system/memory/history` - 5-minute history (30 samples @ 10s intervals)
|
||||
- `GET /api/system/memory/summary` - Human-readable summary
|
||||
- `GET /api/alerts/oom` - OOM risk assessment
|
||||
|
||||
### Backend (src/systemCgroupMonitor.ts)
|
||||
- `getSystemMemoryStatus()` - Reads cgroup memory stats from /sys/fs/cgroup/user.slice/user-1001.slice/
|
||||
- `getMemoryHistory()` - Returns 5-minute history (30 samples @ 10s intervals)
|
||||
- `startMemorySampler()` - Background sampler (started in server.ts at line 1745)
|
||||
- OOM kill parsing from memory.events
|
||||
- Swap usage reading from memory.swap.current
|
||||
- **Cgroup Monitor** (src/systemCgroupMonitor.ts):
|
||||
- Reads from `/sys/fs/cgroup/user.slice/user-1001.slice/memory.*`
|
||||
- Tracks memory.current, memory.high, memory.max, memory.swap.current
|
||||
- Parses oom_kill counter from memory.events
|
||||
- Maintains 30-sample history for sparkline visualization
|
||||
- Background sampler running at 10s intervals
|
||||
|
||||
### API Endpoints (src/web/server.ts)
|
||||
- `GET /api/system/memory` - Returns current memory status with formatted values
|
||||
- `GET /api/system/memory/history` - Returns memory history for sparkline
|
||||
- `GET /api/alerts/oom` - Returns OOM risk alert
|
||||
### Frontend (Completed)
|
||||
- **SystemMemoryPanel.tsx** (703 lines):
|
||||
- Full-featured panel with real-time memory visualization
|
||||
- 5-minute sparkline with color-coded bars (green/yellow/red)
|
||||
- Progress bar showing cgroup usage vs limit with dynamic coloring
|
||||
- OOM kill counter display
|
||||
- Swap usage section with progress bar
|
||||
- System memory, FABRIC process RSS sections
|
||||
- OOM risk levels legend
|
||||
|
||||
### Frontend Components
|
||||
1. **SystemMemoryIndicator.tsx** (compact indicator in fleet header)
|
||||
- Progress bar (green <70%, yellow 70-90%, red >90%)
|
||||
- 5-minute sparkline (30 samples)
|
||||
- OOM kill counter (💀 icon)
|
||||
- Swap indicator (🔁 icon)
|
||||
- **SystemMemoryIndicator.tsx** (259 lines):
|
||||
- Compact indicator for fleet header
|
||||
- Progress bar with color coding
|
||||
- Mini sparkline (30 samples)
|
||||
- OOM kill counter badge
|
||||
- Swap indicator icon
|
||||
|
||||
2. **SystemMemoryPanel.tsx** (full detail panel)
|
||||
- All above features plus:
|
||||
- Detailed memory sections (Cgroup, System, Swap, FABRIC Process)
|
||||
- OOM risk legend
|
||||
- Auto-refresh every 5 seconds
|
||||
- **Integration** (App.tsx):
|
||||
- Indicator in fleet-header (line 928)
|
||||
- Panel toggle button in header (lines 871-878)
|
||||
- Full panel rendered when active (lines 1122-1127)
|
||||
|
||||
### Integration (src/web/frontend/src/App.tsx)
|
||||
- Line 24: Import SystemMemoryIndicator
|
||||
- Line 28: Import SystemMemoryPanel
|
||||
- Line 928: Indicator in fleet header
|
||||
- Lines 1122-1127: Full panel with visibility toggle
|
||||
- Lines 872-878: Toggle button in header
|
||||
### Requirements Met
|
||||
✅ Current cgroup memory usage vs MemoryHigh (progress bar: green <70%, yellow 70-90%, red >90%)
|
||||
✅ 5-minute sparkline of memory.current sampled every 10s
|
||||
✅ oom_kill counter from memory.events
|
||||
✅ Swap usage if enabled
|
||||
✅ Backend GET /api/system/memory endpoint
|
||||
✅ React component alongside fleet summary bar
|
||||
|
||||
## Verification
|
||||
|
||||
- All 2511 tests pass
|
||||
- Memory sampler runs at 10s intervals (configured in server.ts)
|
||||
- UI components properly integrated in the dashboard
|
||||
|
||||
No additional work required.
|
||||
## Related Commits
|
||||
- 83baf06 feat(bf-53q6): integrate SystemMemoryPanel into FABRIC web dashboard
|
||||
- 81b57e6 refactor(bf-53q6): add SystemMemoryIndicator to fleet header and clean up cgroup monitor
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue