allow modules to emit multiple data points

This commit is contained in:
Dave Pedu 2015-12-05 17:34:13 -08:00
parent d1b1b09e5e
commit a1f4f48ebf
5 changed files with 16 additions and 14 deletions

View File

@ -175,9 +175,9 @@ class MonitorThread(Thread):
""" """
Run the loaded checker function Run the loaded checker function
""" """
result = self.checker_func(**args) for result in self.checker_func(**args):
self.logger.info("result: %s" % (result,)) self.logger.info("result: %s" % (result,))
self.backend.add_data(self.config["type"], result) self.backend.add_data(self.config["type"], result)
def shutdown(self): def shutdown(self):
""" """

View File

@ -1,7 +1,7 @@
def load(): def load():
with open("/proc/loadavg", "r") as f: with open("/proc/loadavg", "r") as f:
m1, m5, m15, procs, pid = f.read().strip().split(" ") m1, m5, m15, procs, pid = f.read().strip().split(" ")
return { yield {
"load_1m": m1, "load_1m": m1,
"load_5m": m5, "load_5m": m5,
"load_15m":m15 "load_15m":m15
@ -24,5 +24,5 @@ mapping = {
} }
if __name__ == '__main__': if __name__ == '__main__':
avg = load() for avg in load():
print(' '.join([avg["load_1m"], avg["load_5m"], avg["load_15m"]])) print(' '.join([avg["load_1m"], avg["load_5m"], avg["load_15m"]]))

View File

@ -38,7 +38,7 @@ def meminfo(whitelist=[]):
for key in computed_fields: for key in computed_fields:
result[key] = computed_fields[key](result) result[key] = computed_fields[key](result)
return result yield result
mapping = { mapping = {
"meminfo": { "meminfo": {
@ -63,5 +63,6 @@ mapping = {
} }
if __name__ == '__main__': if __name__ == '__main__':
for k,v in meminfo().items(): for item in meminfo():
print("%s: %s"%(k,v)) for k,v in item.items():
print("%s: %s"%(k,v))

View File

@ -57,7 +57,7 @@ def procs():
print(e) print(e)
print("Failed to open %s" % f) print("Failed to open %s" % f)
return {"procs": num_procs, "threads":num_threads, "kthreads": num_kthreads} yield {"procs": num_procs, "threads":num_threads, "kthreads": num_kthreads}
mapping = { mapping = {
"procs": { "procs": {
@ -76,5 +76,5 @@ mapping = {
} }
if __name__ == '__main__': if __name__ == '__main__':
stats = procs() for stats in procs():
print("%s procs %s kthreads %s threads" % (stats["procs"], stats["kthreads"], stats["threads"])) print("%s procs %s kthreads %s threads" % (stats["procs"], stats["kthreads"], stats["threads"]))

View File

@ -1,6 +1,6 @@
def uptime(): def uptime():
with open("/proc/uptime", "r") as f: with open("/proc/uptime", "r") as f:
return {"uptime":int(float(f.read().split(" ")[0]))} yield {"uptime":int(float(f.read().split(" ")[0]))}
mapping = { mapping = {
"uptime": { "uptime": {
@ -13,4 +13,5 @@ mapping = {
} }
if __name__ == '__main__': if __name__ == '__main__':
print(uptime()["uptime"]) for item in uptime():
print(item["uptime"])