From 0b1610e1e89036c135336b45f79d221b8d8f1247 Mon Sep 17 00:00:00 2001 From: Dave Pedu Date: Sat, 5 Dec 2015 17:34:20 -0800 Subject: [PATCH] add disk space module --- pymonitor/monitors/diskspace.py | 48 +++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/pymonitor/monitors/diskspace.py b/pymonitor/monitors/diskspace.py index e69de29..65c3308 100644 --- a/pymonitor/monitors/diskspace.py +++ b/pymonitor/monitors/diskspace.py @@ -0,0 +1,48 @@ +from os import statvfs + +def diskspace(filesystems=[]): + for fs in filesystems: + stats = statvfs(fs) + + info = { + "fs": fs, + "diskfree": stats.f_bsize * stats.f_bavail, + "diskused": (stats.f_blocks-stats.f_bavail) * stats.f_bsize, + "disksize": stats.f_bsize * stats.f_blocks + } + + info["diskpctused"] = round(info["diskfree"]/info["disksize"], 2) + info["diskpctfree"] = round(info["diskused"]/info["disksize"], 2) + + yield info + +mapping = { + "diskspace": { + "properties": { + "diskfree": { + "type": "long" + }, + "diskused": { + "type": "long" + }, + "disksize": { + "type": "long" + }, + "diskpctused": { + "type": "double" + }, + "diskpctfree": { + "type": "double" + }, + "fs": { + "type": "string" + } + } + } +} + +if __name__ == '__main__': + #avg = load() + #print(' '.join([avg["load_1m"], avg["load_5m"], avg["load_15m"]])) + for item in diskspace(filesystems=["/", "/tmp/monitor"]): + print(item)