diff options
author | Aleksey Lim <alsroot@sugarlabs.org> | 2013-05-06 18:00:28 (GMT) |
---|---|---|
committer | Aleksey Lim <alsroot@sugarlabs.org> | 2013-05-06 19:03:22 (GMT) |
commit | 936b7e3afba4167ed819785e906c268460712e6e (patch) | |
tree | 87bbb0cf8271252a8c2201605c86a7af90eede89 /sugar_network/toolkit/rrd.py | |
parent | 3edd183539c28fd9ee642df4159f6ba90876910c (diff) |
No dups while reading stats from rrd
Diffstat (limited to 'sugar_network/toolkit/rrd.py')
-rw-r--r-- | sugar_network/toolkit/rrd.py | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/sugar_network/toolkit/rrd.py b/sugar_network/toolkit/rrd.py index 1fdc795..28c8be5 100644 --- a/sugar_network/toolkit/rrd.py +++ b/sugar_network/toolkit/rrd.py @@ -152,29 +152,29 @@ class _DbSet(object): break start = start - start % self._step - self._step - end = end - end % self._step - self._step + end = min(end, start + _FETCH_PAGE * resolution) + end -= end % self._step + self._step for db in reversed(revisions): db_end = min(end, db.last - self._step) - while start <= db_end: - until = max(start, - min(start + _FETCH_PAGE, db_end)) - (row_start, start, row_step), __, rows = _rrdtool.fetch( - str(db.path), - 'AVERAGE', - '--start', str(start), - '--end', str(until), - '--resolution', str(resolution)) - for raw_row in rows: - row_start += row_step - row = {} - accept = False - for i, value in enumerate(raw_row): - row[db.field_names[i]] = value - accept = accept or value is not None - if accept: - yield row_start, row - start = until + 1 + if start > db_end: + break + (row_start, start, row_step), __, rows = _rrdtool.fetch( + str(db.path), + 'AVERAGE', + '--start', str(start), + '--end', str(db_end), + '--resolution', str(resolution)) + for raw_row in rows: + row_start += row_step + row = {} + accept = False + for i, value in enumerate(raw_row): + row[db.field_names[i]] = value + accept = accept or value is not None + if accept: + yield row_start, row + start = db_end + 1 def _get_db(self, timestamp): if self.__db is None and self._field_names: |