INNER CODE UNIT · Python
parse_cpu_metrics
tlkh/asitop · asitop/parsers.py:78
def parse_cpu_metrics(powermetrics_parse):
e_core = []
p_core = []
cpu_metrics = powermetrics_parse["processor"]
cpu_metric_dict = {}
# cpu_clusters
cpu_clusters = cpu_metrics["clusters"]
for cluster in cpu_clusters:
name = cluster["name"]
cpu_metric_dict[name+"_freq_Mhz"] = int(cluster["freq_hz"]/(1e6))
cpu_metric_dict[name+"_active"] = int((1 - cluster["idle_ratio"])*100)
for cpu in cluster["cpus"]:
name = 'E-Cluster' if name[0] == 'E' else 'P-Cluster'
core = e_core if name[0] == 'E' else p_core
core.append(cpu["cpu"])
cpu_metric_dict[name + str(cpu["cpu"]) + "_freq_Mhz"] = int(cpu["freq_hz"] / (1e6))
cpu_metric_dict[name + str(cpu["cpu"]) + "_active"] = int((1 - cpu["idle_ratio"]) * 100)
cpu_metric_dict["e_core"] = e_core