#!/usr/bin/python3 -i import os import sys import time import logging from ovis_ldms import ldms from record_common import * LOG_FMT = "%(asctime)s.%(msecs)03d %(levelname)s %(module)s %(message)s" logging.basicConfig(datefmt="%F-%T", format=LOG_FMT, level=logging.INFO) log = logging.getLogger() ldms.init(16*1024*1024) set1 = add_set("node-1/set1") set3_p = add_set("node-1/set3_p", array_card=SET_BUFFER) set3_c = add_set("node-1/set3_c", array_card=SET_BUFFER) set3_c.data_copy_set(1) # turn on data copy update_set(set1, 1) update_set(set3_p, 2) update_set(set3_c, 3) verify_set(set1) verify_set(set3_p) verify_set(set3_c) x = ldms.Xprt(name="sock") def listen_cb(ep, ev, arg):
psr = ap.ArgumentParser(description="Python LDMS dir, lookup and peridically updates", add_help=False) psr.add_argument("-x", "--xprt", default="sock", help="Transport type (default: sock)") psr.add_argument("-p", "--port", default="20001", help="Port to listen or to connect (default: 20001)") psr.add_argument("-h", "--host", default=socket.gethostname(), help="Port to listen or to connect (default: ${HOSTNAME})") psr.add_argument("-m", "--mem", type=int, default=16*1024*1024, help="Memory allocation (default: 16000000)") psr.add_argument("-i", "--interval", default=1.0, type=float, help="Interval (1.0 sec)") psr.add_argument("-?", "--help", action="help", help="Show help message") g = psr.parse_args() ldms.init(g.mem) g.x = ldms.Xprt(name=g.xprt) g.sets = dict() g.cond = thread.Condition() g.num_lookups = 0 g.num_updates = 0 g.num_sets = 0 g.done_dir = False def interval_block(interval, offset): t0 = time.time() t1 = (t0 + interval)//interval*interval + offset dt = t1 - t0 time.sleep(dt)
#!/usr/bin/env python3 # Test/verify ldms_grp index locally (no remote update) for member # adding/removing capabilities. from ovis_ldms import ldms ldms.init(128*1024*1024) class Debug(object): pass D = Debug() def grp_add(grp, m): print("adding:", m) D.s0 = set(grp) grp.transaction_begin() grp.add(m) grp.transaction_end() D.s1 = set(grp) print(grp) assert(D.s0 < D.s1 and D.s1 - D.s0 == set([m])) grp.verify() def grp_rm(grp, m): print("removing:", m) D.s0 = set(grp) grp.transaction_begin() grp.remove(m) grp.transaction_end() D.s1 = set(grp)
# Each dictionary in the hunk is a JSON dump of the LDMS set received in # update callback. import os import sys import json import time import argparse import threading from ovis_ldms import ldms if __name__ != "__main__": raise ImportError("This is not a module") ldms.init(1024 * 1024 * 16) M = 1000000 # million: 1e6 ap = argparse.ArgumentParser() ap.add_argument("-H", "--host", type=str, default="node-1", help="ldmsd host.") ap.add_argument("-P", "--port", type=int, default=10000, help="ldmsd port.") ap.add_argument("-I", "--interval", type=int, default=1 * M, help="update interval (in micro seconds).") ap.add_argument("-O", "--offset", type=int, default=M // 2,