Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar_network/node/stats.py
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@sugarlabs.org>2012-10-31 20:31:25 (GMT)
committer Aleksey Lim <alsroot@sugarlabs.org>2012-10-31 20:31:25 (GMT)
commitdb503a6b784bfcba83968e7c26fb8d7f5673189e (patch)
tree78481e4af2346f43c020fc22a9cd6c24d4c3c05a /sugar_network/node/stats.py
parent82dba01df6c4cb85b4bff1fd6005a0e8b1139831 (diff)
Get access to node stats via API
Diffstat (limited to 'sugar_network/node/stats.py')
-rw-r--r--sugar_network/node/stats.py24
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)