feat: add resource monitoring and live scaling

- Backend: getResourceUsage() method in KubernetesService fetches real-time
  CPU/Memory metrics from K8s metrics-server API per pod
- Backend: updateResources() method patches live K8s deployments with new
  CPU/Memory requests+limits and replica count
- Backend: GET /applications/:id/resources endpoint for monitoring
- Backend: PATCH /applications/:id/resources endpoint for scaling
- Backend: ScaleResourcesDto with validation for resource fields
- Frontend: Resource monitoring card with per-pod CPU/Memory progress bars
  (color-coded: green < 50%, yellow < 80%, red > 80%)
- Frontend: Pod status table showing phase, readiness, restarts
- Frontend: Scaling controls for CPU request/limit, memory request/limit,
  and replicas with +/- buttons
- Frontend: Auto-refresh metrics every 5 seconds when monitoring is open
- Frontend: parseCpuToMillicores/parseMemoryToMi helpers for metric parsing
This commit is contained in:
keyhan
2026-04-05 16:03:01 +03:30
parent 0438192f8e
commit 51e56c6996
5 changed files with 552 additions and 2 deletions
+28
View File
@@ -92,3 +92,31 @@ export interface CreateApplicationDto {
replicas?: number;
port?: number;
}
export interface PodInfo {
name: string;
status: string;
ready: boolean;
restarts: number;
startedAt?: string;
}
export interface PodMetric {
name: string;
cpu: string;
memory: string;
}
export interface ResourceUsage {
configured: {
cpuRequest: string;
cpuLimit: string;
memoryRequest: string;
memoryLimit: string;
replicas: number;
readyReplicas: number;
availableReplicas: number;
};
pods: PodInfo[];
metrics: PodMetric[];
}