fix(applications): scale resource usage by pod count [r8s-127] (#33)

pull/12336/head
Ali 1 month ago committed by GitHub
parent da4b2e3a56
commit 7b88975bcb

@ -133,7 +133,7 @@ func (kcl *KubeClient) GetApplicationsResource(namespace, node string) (models.K
} }
for _, pod := range pods.Items { for _, pod := range pods.Items {
podResources := calculateResourceUsage(pod) podResources := calculatePodResourceUsage(pod)
resource.CPURequest += podResources.CPURequest resource.CPURequest += podResources.CPURequest
resource.CPULimit += podResources.CPULimit resource.CPULimit += podResources.CPULimit
resource.MemoryRequest += podResources.MemoryRequest resource.MemoryRequest += podResources.MemoryRequest
@ -191,7 +191,12 @@ func (kcl *KubeClient) ConvertPodToApplication(pod corev1.Pod, replicaSets []app
} }
if withResource { if withResource {
application.Resource = calculateResourceUsage(pod) podResources := calculatePodResourceUsage(pod)
// multiply by the number of requested pods in the application (not the running count)
application.Resource.CPURequest = podResources.CPURequest * float64(application.TotalPodsCount)
application.Resource.CPULimit = podResources.CPULimit * float64(application.TotalPodsCount)
application.Resource.MemoryRequest = podResources.MemoryRequest * int64(application.TotalPodsCount)
application.Resource.MemoryLimit = podResources.MemoryLimit * int64(application.TotalPodsCount)
} }
return &application, nil return &application, nil
@ -340,8 +345,8 @@ func updateApplicationWithService(application models.K8sApplication, services []
return application return application
} }
// calculateResourceUsage calculates the resource usage for a pod in CPU cores and Bytes // calculatePodResourceUsage calculates the resource usage for a pod in CPU cores and Bytes
func calculateResourceUsage(pod corev1.Pod) models.K8sApplicationResource { func calculatePodResourceUsage(pod corev1.Pod) models.K8sApplicationResource {
resource := models.K8sApplicationResource{} resource := models.K8sApplicationResource{}
for _, container := range pod.Spec.Containers { for _, container := range pod.Spec.Containers {
// CPU cores as a decimal // CPU cores as a decimal

Loading…
Cancel
Save