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:
Diffstat (limited to 'sugar_network/node/stats.py')
-rw-r--r--sugar_network/node/stats.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/sugar_network/node/stats.py b/sugar_network/node/stats.py
index c31b204..d5941eb 100644
--- a/sugar_network/node/stats.py
+++ b/sugar_network/node/stats.py
@@ -23,10 +23,6 @@ from sugar_network.toolkit.coroutine import this
from sugar_network.toolkit import Option, coroutine, enforce
-stats = Option(
- 'collect unpersonalized node statistics',
- default=False, type_cast=Option.bool_cast, action='store_true')
-
stats_step = Option(
'step interval in seconds for RRD statistics database',
default=60 * 5, type_cast=int)
@@ -110,6 +106,7 @@ class StatRoutes(object):
_rrd = None
_stats = None
+ _solves = None
_stated = False
def stats_init(self, path, step, rras):
@@ -117,6 +114,7 @@ class StatRoutes(object):
self._rrd = Rrd(path, 'stats', _DS, step, rras)
self._stats = self._rrd.values()
+ self._solves = {}
if not self._stats:
for field, traits in _DS.items():
@@ -142,6 +140,9 @@ class StatRoutes(object):
stat = stat()
self._stats[stat] += shift
+ if stat == 'solved':
+ self._solves[r.guid] = self._solves.get(r.guid, 0) + 1
+
return result
@route('GET', cmd='stats', arguments={
@@ -188,6 +189,11 @@ class StatRoutes(object):
if traits['type'] == 'ABSOLUTE':
self._stats[field] = 0
+ context = this.volume['context']
+ for guid, solves in self._solves.items():
+ context.update(guid, {'solves': context[guid]['solves'] + solves})
+ self._solves.clear()
+
def stats_regen(self, path, step, rras):
for i in Rrd(path, 'stats', _DS, step, rras).files:
os.unlink(i)