summaryrefslogtreecommitdiff
path: root/ceilometer
diff options
context:
space:
mode:
authorRafael Weingärtner <rafael@apache.org>2021-05-07 14:36:26 -0300
committerRafael Weingärtner <rafael@apache.org>2021-05-07 14:36:32 -0300
commit30ada660f0d5e4bcbddb2b13aa6af834ab295444 (patch)
tree013bf0b523d510fc2a10f6b31d2b75a37b6462e9 /ceilometer
parent122c55591fa90989e66fb803d9a5aac2db8a7211 (diff)
downloadceilometer-30ada660f0d5e4bcbddb2b13aa6af834ab295444.tar.gz
Introduce `timeout` in dynamic pollsters sub-system
This patch introduces a new option for the dynamic pollsters' sub-system to define the request timeout for requests executed by the dynamic pollsters. The default timeout value will be 30 seconds. If it (the timeout option) is set to `None`, this means that the request never times out on the client-side. Therefore, one might have problems if the server never closes the connection. The pollsters are executed serially, one after the other; if the request hangs, all pollsters (including the non-dynamic ones) will stop executing. This option is being introduced after a failure that we had when using the dynamic pollsters; one of the APIs did not respond, and the server did not close the connection of the request, which made Ceilometer dynamic pollsters stop gathering data. To avoid such a situation, we recommend the community review and merge this patch. Change-Id: I4735f20d75d329ccafc797fe285d9fef579f593e
Diffstat (limited to 'ceilometer')
-rw-r--r--ceilometer/polling/dynamic_pollster.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/ceilometer/polling/dynamic_pollster.py b/ceilometer/polling/dynamic_pollster.py
index e11dc179..df2d754a 100644
--- a/ceilometer/polling/dynamic_pollster.py
+++ b/ceilometer/polling/dynamic_pollster.py
@@ -411,7 +411,8 @@ class PollsterDefinitions(object):
PollsterDefinition(name='user_id_attribute', default="user_id"),
PollsterDefinition(name='resource_id_attribute', default="id"),
PollsterDefinition(name='project_id_attribute', default="project_id"),
- PollsterDefinition(name='headers')]
+ PollsterDefinition(name='headers'),
+ PollsterDefinition(name='timeout', default=30)]
extra_definitions = []
@@ -613,6 +614,7 @@ class PollsterSampleGatherer(object):
request_headers = self.definitions.configurations['headers']
if request_headers:
request_args['headers'] = request_headers
+ request_args['timeout'] = self.definitions.configurations['timeout']
return request_args
def get_request_linked_samples_url(self, kwargs):