@@ -386,6 +386,7 @@ def _parse_persistentvolumeclaims(self, pod_list, kubecfg=''):
386386 def _get_cpu_memory_usage_kubelet (self , pod_list , kubecfg = '' ):
387387 total_cpu = 0
388388 total_mem = 0
389+ individual_pod_metrics = {}
389390
390391 platf = platform .system ()
391392 kubeplus_home = os .getenv ('KUBEPLUS_HOME' , '/' )
@@ -442,14 +443,18 @@ def _get_cpu_memory_usage_kubelet(self, pod_list, kubecfg=''):
442443 #print("MEMORY:" + str(memoryInBytes))
443444 total_cpu = total_cpu + cpuInNanoCores
444445 total_mem = total_mem + memoryInBytes
446+ cpu_mem_dict = {}
447+ cpu_mem_dict ["cpu" ] = float (cpuInNanoCores ) / 1000000
448+ cpu_mem_dict ["memory" ] = float (memoryInBytes ) / (1024 * 1024 )
449+ individual_pod_metrics [podName1 ] = cpu_mem_dict
445450
446451 total_cpu_milli_cores = float (total_cpu ) / 1000000
447452 total_mem_mib = float (total_mem ) / (1024 * 1024 )
448453
449454 #print("TOTAL CPU:" + str(total_cpu_milli_cores) + " mi")
450455 #print("TOTAL MEM:" + str(total_mem_mib) + " Mib")
451456
452- return total_cpu_milli_cores , total_mem_mib
457+ return total_cpu_milli_cores , total_mem_mib , individual_pod_metrics
453458
454459 def _get_cpu_memory_usage_kubectl_top (self , pod_list ):
455460 pod_usage_map = {}
@@ -504,7 +509,7 @@ def _get_cpu_memory_usage_rootres(self, kind, cmd, instance, namespace, account)
504509 count = count + 1
505510 composition = self ._get_composition (kind , instance , namespace )
506511 pod_list = self ._parse_number_of_pods (composition )
507- cpu , memory = self ._get_cpu_memory_usage_kubelet (pod_list )
512+ cpu , memory , _ = self ._get_cpu_memory_usage_kubelet (pod_list )
508513 return cpu , memory , count
509514
510515 def _get_metrics_cr_instances (self , account ):
@@ -623,7 +628,7 @@ def _get_metrics_pods(self, account):
623628 pod_list = self ._get_pods_for_account (account )
624629 #print("Pods:")
625630 #print(pod_list)
626- cpu , mem = self ._get_cpu_memory_usage_kubelet (pod_list )
631+ cpu , mem , _ = self ._get_cpu_memory_usage_kubelet (pod_list )
627632 return cpu , mem , len (pod_list )
628633
629634 def _get_metrics_kind (self , kind , account ):
@@ -975,7 +980,7 @@ def _get_metrics_creator_account_with_connections(self, account):
975980 print (" " + pod ['Name' ])
976981 #print(pod_list_for_metrics)
977982
978- cpu , mem = self ._get_cpu_memory_usage_kubelet (pod_list_for_metrics )
983+ cpu , mem , _ = self ._get_cpu_memory_usage_kubelet (pod_list_for_metrics )
979984 storage = 0
980985 for p in pod_list_for_metrics :
981986 stor = self ._parse_persistentvolumeclaims ([p ])
@@ -1006,7 +1011,7 @@ def get_metrics_cr(self, custom_resource, custom_res_instance, opformat, kubecon
10061011 num_of_containers_conn = self ._parse_number_of_containers (pod_list , kubecfg = kubeconfig )
10071012 total_storage_conn = self ._parse_persistentvolumeclaims (pod_list , kubecfg = kubeconfig )
10081013 num_of_hosts_conn = self ._parse_number_of_hosts (pod_list , kubecfg = kubeconfig )
1009- cpu_conn , memory_conn = self ._get_cpu_memory_usage_kubelet (pod_list , kubecfg = kubeconfig )
1014+ cpu_conn , memory_conn , individual_pod_metrics = self ._get_cpu_memory_usage_kubelet (pod_list , kubecfg = kubeconfig )
10101015 networkReceiveBytesTotal , networkTransmitBytesTotal , oom_events = self ._get_cadvisor_metrics (pod_list , kubecfg = kubeconfig )
10111016
10121017 num_of_not_running_pods = self ._num_of_not_running_pods (pod_list , kubecfg = kubeconfig )
@@ -1049,8 +1054,17 @@ def get_metrics_cr(self, custom_resource, custom_res_instance, opformat, kubecon
10491054 numOfNotRunningPods = 'not_running_pods{custom_resource="' + fq_instance + '"} ' + str (num_of_not_running_pods ) + ' ' + timeInMillis
10501055
10511056 oomEvents = 'oom_events{custom_resource="' + fq_instance + '"} ' + str (oom_events ) + ' ' + timeInMillis
1052-
1053- metricsToReturn = cpuMetrics + "\n " + memoryMetrics + "\n " + storageMetrics + "\n " + numOfPods + "\n " + numOfContainers + "\n " + networkReceiveBytes + "\n " + networkTransmitBytes + "\n " + numOfNotRunningPods + "\n " + oomEvents
1057+
1058+ podMetrics = ""
1059+ for key , val in individual_pod_metrics .items ():
1060+ pod_cpu_mem = ""
1061+ pod_cpu = val ["cpu" ]
1062+ pod_mem = val ["memory" ]
1063+ pod_cpu_mem = key + "_" + 'cpu{custom_resource="' + fq_instance + '"} ' + str (pod_cpu ) + ' ' + timeInMillis + "\n "
1064+ pod_cpu_mem = pod_cpu_mem + key + "_" + 'memory{custom_resource="' + fq_instance + '"} ' + str (pod_mem ) + ' ' + timeInMillis + "\n "
1065+ podMetrics = podMetrics + pod_cpu_mem
1066+
1067+ metricsToReturn = cpuMetrics + "\n " + memoryMetrics + "\n " + storageMetrics + "\n " + numOfPods + "\n " + numOfContainers + "\n " + networkReceiveBytes + "\n " + networkTransmitBytes + "\n " + numOfNotRunningPods + "\n " + oomEvents + "\n " + podMetrics
10541068 print (metricsToReturn )
10551069 elif opformat == 'pretty' :
10561070 print ("---------------------------------------------------------- " )
0 commit comments