diff --git a/roofline_data/gather_benchmarks.sh b/roofline_data/gather_benchmarks.sh index f3536289a49f65fca2a1b6da46b486c6da3fbc5d..2cb107eed2cbf3dfacf742b4fb08cc715d02db83 100755 --- a/roofline_data/gather_benchmarks.sh +++ b/roofline_data/gather_benchmarks.sh @@ -20,6 +20,7 @@ MEM_BENCHMARKS+=$(likwid-bench -a | awk -F "-" '{print $1}' | grep "stream" | aw current_date=$(date) mkdir -p ${HOSTNAME} SUMMARY_FILE="${HOSTNAME}/summary.txt" +rm ${SUMMARY_FILE} module load python machinestate -a -o "${HOSTNAME}/machinestate_${HOSTNAME}.json" diff --git a/roofline_data/upload_to_influx.py b/roofline_data/upload_to_influx.py new file mode 100644 index 0000000000000000000000000000000000000000..5215cc36bb4d4d9dfce66d47eb256aaf907555a8 --- /dev/null +++ b/roofline_data/upload_to_influx.py @@ -0,0 +1,58 @@ +import argparse +import cbutil as cb +import logging +logger = logging.getLogger(__file__) +logging.basicConfig(level=logging.INFO) + + +def data2dp(host, measurement): + fields = dict() + for typ in ["bw", "perf"]: + fields.update({f"{typ}_{key}": value for key, value in host[typ].items()}) + + return cb.DataPoint( + time=host["date"], + tags={"host": host["hostname"]}, + fields=fields, + measurement=measurement, + ) + + +def parse_data(input_file, measurement): + data = cb.json2dict(input_file) + dps = [data2dp(d, measurement) for d in data.values()] + logger.info(dps) + return dps + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("input_file") + parser.add_argument("-m", "--measurement", required=True) + + parser.add_argument( + '-log', + '--loglevel', + default='warning', + help=('Provide logging level. ' + 'Example --loglevel debug, default=warning') + ) + + parser.add_argument( + '-d', + '--dryrun', + help='proccess but do not upload data, default=false', + action='store_true', + default=False, + ) + + args = parser.parse_args() + logging.basicConfig(level=args.loglevel.upper()) + dps = parse_data(args.input_file, args.measurement) + if not args.dryrun: + up = cb.Uploader() + up.upload(dps) + + +if __name__ == "__main__": + main()