apache_log_metrics: Remove dependency on devserver_lib
Don't import devserver_lib just to set up a rotating log handler.
BUG=chromium:757002
TEST=unit tests
Change-Id: I00170a962ab5dcb63d0c980331371dbe79db0494
Reviewed-on: https://chromium-review.googlesource.com/621780
Commit-Ready: Paul Hobbs <phobbs@google.com>
Tested-by: Paul Hobbs <phobbs@google.com>
Reviewed-by: Richard Barnette <jrbarnette@google.com>
diff --git a/apache_log_metrics.py b/apache_log_metrics.py
index 9c9d52c..073a123 100755
--- a/apache_log_metrics.py
+++ b/apache_log_metrics.py
@@ -17,14 +17,21 @@
# TODO(ayatane): Fix cros lint pylint to work with virtualenv imports
# pylint: disable=import-error
-from devserver_lib.devserver import MakeLogHandler
# only import setup_chromite before chromite import.
import setup_chromite # pylint: disable=unused-import
from chromite.lib import ts_mon_config
from chromite.lib import metrics
from chromite.lib import cros_logging as logging
-from infra_libs import ts_mon
+
+
+# Log rotation parameters. Keep about two weeks of old logs.
+#
+# For more, see the documentation in standard python library for
+# logging.handlers.TimedRotatingFileHandler
+_LOG_ROTATION_TIME = 'H'
+_LOG_ROTATION_INTERVAL = 24 # hours
+_LOG_ROTATION_BACKUP = 14 # backup counts
STATIC_GET_MATCHER = re.compile(
@@ -177,9 +184,6 @@
m = matcher.match(line)
if m:
emitter(m)
- # The input might terminate if the log gets rotated. Make sure that Monarch
- # flushes any pending metrics before quitting.
- ts_mon.close()
# TODO(phobbs) add a matcher for all requests, not just static files.
@@ -201,10 +205,14 @@
args = ParseArgs()
root = logging.getLogger()
- root.addHandler(MakeLogHandler(args.logfile))
+ root.addHandler(logging.handlers.TimedRotatingFileHandler(
+ args.logfile, when=_LOG_ROTATION_TIME,
+ interval=_LOG_ROTATION_INTERVAL,
+ backupCount=_LOG_ROTATION_BACKUP))
root.setLevel(logging.DEBUG)
- ts_mon_config.SetupTsMonGlobalState('devserver_apache_log_metrics')
- RunMatchers(sys.stdin, MATCHERS)
+ with ts_mon_config.SetupTsMonGlobalState('devserver_apache_log_metrics',
+ indirect=True):
+ RunMatchers(sys.stdin, MATCHERS)
if __name__ == '__main__':