From bd4e1d8b9a655a1dec33196a192a4f7701368725 Mon Sep 17 00:00:00 2001 From: Matt Riedemann Date: Wed, 8 Jan 2014 10:54:24 -0800 Subject: [PATCH] Log how long it takes to run a query when collecting metrics Right now all elastic-recheck queries are using query_string queries against ElasticRecheck, but if we ever support more options like multi-line queries or regexp queries, it would be good to know how those perform relative to the query_string queries, so log it at debug level when running the CLI to dump metrics. Change-Id: I8414205b84e347d3305ee8d7e6ac2d4ca18c9818 --- elastic_recheck/cmd/check_success.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/elastic_recheck/cmd/check_success.py b/elastic_recheck/cmd/check_success.py index 6e7b3762..9f63169b 100755 --- a/elastic_recheck/cmd/check_success.py +++ b/elastic_recheck/cmd/check_success.py @@ -16,15 +16,18 @@ import argparse import collections +import logging import operator import os import re +import time from launchpadlib import launchpad import elastic_recheck.elasticRecheck as er import elastic_recheck.results as er_results +LOG = logging.getLogger('recheckwatchbot') LPCACHEDIR = os.path.expanduser('~/.launchpadlib/cache') @@ -165,7 +168,10 @@ def _failure_percentage(hits, fails): def collect_metrics(classifier, fails): data = {} for q in classifier.queries: + start = time.time() results = classifier.hits_by_query(q['query'], size=30000) + LOG.debug("Took %d seconds to run (uncached) query for bug %s" % + (time.time() - start, q['bug'])) hits = _status_count(results) data[q['bug']] = { 'fails': _failure_count(hits),