From 677a80e4fb14d8a37ac8cea5cbf8e2ba8cfced2d Mon Sep 17 00:00:00 2001
From: Yusei Tahara <yusei@nexedi.com>
Date: Wed, 31 Jan 2018 18:23:36 +0900
Subject: [PATCH] stack/monitor: Add a random delay of maximum 60 seconds to
 all monitor cron jobs to avoid high load at the first second of every minute.

---
 stack/monitor/instance-monitor.cfg.jinja2.in | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/stack/monitor/instance-monitor.cfg.jinja2.in b/stack/monitor/instance-monitor.cfg.jinja2.in
index 37f76138d..de59c2be8 100644
--- a/stack/monitor/instance-monitor.cfg.jinja2.in
+++ b/stack/monitor/instance-monitor.cfg.jinja2.in
@@ -88,6 +88,7 @@ promise-folder = ${directory:promises}
 monitor-promise-folder = ${monitor-directory:promises}
 promises-timeout-file = ${monitor-promise-timeout-file:file}
 pid-file = ${monitor-directory:pids}/monitor-bootstrap.pid
+randomsleep = {{ bin_directory }}/randomsleep
 
 public-path-list = 
 private-path-list = 
@@ -256,13 +257,13 @@ parameters-extra = true
 
 [monitor-globalstate-wrapper]
 recipe = slapos.cookbook:wrapper
-command-line = ${xnice-bin:output} {{ monitor_genstatus }} '${monitor-conf:rendered}' '${monitor-instance-info:rendered}'
+command-line = {{ bin_directory }}/randomsleep 60 && ${xnice-bin:output} {{ monitor_genstatus }} '${monitor-conf:rendered}' '${monitor-instance-info:rendered}'
 wrapper-path = ${directory:bin}/monitor-globalstate
 
 [monitor-configurator-wrapper]
 recipe = slapos.cookbook:wrapper
 # XXX - hard coded path
-command-line = {{ monitor_configwrite }} --config_folder '${monitor-conf-parameters:private-folder}/config/.jio_documents' --output_cfg_file '${monitor-instance-parameter:configuration-file-path}' --htpasswd_bin '{{ apache_location }}/bin/htpasswd' --monitor_https_cors {{ monitor_https_cors }}
+command-line = {{ bin_directory }}/randomsleep 60 && {{ monitor_configwrite }} --config_folder '${monitor-conf-parameters:private-folder}/config/.jio_documents' --output_cfg_file '${monitor-instance-parameter:configuration-file-path}' --htpasswd_bin '{{ apache_location }}/bin/htpasswd' --monitor_https_cors {{ monitor_https_cors }}
 wrapper-path = ${directory:bin}/monitor-configurator
 
 [monitor-globalstate-cron-entry]
-- 
2.30.9