summaryrefslogtreecommitdiff
path: root/ceilometer/polling
diff options
context:
space:
mode:
authorJulien Danjou <julien@danjou.info>2017-11-21 17:37:49 +0100
committerJulien Danjou <julien@danjou.info>2017-11-23 10:29:10 +0100
commita034d2d8f55a8bf7e96e7d6b79a2c948a7df265c (patch)
treef4b265e910dda406b360601a208f454bad2c9a21 /ceilometer/polling
parent2829f005ef4cca5b14921e7e98a930170cd0f418 (diff)
downloadceilometer-a034d2d8f55a8bf7e96e7d6b79a2c948a7df265c.tar.gz
polling: run polling tasks immediately on start
When Ceilometer polling agent start, one has to wait N seconds for the first polling to happen. This makes testing extremely difficult. I can't see any good reason to not poll at (re)start. Since the last run time is lost anyway, the interval will never be perfect. So at least let's make it convenient by polling on startup. Also set a default random 0-10 seconds delay before the first poll so if a lot of daemons are started at the same time they don't all hit the same endpoint at the same time. Change-Id: I0741a586cec499c259f0e90977f185c4e68a99d3
Diffstat (limited to 'ceilometer/polling')
-rw-r--r--ceilometer/polling/manager.py7
1 files changed, 3 insertions, 4 deletions
diff --git a/ceilometer/polling/manager.py b/ceilometer/polling/manager.py
index 89e983a5..93d16d12 100644
--- a/ceilometer/polling/manager.py
+++ b/ceilometer/polling/manager.py
@@ -50,7 +50,7 @@ OPTS = [
'throughput at the cost of load set this to False.'),
cfg.FloatOpt('shuffle_time_before_polling_task',
min=0,
- default=0,
+ default=10,
help='To reduce large requests at same time to Nova or other '
'components from different compute agents, shuffle '
'start time of polling task.'),
@@ -379,13 +379,12 @@ class AgentManager(cotyledon.Service):
futures.ThreadPoolExecutor(max_workers=len(data)))
for interval, polling_task in data.items():
- delay_time = interval + delay_polling_time
- @periodics.periodic(spacing=interval, run_immediately=False)
+ @periodics.periodic(spacing=interval, run_immediately=True)
def task(running_task):
self.interval_task(running_task)
- utils.spawn_thread(utils.delayed, delay_time,
+ utils.spawn_thread(utils.delayed, delay_polling_time,
self.polling_periodics.add, task, polling_task)
utils.spawn_thread(self.polling_periodics.start, allow_empty=True)