From a5c154d6ef7cd5cb54e4bb02b4635faeac2fea4a Mon Sep 17 00:00:00 2001 From: Swann Croiset Date: Wed, 1 Feb 2017 15:57:34 +0100 Subject: [PATCH] Configure pagination for OpenStack collectd plugins Change-Id: I32e83368b7d0d2e8b68d7f7a2df0d1b61653fa72 --- .../puppet/manifests/collectd.pp | 28 ++++++++++++++++--- .../puppet/modules/lma_collector/README.md | 12 +++++--- .../manifests/collectd/openstack.pp | 23 +++++++++++++-- 3 files changed, 53 insertions(+), 10 deletions(-) diff --git a/deployment_scripts/puppet/manifests/collectd.pp b/deployment_scripts/puppet/manifests/collectd.pp index 7e6ab375a..2edd29f02 100644 --- a/deployment_scripts/puppet/manifests/collectd.pp +++ b/deployment_scripts/puppet/manifests/collectd.pp @@ -162,16 +162,36 @@ if hiera('lma::collector::influxdb::server', false) { require => Class['lma_collector::collectd::base'], } $openstack_services = { - 'nova' => $openstack_service_config, 'nova_services' => $openstack_service_config, - 'cinder' => $openstack_service_config, 'cinder_services' => $openstack_service_config, - 'glance' => $openstack_service_config, 'keystone' => $openstack_service_config, - 'neutron' => $openstack_service_config, 'neutron_agents' => $openstack_service_config, } + + $nova_polling = { + 'polling_interval' => 60, + 'pagination_limit' => 500, + } + $cinder_polling = { + 'polling_interval' => 60, + 'pagination_limit' => 500, + } + $glance_polling = { + 'polling_interval' => 60, + 'pagination_limit' => 25, + } + $neutron_polling = { + 'polling_interval' => 60, + 'pagination_limit' => 100, + } + $openstack_resources = { + 'nova' => merge($openstack_service_config, $nova_polling), + 'cinder' => merge($openstack_service_config, $cinder_polling), + 'glance' => merge($openstack_service_config, $glance_polling), + 'neutron' => merge($openstack_service_config, $neutron_polling), + } create_resources(lma_collector::collectd::openstack, $openstack_services) + create_resources(lma_collector::collectd::openstack, $openstack_resources) # FIXME(elemoine) use the special attribute * when Fuel uses a Puppet version # that supports it. diff --git a/deployment_scripts/puppet/modules/lma_collector/README.md b/deployment_scripts/puppet/modules/lma_collector/README.md index 7d667d97a..e7b12d41d 100644 --- a/deployment_scripts/puppet/modules/lma_collector/README.md +++ b/deployment_scripts/puppet/modules/lma_collector/README.md @@ -176,10 +176,12 @@ the `lma_collector::collectd::openstack` define: ```puppet lma_collector::collectd::openstack { 'nova': - user => 'user', - password => 'password', - tenant => 'tenant', - keystone_url => 'http://example.com/keystone', + user => 'user', + password => 'password', + tenant => 'tenant', + keystone_url => 'http://example.com/keystone', + polling_interval => 60, + pagination_limit => 500, } ``` @@ -965,6 +967,8 @@ The resource title should be set to the service name (e.g. `'nova'`). [`lma_collector::collectd::pacemaker`](#class-lma_collectorcollectdpacemaker) class should be declared, with its `master_resource` parameter set to the same value as this parameter. Valid options: a string. Default: `undef`. +* `polling_interval`: *Optional*. The interval used to poll the resources. +* `pagination_limit`: *Optional*. The number of resource returned by request. #### Define `lma_collector::collectd::dbi_services` diff --git a/deployment_scripts/puppet/modules/lma_collector/manifests/collectd/openstack.pp b/deployment_scripts/puppet/modules/lma_collector/manifests/collectd/openstack.pp index c14e1bf5b..3a5cf4a8b 100644 --- a/deployment_scripts/puppet/modules/lma_collector/manifests/collectd/openstack.pp +++ b/deployment_scripts/puppet/modules/lma_collector/manifests/collectd/openstack.pp @@ -21,6 +21,8 @@ define lma_collector::collectd::openstack ( $timeout = 20, $max_retries = 2, $pacemaker_master_resource = undef, + $polling_interval = undef, + $pagination_limit = undef, ) { include lma_collector::params @@ -46,12 +48,29 @@ define lma_collector::collectd::openstack ( 'Timeout' => "\"${timeout}\"", 'MaxRetries' => "\"${max_retries}\"", } + if $polling_interval { + validate_integer($polling_interval) + $polling_config = { + 'PollingInterval' => "\"${polling_interval}\"" + } + } else { + $polling_config = {} + } + if $pagination_limit { + validate_integer($pagination_limit) + $limit_config = { + 'PaginationLimit' => "\"${pagination_limit}\"" + } + } else { + $limit_config = {} + } if $pacemaker_master_resource { - $real_config = merge($config, {'DependsOnResource' => "\"${pacemaker_master_resource}\""}) + $pacemaker_config = {'DependsOnResource' => "\"${pacemaker_master_resource}\""} } else { - $real_config = $config + $pacemaker_config = {} } + $real_config = merge($config, $pacemaker_config, $polling_config, $limit_config) lma_collector::collectd::python { "openstack_${title}": config => $real_config,