diff --git a/collectd/usr/local/bin/power-data-likwid b/collectd/usr/local/bin/power-data-likwid deleted file mode 100755 index d438f2e..0000000 --- a/collectd/usr/local/bin/power-data-likwid +++ /dev/null @@ -1,77 +0,0 @@ -#!/usr/bin/python3 - -# -# Imports -# -import sys -import time -import argparse -import pylikwid - -# -# Configuration -# -hostname = "server" -cpuid = 0 -pinfo = pylikwid.getpowerinfo() -domainid = pinfo.get("domains").get("PKG").get("ID") -measurement_duration = 5 -measurement_interval = 15 -dinfo = pinfo.get("domains") -domain_names = list(dinfo.keys()) -domain_ids = [domain["ID"] for domain in list(dinfo.values())] - -# -# Command line arguments -# -parser = argparse.ArgumentParser(description="Get CPU power consumption") -parser.add_argument("-s", action="store_true", help="print in human readable format") -args = parser.parse_args() -human_readable = args.s - -# -# Methods -# -def get_power(): - start = list() - end = list() - power = list() - for domain_id in domain_ids: - e_start = pylikwid.startpower(cpuid, domain_id) - start.append(e_start) - time.sleep(measurement_duration) - for domain_id in domain_ids: - e_stop = pylikwid.stoppower(cpuid, domain_id) - end.append(e_stop) - for events in zip(start, end, domain_ids): - joules = pylikwid.getpower(events[0], events[1], events[2]) - power.append(joules / measurement_duration) - - return dict(list(zip(domain_names, power))) - - -def print_rrd(measurements): - timestamp = int(time.time()) - for measurement in list(measurements.items()): - name = measurement[0].lower() - power = measurement[1] - print( - ( - "PUTVAL {}/exec-power/gauge-{} {}:{:.1f}".format( - hostname, name, timestamp, power - ) - ) - ) - - -# -# Main -# -if human_readable: - print(get_power()) -else: - while True: - power = get_power() - print_rrd(power) - sys.stdout.flush() - time.sleep(measurement_interval)