import pcp import time pm_code = pcp.pmNewContext() if (pm_code < 0): print "PCP is not running" exit cpu_name = pcp.pmLookupName("hinv.ncpu") cpu_desc = pcp.pmLookupDesc(cpu_name) cpu_result = pcp.pmFetch(cpu_name) ncpu = pcp.pmExtractValue(cpu_result, cpu_desc, cpu_name[0], 0, "PM_TYPE_U32") print "#cpus is " + str(ncpu) previous_cpu_user = [0,0,0,0] previous_cpu_sys = [0,0,0,0] metrics = ("kernel.all.load", "kernel.percpu.cpu.user", "kernel.percpu.cpu.sys", "mem.freemem", "disk.all.total") metric_names = pcp.pmLookupName(metrics) metric_descs = pcp.pmLookupDesc(metric_names) n = 0 while n < 2: metric_results = pcp.pmFetch(metric_names) cpu = 0 while cpu < ncpu: pm_result = pcp.pmFetch(metric_names[1]) val = pcp.pmExtractValue(metric_results, metric_descs, metric_names[1], cpu, "PM_TYPE_FLOAT") print "cpu user val = " + str(val - previous_cpu_user[cpu]) previous_cpu_user[cpu] = val pm_result = pcp.pmFetch(metric_names[2]) val = pcp.pmExtractValue(metric_results, metric_descs, metric_names[2], cpu, "PM_TYPE_FLOAT") print "cpu sys val = " + str(val - previous_cpu_sys[cpu]) previous_cpu_sys[cpu] = val cpu = cpu + 1 print "SLEEP" time.sleep(3) n = n + 1