Merge "Add polling-batch-size config option"

This commit is contained in:
Zuul 2020-09-17 08:12:03 +00:00 committed by Gerrit Code Review
commit 4f63dbfa6a
4 changed files with 90 additions and 0 deletions

View File

@ -278,3 +278,10 @@ options:
From Pike onwards, the default ceilometer pollster collection runs a From Pike onwards, the default ceilometer pollster collection runs a
limited set of pollsters. Enable this to run all the available pollsters. limited set of pollsters. Enable this to run all the available pollsters.
This setting only takes effect from Queens onwards. This setting only takes effect from Queens onwards.
polling-batch-size:
type: int
default: 50
description: |
The number of measures from same pollster to batch together for sending
to the notification agent and then to the publisher. Set to 0 to disable.
This config is only effective for OpenStack release Rocky or newer.

View File

@ -112,6 +112,7 @@ class CeilometerContext(OSContextGenerator):
'event_time_to_live': int(config('event-time-to-live')), 'event_time_to_live': int(config('event-time-to-live')),
'polling_interval': int(config('polling-interval')), 'polling_interval': int(config('polling-interval')),
'enable_all_pollsters': config('enable-all-pollsters'), 'enable_all_pollsters': config('enable-all-pollsters'),
'polling_batch_size': config('polling-batch-size'),
} }
return ctxt return ctxt

View File

@ -0,0 +1,78 @@
# rocky
###############################################################################
# [ WARNING ]
# ceilometer configuration file maintained by Juju
# local changes may be overwritten.
###############################################################################
[DEFAULT]
debug = {{ debug }}
verbose = {{ verbose }}
use_syslog = {{ use_syslog }}
event_pipeline_cfg_file = /etc/ceilometer/event_pipeline.yaml
{% if gnocchi_url -%}
meter_dispatchers = gnocchi
event_dispatchers = gnocchi
{% elif db_host or db_mongo_servers -%}
meter_dispatchers = database
{%- endif %}
{% if transport_url -%}
transport_url = {{ transport_url }}
{%- endif %}
[notification]
workers = {{ workers }}
{% if messaging_urls -%}
{% for item in messaging_urls -%}
messaging_urls = {{ item }}
{% endfor %}
{% endif %}
[polling]
batch_size = {{ polling_batch_size }}
{% if service_host -%}
[service_credentials]
auth_url = {{ service_protocol }}://{{ service_host }}:{{ service_port }}
project_name = {{ admin_tenant_name }}
username = {{ admin_user }}
password = {{ admin_password }}
{% if api_version == "3" -%}
project_domain_name = {{ admin_domain_name }}
user_domain_name = {{ admin_domain_name }}
{% else -%}
project_domain_name = default
user_domain_name = default
{% endif -%}
auth_type = password
{% if use_internal_endpoints -%}
interface = internalURL
{%- endif %}
{% endif -%}
{% if db_host or db_mongo_servers -%}
[database]
{% if db_replset: -%}
connection = mongodb://{{ db_mongo_servers }}/{{ db_name }}?readPreference=primaryPreferred&replicaSet={{ db_replset }}
mongodb_replica_set = {{ db_replset }}
{% else -%}
connection = mongodb://{{ db_host }}:{{ db_port }}/{{ db_name }}
{% endif %}
metering_time_to_live = {{ metering_time_to_live }}
event_time_to_live = {{ event_time_to_live }}
{%- endif %}
[publisher]
telemetry_secret = {{ metering_secret }}
{% if gnocchi_url -%}
[dispatcher_gnocchi]
filter_service_activity = False
archive_policy = {{ archive_policy }}
url = {{ gnocchi_url }}
{%- endif %}
{% include "section-keystone-authtoken-mitaka" %}
{% include "section-oslo-messaging-rabbit-ocata" %}

View File

@ -133,6 +133,7 @@ class CeilometerContextsTest(CharmTestCase):
'event_time_to_live': -1, 'event_time_to_live': -1,
'polling_interval': 300, 'polling_interval': 300,
'enable_all_pollsters': False, 'enable_all_pollsters': False,
'polling_batch_size': 50,
}) })
@patch.object(utils, 'get_shared_secret') @patch.object(utils, 'get_shared_secret')
@ -148,6 +149,7 @@ class CeilometerContextsTest(CharmTestCase):
'event_time_to_live': 7776000, 'event_time_to_live': 7776000,
'polling_interval': 300, 'polling_interval': 300,
'enable_all_pollsters': False, 'enable_all_pollsters': False,
'polling_batch_size': 50,
}) })
self.assertTrue(type(context['metering_time_to_live']) is int) self.assertTrue(type(context['metering_time_to_live']) is int)
self.assertTrue(type(context['event_time_to_live']) is int) self.assertTrue(type(context['event_time_to_live']) is int)
@ -164,6 +166,7 @@ class CeilometerContextsTest(CharmTestCase):
'event_time_to_live': -1, 'event_time_to_live': -1,
'polling_interval': 300, 'polling_interval': 300,
'enable_all_pollsters': True, 'enable_all_pollsters': True,
'polling_batch_size': 50,
}) })
@patch.object(utils, 'get_shared_secret') @patch.object(utils, 'get_shared_secret')
@ -178,6 +181,7 @@ class CeilometerContextsTest(CharmTestCase):
'event_time_to_live': -1, 'event_time_to_live': -1,
'polling_interval': 900, 'polling_interval': 900,
'enable_all_pollsters': False, 'enable_all_pollsters': False,
'polling_batch_size': 50,
}) })
def test_ceilometer_service_context(self): def test_ceilometer_service_context(self):