Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar_network/toolkit/rrd.py
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@sugarlabs.org>2013-11-23 07:11:37 (GMT)
committer Aleksey Lim <alsroot@sugarlabs.org>2013-11-23 07:11:37 (GMT)
commita181951a95ea19225807aa7c716347192c8af1ee (patch)
treec13871acb363533e9576dfb46dbf83001613cf0b /sugar_network/toolkit/rrd.py
parent6b1d747f40416c8a70b70953c7c0349e08d46507 (diff)
Replace rrd ABSOLUTE fields by GAUGE to easy understand node stats
Diffstat (limited to 'sugar_network/toolkit/rrd.py')
-rw-r--r--sugar_network/toolkit/rrd.py20
1 files changed, 16 insertions, 4 deletions
diff --git a/sugar_network/toolkit/rrd.py b/sugar_network/toolkit/rrd.py
index da58aff..bafe6d1 100644
--- a/sugar_network/toolkit/rrd.py
+++ b/sugar_network/toolkit/rrd.py
@@ -107,13 +107,25 @@ class _DbSet(object):
@property
def first(self):
- if self._revisions:
- return self._revisions[0].first
+ if not self._revisions:
+ return
+ return self._revisions[0].first
@property
def last(self):
- if self._revisions:
- return self._revisions[-1].last
+ if not self._revisions:
+ return
+ return self._revisions[-1].last
+
+ @property
+ def last_ds(self):
+ if not self._revisions or not self._field_names:
+ return {}
+ info = _rrdtool.info(self._revisions[-1].path)
+ result = {}
+ for field in self._field_names:
+ result[field] = float(info.get('ds[%s].last_ds' % field) or 0)
+ return result
def load(self, filename, revision):
_logger.debug('Load %s database from %s with revision %s',