[autotest] Collect time stats in suite_scheduler
The stats should be useful to indicating the bottleneck and when suite_scheduler
hangs.
BUG=chromium:527259
TEST=local run suite_scheduler
Change-Id: I004188baabb38374fdedd22257b191b7cdf16e23
Reviewed-on: https://chromium-review.googlesource.com/296821
Commit-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Mungyung Ryu <mkryu@google.com>
diff --git a/site_utils/suite_scheduler/driver.py b/site_utils/suite_scheduler/driver.py
index d72204a..e6bf552 100644
--- a/site_utils/suite_scheduler/driver.py
+++ b/site_utils/suite_scheduler/driver.py
@@ -8,8 +8,12 @@
import task, timed_event
import common
+from autotest_lib.client.common_lib.cros.graphite import autotest_stats
from autotest_lib.server import utils
+
+_timer = autotest_stats.Timer('suite_scheduler')
+
class Driver(object):
"""Implements the main loop of the suite_scheduler.
@@ -120,12 +124,15 @@
self.HandleEventsOnce(mv)
except board_enumerator.EnumeratorException as e:
logging.warning('Failed to enumerate boards: %r', e)
- mv.Update()
- task.TotMilestoneManager().refresh()
+ with _timer.get_client('manifest_versions_update'):
+ mv.Update()
+ with _timer.get_client('tot_milestone_manager_refresh'):
+ task.TotMilestoneManager().refresh()
time.sleep(self._LOOP_INTERVAL_SECONDS)
self.RereadAndReprocessConfig(config, mv)
+ @_timer.decorate
def HandleEventsOnce(self, mv):
"""One turn through the loop. Separated out for unit testing.