[autotest] Set up ts_mon with indirect=True
The scheduler should use indirect=True to support the reset_after=True
flag for global metrics.
BUG=chromium:648312
TEST=None
Change-Id: I4187c84361a51cdc37ca3827493d848e7dcfa3a3
Reviewed-on: https://chromium-review.googlesource.com/387197
Commit-Ready: Paul Hobbs <phobbs@google.com>
Tested-by: Paul Hobbs <phobbs@google.com>
Reviewed-by: David Riley <davidriley@chromium.org>
Reviewed-by: Paul Hobbs <phobbs@google.com>
diff --git a/scheduler/host_scheduler.py b/scheduler/host_scheduler.py
index 26fef0a..b9764c4 100755
--- a/scheduler/host_scheduler.py
+++ b/scheduler/host_scheduler.py
@@ -483,19 +483,22 @@
# Start the thread to report metadata.
metadata_reporter.start()
- ts_mon_config.SetupTsMonGlobalState('autotest_host_scheduler')
+ # Set up metrics upload for Monarch. Use indirect=True to have a separate
+ # flushing process which supports metrics which are sent exactly once.
+ with ts_mon_config.SetupTsMonGlobalState('autotest_host_scheduler',
+ indirect=True):
- host_scheduler = HostScheduler()
- minimum_tick_sec = global_config.global_config.get_config_value(
- 'SCHEDULER', 'minimum_tick_sec', type=float)
- while not _shutdown:
- start = time.time()
- host_scheduler.tick()
- curr_tick_sec = time.time() - start
- if (minimum_tick_sec > curr_tick_sec):
- time.sleep(minimum_tick_sec - curr_tick_sec)
- else:
- time.sleep(0.0001)
+ host_scheduler = HostScheduler()
+ minimum_tick_sec = global_config.global_config.get_config_value(
+ 'SCHEDULER', 'minimum_tick_sec', type=float)
+ while not _shutdown:
+ start = time.time()
+ host_scheduler.tick()
+ curr_tick_sec = time.time() - start
+ if (minimum_tick_sec > curr_tick_sec):
+ time.sleep(minimum_tick_sec - curr_tick_sec)
+ else:
+ time.sleep(0.0001)
except server_manager_utils.ServerActionError as e:
# This error is expected when the server is not in primary status
# for host-scheduler role. Thus do not send email for it.