提交 e72960ce 编写于 作者: N Nicolargo

SNMP input: Mem and MemSwap

上级 d68c991a
......@@ -26,16 +26,11 @@ from glances.plugins.glances_plugin import GlancesPlugin
# SNMP OID
# percentage of user CPU time: .1.3.6.1.4.1.2021.11.9.0
# raw user cpu time: .1.3.6.1.4.1.2021.11.50.0
# percentages of system CPU time: .1.3.6.1.4.1.2021.11.10.0
# raw system cpu time: .1.3.6.1.4.1.2021.11.52.0
# percentages of idle CPU time: .1.3.6.1.4.1.2021.11.11.0
# raw idle cpu time: .1.3.6.1.4.1.2021.11.53.0
# raw nice cpu time: .1.3.6.1.4.1.2021.11.51.0
snmp_oid = { 'user': '1.3.6.1.4.1.2021.11.9.0',
'system': '1.3.6.1.4.1.2021.11.10.0',
'idle': '1.3.6.1.4.1.2021.11.11.0',
'user_raw': '1.3.6.1.4.1.2021.11.50.0' }
'idle': '1.3.6.1.4.1.2021.11.11.0' }
class Plugin(GlancesPlugin):
"""
......
......@@ -27,6 +27,14 @@ import os
from glances.plugins.glances_core import Plugin as CorePlugin
from glances.plugins.glances_plugin import GlancesPlugin
# SNMP OID
# 1 minute Load: .1.3.6.1.4.1.2021.10.1.3.1
# 5 minute Load: .1.3.6.1.4.1.2021.10.1.3.2
# 15 minute Load: .1.3.6.1.4.1.2021.10.1.3.3
snmp_oid = { 'min1': '1.3.6.1.4.1.2021.10.1.3.1',
'min5': '1.3.6.1.4.1.2021.10.1.3.2',
'min15': '1.3.6.1.4.1.2021.10.1.3.3' }
class Plugin(GlancesPlugin):
"""
......@@ -51,25 +59,42 @@ class Plugin(GlancesPlugin):
self.line_curse = 1
# Init stats
self.reset()
def reset(self):
"""
Reset/init the stats
"""
self.stats = {}
def update(self):
def update(self, input='local'):
"""
Update load stats
Update load stats using the input method
Input method could be: local (mandatory) or snmp (optionnal)
"""
# Get the load using the os standard lib
try:
load = os.getloadavg()
except OSError:
self.stats = {}
except AttributeError:
# For Windows OS...
self.stats = {}
else:
self.stats = {'min1': load[0],
'min5': load[1],
'min15': load[2]}
# Reset stats
self.reset()
if input == 'local':
# Update stats using the standard system lib
# Get the load using the os standard lib
try:
load = os.getloadavg()
except OSError:
self.stats = {}
except AttributeError:
# For Windows OS...
self.stats = {}
else:
self.stats = {'min1': load[0],
'min5': load[1],
'min15': load[2]}
elif input == 'snmp':
# Update stats using SNMP
self.stats = self.set_stats_snmp(snmp_oid=snmp_oid)
for key in self.stats.iterkeys():
self.stats[key] = float(self.stats[key])
return self.stats
......
......@@ -24,6 +24,20 @@ import psutil
from glances.plugins.glances_plugin import GlancesPlugin
# SNMP OID
# Total RAM in machine: .1.3.6.1.4.1.2021.4.5.0
# Total RAM used: .1.3.6.1.4.1.2021.4.6.0
# Total RAM Free: .1.3.6.1.4.1.2021.4.11.0
# Total RAM Shared: .1.3.6.1.4.1.2021.4.13.0
# Total RAM Buffered: .1.3.6.1.4.1.2021.4.14.0
# Total Cached Memory: .1.3.6.1.4.1.2021.4.15.0
snmp_oid = { 'total': '1.3.6.1.4.1.2021.4.5.0',
# 'used': '1.3.6.1.4.1.2021.4.6.0',
'free': '1.3.6.1.4.1.2021.4.11.0',
'shared': '1.3.6.1.4.1.2021.4.13.0',
'buffers': '1.3.6.1.4.1.2021.4.14.0',
'cached': '1.3.6.1.4.1.2021.4.15.0' }
class Plugin(GlancesPlugin):
"""
......@@ -90,16 +104,26 @@ class Plugin(GlancesPlugin):
# Use the 'free'/htop calculation
# free=available+buffer+cached
self.stats['free'] = self.stats['available']
if hasattr(self.stats, 'buffer'):
self.stats['free'] += self.stats['buffer']
if hasattr(self.stats, 'buffers'):
self.stats['free'] += self.stats['buffers']
if hasattr(self.stats, 'cached'):
self.stats['free'] += self.stats['cached']
# used=total-free
self.stats['used'] = self.stats['total'] - self.stats['free']
elif input == 'snmp':
# Update stats using SNMP
# !!! TODO
pass
self.stats = self.set_stats_snmp(snmp_oid=snmp_oid)
for key in self.stats.iterkeys():
self.stats[key] = float(self.stats[key]) * 1024
# Use the 'free'/htop calculation
self.stats['free'] = self.stats['free'] - self.stats['total'] + (self.stats['buffers'] + self.stats['cached'])
# used=total-free
self.stats['used'] = self.stats['total'] - self.stats['free']
# percent: the percentage usage calculated as (total - available) / total * 100.
self.stats['percent'] = float((self.stats['total'] - self.stats['free']) / self.stats['total'] * 100)
return self.stats
......
......@@ -24,6 +24,12 @@ import psutil
from glances.plugins.glances_plugin import GlancesPlugin
# SNMP OID
# Total Swap Size: .1.3.6.1.4.1.2021.4.3.0
# Available Swap Space: .1.3.6.1.4.1.2021.4.4.0
snmp_oid = { 'total': '1.3.6.1.4.1.2021.4.3.0',
'free': '1.3.6.1.4.1.2021.4.4.0' }
class Plugin(GlancesPlugin):
"""
......@@ -80,8 +86,15 @@ class Plugin(GlancesPlugin):
self.stats[swap] = getattr(sm_stats, swap)
elif input == 'snmp':
# Update stats using SNMP
# !!! TODO
pass
self.stats = self.set_stats_snmp(snmp_oid=snmp_oid)
for key in self.stats.iterkeys():
self.stats[key] = float(self.stats[key]) * 1024
# used=total-free
self.stats['used'] = self.stats['total'] - self.stats['free']
# percent: the percentage usage calculated as (total - available) / total * 100.
self.stats['percent'] = float((self.stats['total'] - self.stats['free']) / self.stats['total'] * 100)
return self.stats
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册