diff options
author | Aleksey Lim <alsroot@sugarlabs.org> | 2012-10-31 20:31:25 (GMT) |
---|---|---|
committer | Aleksey Lim <alsroot@sugarlabs.org> | 2012-10-31 20:31:25 (GMT) |
commit | db503a6b784bfcba83968e7c26fb8d7f5673189e (patch) | |
tree | 78481e4af2346f43c020fc22a9cd6c24d4c3c05a /sugar_network/node/stats.py | |
parent | 82dba01df6c4cb85b4bff1fd6005a0e8b1139831 (diff) |
Get access to node stats via API
Diffstat (limited to 'sugar_network/node/stats.py')
-rw-r--r-- | sugar_network/node/stats.py | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/sugar_network/node/stats.py b/sugar_network/node/stats.py index 679d223..e61f273 100644 --- a/sugar_network/node/stats.py +++ b/sugar_network/node/stats.py @@ -20,7 +20,7 @@ from os.path import join, exists, isdir from pylru import lrucache from active_toolkit.options import Option -from sugar_network.toolkit.rrd import Rrd, ReadOnlyRrd +from sugar_network.toolkit.rrd import Rrd from sugar_network.toolkit.collection import Sequence, PersistentSequence @@ -109,26 +109,26 @@ def pull(in_seq, packet): for user, rrd in _walk_rrd(join(stats_root.value, 'user')): in_seq.setdefault(user, {}) - for db, db_start, db_end in rrd.dbs: - seq = in_seq[user].get(db) + for db in rrd: + seq = in_seq[user].get(db.name) if seq is None: - seq = in_seq[user][db] = PersistentSequence( - join(rrd.root, db + '.push'), [1, None]) + seq = in_seq[user][db.name] = PersistentSequence( + join(rrd.root, db.name + '.push'), [1, None]) elif seq is not dict: - seq = in_seq[user][db] = Sequence(seq) + seq = in_seq[user][db.name] = Sequence(seq) out_seq = Sequence() def dump(): for start, end in seq: for timestamp, values in \ - rrd.get(db, max(start, db_start), end or db_end): + db.get(max(start, db.first), end or db.last): yield {'timestamp': timestamp, 'values': values} seq.exclude(start, timestamp) out_seq.include(start, timestamp) start = timestamp - packet.push(dump(), arcname=join('stats', user, db), - cmd='stats_push', user=user, db=db, + packet.push(dump(), arcname=join('stats', user, db.name), + cmd='stats_push', user=user, db=db.name, sequence=out_seq) @@ -147,7 +147,7 @@ class NodeStats(object): _logger.info('Start collecting node stats in %r', path) self._volume = volume - self._rrd = Rrd(path, stats_node_step.value, stats_node_rras.value) + self.rrd = Rrd(path, stats_node_step.value, stats_node_rras.value) self._stats = { 'user': _UserStats(), @@ -255,7 +255,7 @@ class NodeStats(object): if type(value) is set: value = len(value) values[attr] = value - self._rrd.put(document, values, timestamp=timestamp) + self.rrd[document].put(values, timestamp=timestamp) self._stats[document] = type(stats)() @@ -331,4 +331,4 @@ def _walk_rrd(root): if not isdir(users_dir): continue for user in os.listdir(users_dir): - yield user, ReadOnlyRrd(join(users_dir, user)) + yield user, Rrd(join(users_dir, user), stats_user_step.value) |