From d838f1a15147cd70f22bba04bd4a33bb31cfd97d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcela=20Ma=C5=A1l=C3=A1=C5=88ov=C3=A1?= Date: Mon, 19 Oct 2009 17:01:25 +0200 Subject: [PATCH] Verbose mode for main part of for separate plugins. --- doc/tuned.conf.5 | 5 +++++ monitorplugins/disk.py | 37 +++++++++++++++++++++++-------------- monitorplugins/net.py | 12 +++++++++++- tuned.conf | 5 +++-- tuned.py | 5 +++++ tuningplugins/disk.py | 10 +++++++++- tuningplugins/net.py | 11 ++++++++--- 7 files changed, 64 insertions(+), 21 deletions(-) diff --git a/doc/tuned.conf.5 b/doc/tuned.conf.5 index fea5655..0aa4260 100644 --- a/doc/tuned.conf.5 +++ b/doc/tuned.conf.5 @@ -18,6 +18,11 @@ options: .IP \fBinterval\fR Interval for monitoring and tuning in seconds. The default is 10. +.IP \fBverbose\fR +Default mode is False. It is possible to define +.I verbose=True +in main section or for separate sections. + .SH "[plugin] OPTIONS" .LP Each plugin can have an individual section with the name of the plugin as diff --git a/monitorplugins/disk.py b/monitorplugins/disk.py index 2b58220..1064809 100644 --- a/monitorplugins/disk.py +++ b/monitorplugins/disk.py @@ -22,20 +22,7 @@ class DiskMonitor: def __init__(self): self.devices = {} self.enabled = True - dnames = os.listdir("/sys/block/") - for d in dnames: - try: - v = open("/sys/block/"+d+"/device/vendor").read().strip() - except: - v = None - if v != "ATA" and v != "SCSI": - continue - self.devices[d] = {} - self.devices[d]["new"] = ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'] - self.devices[d]["max"] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] - self.__updateStat__(d) - self.devices[d]["max"] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] - print self.devices + self.verbose = False def __calcdiff__(self, dev): l = [] @@ -61,6 +48,28 @@ class DiskMonitor: self.config = config if self.config.has_option("DiskMonitor", "enabled"): self.enabled = (self.config.get("DiskMonitor", "enabled") == "True") + try: + self.verbose = (self.config.get("main","verbose") == "True") + self.verbose = (self.config.get("DiskMonitor", "verbose") == "True") + print self.verbose + except: + pass + + dnames = os.listdir("/sys/block/") + for d in dnames: + try: + v = open("/sys/block/"+d+"/device/vendor").read().strip() + except: + v = None + if v != "ATA" and v != "SCSI": + continue + self.devices[d] = {} + self.devices[d]["new"] = ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'] + self.devices[d]["max"] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + self.__updateStat__(d) + self.devices[d]["max"] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + if self.verbose: + print self.devices def cleanup(self): pass diff --git a/monitorplugins/net.py b/monitorplugins/net.py index 6051b5c..9186b4e 100644 --- a/monitorplugins/net.py +++ b/monitorplugins/net.py @@ -22,6 +22,7 @@ class NetMonitor: def __init__(self): self.devices = {} self.enabled = True + self.verbose = False devs = open("/proc/net/dev").readlines() for l in devs: l = l.replace(":", " ") @@ -35,7 +36,6 @@ class NetMonitor: self.devices[d]["max"] = [70*1024*1024, 1, 70*1024*1024, 1] self.__updateStat__(d) self.devices[d]["max"] = [70*1024*1024, 1, 70*1024*1024, 1] - print self.devices def __calcdiff__(self, dev): l = [] @@ -68,10 +68,18 @@ class NetMonitor: if self.config.has_option("NetMonitor", "enabled"): self.enabled = (self.config.get("NetMonitor", "enabled") == "True") interval = self.config.getint("main", "interval") + try: + self.verbose = (self.config.get("main", "verbose") == "True") + self.verbose = (self.config.get("NetMonitor", "verbose") == "True") + except: + pass # Assume 1gbit interfaces for now. FIXME: Need clean way to figure out max interface speed for d in self.devices.keys(): self.devices[d]["max"] = [70*1024*1024*interval, 1, 70*1024*1024*interval, 1] + if self.verbose: + print self.devices + def cleanup(self): pass @@ -85,6 +93,8 @@ class NetMonitor: ret["NET"][dev] = {} ret["NET"][dev]["READ"] = float(self.devices[dev]["diff"][0]) / float(self.devices[dev]["max"][0]) ret["NET"][dev]["WRITE"] = float(self.devices[dev]["diff"][2]) / float(self.devices[dev]["max"][2]) + if self.verbose: + print self.devices return ret _plugin = NetMonitor() diff --git a/tuned.conf b/tuned.conf index 59aa2a6..7190d32 100644 --- a/tuned.conf +++ b/tuned.conf @@ -6,6 +6,7 @@ # Interval for monitoring and tuning. Default is 10s. # interval=10 # pidfile=/var/run/tuned.pid +# verbose=False # # Disk monitoring section @@ -14,7 +15,7 @@ # Enabled or disable the plugin. Default is True. Any other value # disables it. # enabled=False - +# verbose=True # # Disk tuning section # @@ -24,7 +25,7 @@ # enabled=False # hdparm=False # alpm=False - +# verbose=True # # Net monitoring section # diff --git a/tuned.py b/tuned.py index d5abef3..bfc5dfa 100644 --- a/tuned.py +++ b/tuned.py @@ -23,6 +23,7 @@ class Tuned: self.interval = 10 self.mp = [] self.tp = [] + self.verbose = False def __initplugins__(self, path, module, store): _files = map(lambda v: v[:-3], filter(lambda v: v[-3:] == ".py" and \ @@ -48,6 +49,10 @@ class Tuned: self.interval = self.config.getint("main", "interval") else: self.config.set("main", "interval", self.interval) + if self.config.has_option("main", "verbose"): + self.verbose = (self.config.get("main", "verbose") == "True") + else: + self.config.set("main", "verbose", self.verbose) if self.config.has_option("main", "pidfile"): self.pidfile = self.config.get("main", "pidfile") else: diff --git a/tuningplugins/disk.py b/tuningplugins/disk.py index db22742..05a93be 100644 --- a/tuningplugins/disk.py +++ b/tuningplugins/disk.py @@ -25,6 +25,7 @@ class DiskTuning: self.power = ["255", "225", "195", "165", "145", "125", "105", "85", "70", "55", "30", "20"] self.spindown = ["0", "250", "230", "210", "190", "170", "150", "130", "110", "90", "70", "60"] self.levels = len(self.power) + self.verbose = False def __updateIdle__(self, dev, devload): idle = self.devidle.setdefault(dev, {}) @@ -41,6 +42,12 @@ class DiskTuning: self.config = config if self.config.has_option("DiskTuning", "enabled"): self.enabled = (self.config.get("DiskTuning", "enabled") == "True") + try: + self.verbose = (self.config.get("main", "verbose") == "True") + self.verbose = (self.config.get("DiskTuning","verbose") == "True") + print self.verbose + except: + pass def cleanup(self): for dev in self.devidle.keys(): @@ -66,5 +73,6 @@ class DiskTuning: self.devidle[dev]["LEVEL"] = 0 level = self.devidle[dev]["LEVEL"] os.system("hdparm -S"+self.power[level]+" -B"+self.spindown[level]+" /dev/"+dev+" > /dev/null 2>&1") - + if self.verbose: + print (load,self.devidle) _plugin = DiskTuning() diff --git a/tuningplugins/net.py b/tuningplugins/net.py index ecb4c20..8efe1b1 100644 --- a/tuningplugins/net.py +++ b/tuningplugins/net.py @@ -22,6 +22,7 @@ class NetTuning: def __init__(self): self.devidle = {} self.enabled = True + self.verbose = False def __updateIdle__(self, dev, devload): idle = self.devidle.setdefault(dev, {}) @@ -38,7 +39,11 @@ class NetTuning: self.config = config if self.config.has_option("NetTuning", "enabled"): self.enabled = (self.config.get("NetTuning", "enabled") == "True") - + try: + self.verbose = (self.config.get("main", "verbose") == "True") + self.verbose = (self.config.get("NetTuning", "verbose") == "True") + except: + pass def cleanup(self): for dev in self.devidle.keys(): @@ -58,6 +63,6 @@ class NetTuning: if self.devidle[dev]["LEVEL"] > 0 and (self.devidle[dev]["READ"] == 0 or self.devidle[dev]["WRITE"] == 0): self.devidle[dev]["LEVEL"] = 0 os.system("ethtool -s "+dev+" advertise 0x03F") - print(load, self.devidle) - + if self.verbose: + print(load, self.devidle) _plugin = NetTuning()