@@ -386,6 +386,7 @@ def _parse_persistentvolumeclaims(self, pod_list, kubecfg=''):
386
386
def _get_cpu_memory_usage_kubelet (self , pod_list , kubecfg = '' ):
387
387
total_cpu = 0
388
388
total_mem = 0
389
+ individual_pod_metrics = {}
389
390
390
391
platf = platform .system ()
391
392
kubeplus_home = os .getenv ('KUBEPLUS_HOME' , '/' )
@@ -442,14 +443,18 @@ def _get_cpu_memory_usage_kubelet(self, pod_list, kubecfg=''):
442
443
#print("MEMORY:" + str(memoryInBytes))
443
444
total_cpu = total_cpu + cpuInNanoCores
444
445
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
445
450
446
451
total_cpu_milli_cores = float (total_cpu ) / 1000000
447
452
total_mem_mib = float (total_mem ) / (1024 * 1024 )
448
453
449
454
#print("TOTAL CPU:" + str(total_cpu_milli_cores) + " mi")
450
455
#print("TOTAL MEM:" + str(total_mem_mib) + " Mib")
451
456
452
- return total_cpu_milli_cores , total_mem_mib
457
+ return total_cpu_milli_cores , total_mem_mib , individual_pod_metrics
453
458
454
459
def _get_cpu_memory_usage_kubectl_top (self , pod_list ):
455
460
pod_usage_map = {}
@@ -504,7 +509,7 @@ def _get_cpu_memory_usage_rootres(self, kind, cmd, instance, namespace, account)
504
509
count = count + 1
505
510
composition = self ._get_composition (kind , instance , namespace )
506
511
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 )
508
513
return cpu , memory , count
509
514
510
515
def _get_metrics_cr_instances (self , account ):
@@ -623,7 +628,7 @@ def _get_metrics_pods(self, account):
623
628
pod_list = self ._get_pods_for_account (account )
624
629
#print("Pods:")
625
630
#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 )
627
632
return cpu , mem , len (pod_list )
628
633
629
634
def _get_metrics_kind (self , kind , account ):
@@ -975,7 +980,7 @@ def _get_metrics_creator_account_with_connections(self, account):
975
980
print (" " + pod ['Name' ])
976
981
#print(pod_list_for_metrics)
977
982
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 )
979
984
storage = 0
980
985
for p in pod_list_for_metrics :
981
986
stor = self ._parse_persistentvolumeclaims ([p ])
@@ -1006,7 +1011,7 @@ def get_metrics_cr(self, custom_resource, custom_res_instance, opformat, kubecon
1006
1011
num_of_containers_conn = self ._parse_number_of_containers (pod_list , kubecfg = kubeconfig )
1007
1012
total_storage_conn = self ._parse_persistentvolumeclaims (pod_list , kubecfg = kubeconfig )
1008
1013
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 )
1010
1015
networkReceiveBytesTotal , networkTransmitBytesTotal , oom_events = self ._get_cadvisor_metrics (pod_list , kubecfg = kubeconfig )
1011
1016
1012
1017
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
1049
1054
numOfNotRunningPods = 'not_running_pods{custom_resource="' + fq_instance + '"} ' + str (num_of_not_running_pods ) + ' ' + timeInMillis
1050
1055
1051
1056
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
1054
1068
print (metricsToReturn )
1055
1069
elif opformat == 'pretty' :
1056
1070
print ("---------------------------------------------------------- " )
0 commit comments