# HG changeset patch # User Denis Laxalde # Date 1490786981 -7200 # Node ID 40446d4e1ee2baa9213827d78ffa5313b7ee007a # Parent 669aaed98678723847f94a9d9cce73df76fbac00 [hooks] Drop "logstats" hook It is now useless as its looping task would not run on a web instance because respective repository has no scheduler. diff -r 669aaed98678 -r 40446d4e1ee2 cubicweb/hooks/logstats.py --- a/cubicweb/hooks/logstats.py Wed Mar 29 11:46:17 2017 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -# copyright 2014 LOGILAB S.A. (Paris, FRANCE), all rights reserved. -# contact http://www.logilab.fr/ -- mailto:contact@logilab.fr -# -# This file is part of CubicWeb. -# -# CubicWeb is free software: you can redistribute it and/or modify it under the -# terms of the GNU Lesser General Public License as published by the Free -# Software Foundation, either version 2.1 of the License, or (at your option) -# any later version. -# -# CubicWeb is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more -# details. -# -# You should have received a copy of the GNU Lesser General Public License along -# with CubicWeb. If not, see . - -"""looping task for dumping instance's stats in a file -""" - - - -from datetime import datetime -import json - -from cubicweb.server import hook - -class LogStatsStartHook(hook.Hook): - """register task to regularly dump instance's stats in a file - - data are stored as one json entry per row - """ - __regid__ = 'cubicweb.hook.logstats.start' - events = ('server_startup',) - - def __call__(self): - if not self.repo.has_scheduler(): - return - interval = self.repo.config.get('logstat-interval', 0) - if interval <= 0: - return - - def dump_stats(repo): - statsfile = repo.config.get('logstat-file') - with repo.internal_cnx() as cnx: - stats = cnx.call_service('repo_stats') - gcstats = cnx.call_service('repo_gc_stats', nmax=5) - - allstats = {'resources': stats, - 'memory': gcstats, - 'timestamp': datetime.utcnow().isoformat(), - } - try: - with open(statsfile, 'ab') as ofile: - json.dump(allstats, ofile) - ofile.write('\n') - except IOError: - repo.warning('Cannot open stats file for writing: %s', statsfile) - - self.repo.looping_task(interval, dump_stats, self.repo) diff -r 669aaed98678 -r 40446d4e1ee2 doc/changes/3.25.rst --- a/doc/changes/3.25.rst Wed Mar 29 11:46:17 2017 +0200 +++ b/doc/changes/3.25.rst Wed Mar 29 13:29:41 2017 +0200 @@ -74,3 +74,7 @@ (4516c3956d46). * The `next_tabindex` method of request class has been removed (011730a4af73). + +* The `cubicweb.hook.logstats.start` hook was dropped because it's looping + task would not be run in a web instance (see first point about repository + scheduler).