diff --git a/config.yaml b/config.yaml index e0d327c..7b069c2 100644 --- a/config.yaml +++ b/config.yaml @@ -71,11 +71,15 @@ options: type: string default: openstack description: RabbitMQ virtual host to request access on rabbitmq-server. - api-workers: - type: int - default: 1 + worker-multiplier: + type: float + default: description: | - Number of workers for Ceilometer API server. (>= Kilo). + The CPU core multiplier to use when configuring worker processes for + this service. By default, the number of workers for each daemon is set + to twice the number of CPU cores a service unit has. When deployed in a + LXD container, this default value will be capped to 4 workers unless this + configuration option is set. # Monitoring config nagios_context: type: string diff --git a/lib/ceilometer_contexts.py b/lib/ceilometer_contexts.py index c577fb5..8221a8e 100644 --- a/lib/ceilometer_contexts.py +++ b/lib/ceilometer_contexts.py @@ -103,7 +103,6 @@ class CeilometerContext(OSContextGenerator): ctxt = { 'port': CEILOMETER_PORT, 'metering_secret': get_shared_secret(), - 'api_workers': config('api-workers'), 'metering_time_to_live': int(config('metering-time-to-live')), 'event_time_to_live': int(config('event-time-to-live')), } diff --git a/templates/icehouse/ceilometer.conf b/templates/icehouse/ceilometer.conf index 771c454..5aa31fd 100644 --- a/templates/icehouse/ceilometer.conf +++ b/templates/icehouse/ceilometer.conf @@ -11,6 +11,9 @@ use_syslog = {{ use_syslog }} {% include "parts/rabbitmq" -%} +collector_workers = {{ workers }} +notification_workers = {{ workers }} + [api] port = {{ port }} diff --git a/templates/kilo/ceilometer.conf b/templates/kilo/ceilometer.conf index 1a5cbdd..475de8e 100644 --- a/templates/kilo/ceilometer.conf +++ b/templates/kilo/ceilometer.conf @@ -8,7 +8,9 @@ debug = {{ debug }} verbose = {{ verbose }} use_syslog = {{ use_syslog }} -api_workers = {{ api_workers }} +api_workers = {{ workers }} +collector_workers = {{ workers }} +notification_workers = {{ workers }} {% include "parts/rabbitmq" -%} diff --git a/templates/mitaka/ceilometer.conf b/templates/mitaka/ceilometer.conf index 4693979..4810c29 100644 --- a/templates/mitaka/ceilometer.conf +++ b/templates/mitaka/ceilometer.conf @@ -8,6 +8,10 @@ debug = {{ debug }} verbose = {{ verbose }} use_syslog = {{ use_syslog }} +api_workers = {{ workers }} +collector_workers = {{ workers }} +notification_workers = {{ workers }} + event_pipeline_cfg_file = /etc/ceilometer/event_pipeline_alarm.yaml {% if gnocchi_url -%} @@ -20,7 +24,6 @@ event_dispatchers = database [api] port = {{ port }} -workers = {{ api_workers }} {% if service_host -%} [service_credentials] diff --git a/templates/ocata/ceilometer.conf b/templates/ocata/ceilometer.conf index ad8020d..469ed30 100644 --- a/templates/ocata/ceilometer.conf +++ b/templates/ocata/ceilometer.conf @@ -21,13 +21,12 @@ meter_dispatchers = database transport_url = {{ transport_url }} {%- endif %} -[api] -port = {{ port }} -workers = {{ api_workers }} - [notification] workers = {{ workers }} +[collector] +workers = {{ workers }} + {% if service_host -%} [service_credentials] auth_url = {{ service_protocol }}://{{ service_host }}:{{ service_port }} diff --git a/tests/basic_deployment.py b/tests/basic_deployment.py index 8fafb9d..99eafaf 100644 --- a/tests/basic_deployment.py +++ b/tests/basic_deployment.py @@ -503,6 +503,9 @@ class CeilometerBasicDeployment(OpenStackAmuletDeployment): 'password': ks_rel['service_password']} + if self._get_openstack_release() >= self.xenial_ocata: + del expected['api'] + for section, pairs in expected.iteritems(): ret = u.validate_config_data(unit, conf, section, pairs) if ret: diff --git a/unit_tests/test_ceilometer_contexts.py b/unit_tests/test_ceilometer_contexts.py index d0b7c36..e74bc50 100644 --- a/unit_tests/test_ceilometer_contexts.py +++ b/unit_tests/test_ceilometer_contexts.py @@ -129,7 +129,6 @@ class CeilometerContextsTest(CharmTestCase): self.assertEqual(contexts.CeilometerContext()(), { 'port': 8777, 'metering_secret': 'mysecret', - 'api_workers': 1, 'metering_time_to_live': -1, 'event_time_to_live': -1, }) @@ -143,7 +142,6 @@ class CeilometerContextsTest(CharmTestCase): self.assertEqual(context, { 'port': 8777, 'metering_secret': 'mysecret', - 'api_workers': 1, 'metering_time_to_live': 7776000, 'event_time_to_live': 7776000, })