From a183f681013dc6cb344e452bb58f8a5590939fad Mon Sep 17 00:00:00 2001 From: nicolargo Date: Fri, 21 Oct 2016 22:06:02 +0200 Subject: [PATCH] Add thresholds and update docs (issue #937) --- conf/glances.conf | 5 ++++ docs/_static/wifi.png | Bin 9385 -> 8692 bytes docs/aoa/wifi.rst | 17 +++++++++--- glances/plugins/glances_plugin.py | 16 ++++++------ glances/plugins/glances_wifi.py | 42 ++++++++++++++++++++++-------- 5 files changed, 58 insertions(+), 22 deletions(-) diff --git a/conf/glances.conf b/conf/glances.conf index 6ada518a..41c6702f 100644 --- a/conf/glances.conf +++ b/conf/glances.conf @@ -114,6 +114,11 @@ critical=90 [wifi] # Define the list of hidden wireless network interfaces (comma-separated regexp) hide=lo,docker.* +# Define SIGNAL thresholds in db (lower is better...) +# Based on: http://serverfault.com/questions/501025/industry-standard-for-minimum-wifi-signal-strength +careful=-65 +warning=-75 +critical=-85 #[diskio] # Define the list of hidden disks (comma-separated regexp) diff --git a/docs/_static/wifi.png b/docs/_static/wifi.png index 1b865b2a2301a8c80ebc13107b3402a7ce6e0e89..328c556ebfb1a06873583ef5d4722f1aceccd87a 100644 GIT binary patch literal 8692 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 @mX;LND%os+GCoQx~@`r}OAt42e|C7Dd0+ z%h992iso&5PpMm9xR~FF{u|azma4T=-DwoTkBBx}{*UIVT42}KK&#Vh;bl3P>HDvd z!QZJ2Qe1XEH|{n23>|t@m)$0-MXY7au-I`j4|>QQ2{(wbi-&p%5%@~Zs)V{ICKu_9J1%s*-LeyTEiE)pnVL}luy$(0EC=p!X=QU=jxyT4 zs#$xa6(q3+$;%<{H?Y>$Zv5wc7RGEsF$zRYo0Lsow=26^=)_WgX+()l?#7 z8Av$%bDv-bmf zsXGVMus(|IDq4eEPay1sLth@X4!vFxS~{R;yQlwTD*&uBbKwoDk&Hk3XL~`B>jk+w zfReqvEPQP1=y8bv0AOkB%HKQAcoyrvu+&OYAzJdD-`*sv|9$3AP-@*ZD)bGZPK!r! zvL^M%r)X$SX*z~xmpi9u!{bbu+veA?Oa?Lf?HLOz%1|UfOKxbeP4~u*1EJDtg|kr$ zSx3m7*5T_Js!Y2XgPWNflQNx-x(9mN+n@6V!ko)Dv$*gQ$`badVxh3CfMhWDp*><|ITO+%*;KhJ1J1kyzRp{DZ{ zL6h4%mxJIhB2wj#qvIT`!;PJLY2_5(fY`F{xRY^JNbAC)i6bvdc5tPlXRXgwxZ_&2 znm5m6BS}B<)R{DlY@MJjWJ;Xv*UCOCsefn9>uKMGkMOFKRq`=KlTkuv7yZ!X&ptAh zsf-DqLJ8{eaAqdSeAkU7;Fwiudm+pSH8S5b1?Ix?vOk{R_PR)XJ}`-tSNSB1RS=zO zM#|s%M%=#5z?1Y>M2vs>kuuAk z6$PEhHi>0{kURf5Y)SZA6}a;|#$F`s{XLV@wR*G?3P8>K$6kzkA^g1zl?ASe3g47g zow5Zg#}V7es5q%2|Hw1Um7;RL|RT7*fY`Pz?E$or&Al;GAO|1mLdNVK08=Rq4-DR zoZz zql<167yObzCeLYFE}m%4jVk8{CE$1I{LdX}vLJyU>Qs0xkxUWXLqUQPGx@|+Wh+D> z#XBanOLJ(#K;}oFvbmi;OTwkc*~d|SL~$WZQ5LBXVb`407OJv&NKtsw-mB$k%)VZv zI{xH2*?KLUkG`}J*K-sl35m~Ll7MQEz;6jqfp<2_MTj&DydKl}5Vl`J{=db^T8z zv0^c|pFPNRSLu(~3!oSoGqA9j`0Ht8E~(ZOU{E%k7)3tHMQ4riHC=T>tN)%1O-X%9 z(;tCMgXVm2sn5Gs#P~zHulIY;cq}GA8$L^%hbVUEr!#o`FGt?3QNa2uY3ZO!QvD}w zEp3IG2~GN}s*mO)shDbFCc>tFXk)2#`jE@lpZ_N%sKRn1^0IP8Riu*G@5aU$Yy0mC zu#SurFK*2Y3npGzn=jU?*YOqko+K5ns+|^<`mlSC`p*?mwTDR4V*Yu>1z5O;QXzAB zPKba1f*~G&>f29Ty(966TKp4=ANa*Ps)pn58)|?~!VxbRBpwX_gnW5k(U!Hbe>2hI zz*WvBdU7tT(03#693DK_Wd}}KB(#7Rjc*OXbdUQc{-s5t~V|RfoWD;XSG&i5JU6r1f+*%|xQqjRzW!~SDFNbP`;sH_EvPmXkRFPk)Dyl z8;R)+ZA1ZcC4N*1#pP#$?niIEiHg~w#GW2Hsi$jwv72^;_>=Yp$utaB@bZ35p zpi)^{EX0k@{x!Pj8B;8-J*VFC)ACl$)wusuvnDYDl=zoQ{rxn-{bT=|M*}=VOe3A- z1H self.__get_limit('critical', stat_name=stat_name): + if value >= self.get_limit('critical', stat_name=stat_name): ret = 'CRITICAL' - elif value > self.__get_limit('warning', stat_name=stat_name): + elif value >= self.get_limit('warning', stat_name=stat_name): ret = 'WARNING' - elif value > self.__get_limit('careful', stat_name=stat_name): + elif value >= self.get_limit('careful', stat_name=stat_name): ret = 'CAREFUL' elif current < minimum: ret = 'CAREFUL' @@ -516,7 +516,7 @@ class GlancesPlugin(object): # Manage log log_str = "" - if self.__get_limit_log(stat_name=stat_name, default_action=log): + if self.get_limit_log(stat_name=stat_name, default_action=log): # Add _LOG to the return string # So stats will be highlited with a specific color log_str = "_LOG" @@ -537,7 +537,7 @@ class GlancesPlugin(object): """Manage the action for the current stat""" # Here is a command line for the current trigger ? try: - command = self.__get_limit_action(trigger, stat_name=stat_name) + command = self.get_limit_action(trigger, stat_name=stat_name) except KeyError: # Reset the trigger self.actions.set(stat_name, trigger) @@ -578,7 +578,7 @@ class GlancesPlugin(object): action_key=action_key, log=True) - def __get_limit(self, criticity, stat_name=""): + def get_limit(self, criticity, stat_name=""): """Return the limit value for the alert.""" # Get the limit for stat + header # Exemple: network_wlan0_rx_careful @@ -594,7 +594,7 @@ class GlancesPlugin(object): # Return the limit return limit - def __get_limit_action(self, criticity, stat_name=""): + def get_limit_action(self, criticity, stat_name=""): """Return the action for the alert.""" # Get the action for stat + header # Exemple: network_wlan0_rx_careful_action @@ -608,7 +608,7 @@ class GlancesPlugin(object): # Return the action list return ret - def __get_limit_log(self, stat_name, default_action=False): + def get_limit_log(self, stat_name, default_action=False): """Return the log tag for the alert.""" # Get the log tag for stat + header # Exemple: network_wlan0_rx_log diff --git a/glances/plugins/glances_wifi.py b/glances/plugins/glances_wifi.py index a7036fab..b42939f1 100644 --- a/glances/plugins/glances_wifi.py +++ b/glances/plugins/glances_wifi.py @@ -129,19 +129,36 @@ class Plugin(GlancesPlugin): return self.stats + def get_alert(self, value): + """Overwrite the default get_alert method. + Alert is on signal quality where lower is better... + + :returns: string -- Signal alert + """ + + ret = 'OK' + try: + if value <= self.get_limit('critical', stat_name=self.plugin_name): + ret = 'CRITICAL' + elif value <= self.get_limit('warning', stat_name=self.plugin_name): + ret = 'WARNING' + elif value <= self.get_limit('careful', stat_name=self.plugin_name): + ret = 'CAREFUL' + except KeyError: + ret = 'DEFAULT' + + return ret + def update_views(self): """Update stats views.""" # Call the father's method super(Plugin, self).update_views() # Add specifics informations - # Alert - # for i in self.stats: - # ifrealname = i['interface_name'].split(':')[0] - # self.views[i[self.get_key()]]['rx']['decoration'] = self.get_alert(int(i['rx'] // i['time_since_update'] * 8), - # header=ifrealname + '_rx') - # self.views[i[self.get_key()]]['tx']['decoration'] = self.get_alert(int(i['tx'] // i['time_since_update'] * 8), - # header=ifrealname + '_tx') + # Alert on signal thresholds + for i in self.stats: + self.views[i[self.get_key()]]['signal']['decoration'] = self.get_alert(i['signal']) + self.views[i[self.get_key()]]['quality']['decoration'] = self.views[i[self.get_key()]]['signal']['decoration'] def msg_curse(self, args=None, max_width=None): """Return the dict to display in the curse interface.""" @@ -163,15 +180,15 @@ class Plugin(GlancesPlugin): # Header msg = '{:{width}}'.format('WIFI', width=ifname_max_width) ret.append(self.curse_add_line(msg, "TITLE")) - msg = '{:>6}'.format('Quality') + msg = '{:>7}'.format('dBm') ret.append(self.curse_add_line(msg)) # Hotspot list (sorted by name) for i in sorted(self.stats, key=operator.itemgetter(self.get_key())): - ret.append(self.curse_new_line()) # Do not display hotspot with no name (/ssid) if i['ssid'] == '': continue + ret.append(self.curse_new_line()) # New hotspot hotspotname = i['ssid'] # Add the encryption type (if it is available) @@ -183,7 +200,10 @@ class Plugin(GlancesPlugin): # Add the new hotspot to the message msg = '{:{width}}'.format(hotspotname, width=ifname_max_width) ret.append(self.curse_add_line(msg)) - msg = '{:>7}'.format(i['quality'], width=ifname_max_width) - ret.append(self.curse_add_line(msg)) + msg = '{:>7}'.format(i['signal'], width=ifname_max_width) + ret.append(self.curse_add_line(msg, + self.get_views(item=i[self.get_key()], + key='signal', + option='decoration'))) return ret