Merge "Add polling.yaml to managed configs"
This commit is contained in:
commit
5d9d56add4
13
config.yaml
13
config.yaml
|
@ -255,3 +255,16 @@ options:
|
|||
description: |
|
||||
When set the content is written to /etc/ceilometer/pipeline.yaml, by
|
||||
default the package's file is used.
|
||||
polling-interval:
|
||||
type: int
|
||||
default: 300
|
||||
description: |
|
||||
Number of seconds between Ceilometer central agent pollster collections.
|
||||
This setting only takes effect from Queens onwards.
|
||||
enable-all-pollsters:
|
||||
type: boolean
|
||||
default: False
|
||||
description: |
|
||||
From Pike onwards, the default ceilometer pollster collection runs a
|
||||
limited set of pollsters. Enable this to run all the available pollsters.
|
||||
This setting only takes effect from Queens onwards.
|
||||
|
|
|
@ -106,6 +106,8 @@ class CeilometerContext(OSContextGenerator):
|
|||
'metering_secret': get_shared_secret(),
|
||||
'metering_time_to_live': int(config('metering-time-to-live')),
|
||||
'event_time_to_live': int(config('event-time-to-live')),
|
||||
'polling_interval': int(config('polling-interval')),
|
||||
'enable_all_pollsters': config('enable-all-pollsters'),
|
||||
}
|
||||
return ctxt
|
||||
|
||||
|
|
|
@ -71,6 +71,7 @@ HAPROXY_CONF = '/etc/haproxy/haproxy.cfg'
|
|||
CEILOMETER_CONF_DIR = "/etc/ceilometer"
|
||||
CEILOMETER_CONF = "%s/ceilometer.conf" % CEILOMETER_CONF_DIR
|
||||
CEILOMETER_PIPELINE_YAML = "%s/pipeline.yaml" % CEILOMETER_CONF_DIR
|
||||
POLLING_CONF = "%s/polling.yaml" % CEILOMETER_CONF_DIR
|
||||
CEILOMETER_API_SYSTEMD_CONF = (
|
||||
'/etc/systemd/system/ceilometer-api.service.d/override.conf'
|
||||
)
|
||||
|
@ -160,6 +161,11 @@ QUEENS_CONFIG_FILES = OrderedDict([
|
|||
AMQPListenersContext(ssl_dir=CEILOMETER_CONF_DIR)],
|
||||
'services': QUEENS_SERVICES
|
||||
}),
|
||||
(POLLING_CONF, {
|
||||
'hook_contexts': [
|
||||
CeilometerContext()],
|
||||
'services': QUEENS_SERVICES
|
||||
}),
|
||||
])
|
||||
|
||||
CONFIG_FILES = OrderedDict([
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
---
|
||||
sources:
|
||||
- name: juju_pollsters
|
||||
interval: {{ polling_interval }}
|
||||
meters:
|
||||
{%- if enable_all_pollsters %}
|
||||
- "*"
|
||||
{%- else %}
|
||||
- cpu
|
||||
- cpu_l3_cache
|
||||
- memory.usage
|
||||
- network.incoming.bytes
|
||||
- network.incoming.packets
|
||||
- network.outgoing.bytes
|
||||
- network.outgoing.packets
|
||||
- disk.device.read.bytes
|
||||
- disk.device.read.requests
|
||||
- disk.device.write.bytes
|
||||
- disk.device.write.requests
|
||||
- hardware.cpu.util
|
||||
- hardware.memory.used
|
||||
- hardware.memory.total
|
||||
- hardware.memory.buffer
|
||||
- hardware.memory.cached
|
||||
- hardware.memory.swap.avail
|
||||
- hardware.memory.swap.total
|
||||
- hardware.system_stats.io.outgoing.blocks
|
||||
- hardware.system_stats.io.incoming.blocks
|
||||
- hardware.network.ip.incoming.datagrams
|
||||
- hardware.network.ip.outgoing.datagrams
|
||||
{%- endif %}
|
|
@ -131,6 +131,8 @@ class CeilometerContextsTest(CharmTestCase):
|
|||
'metering_secret': 'mysecret',
|
||||
'metering_time_to_live': -1,
|
||||
'event_time_to_live': -1,
|
||||
'polling_interval': 300,
|
||||
'enable_all_pollsters': False,
|
||||
})
|
||||
|
||||
@patch.object(utils, 'get_shared_secret')
|
||||
|
@ -144,10 +146,40 @@ class CeilometerContextsTest(CharmTestCase):
|
|||
'metering_secret': 'mysecret',
|
||||
'metering_time_to_live': 7776000,
|
||||
'event_time_to_live': 7776000,
|
||||
'polling_interval': 300,
|
||||
'enable_all_pollsters': False,
|
||||
})
|
||||
self.assertTrue(type(context['metering_time_to_live']) is int)
|
||||
self.assertTrue(type(context['event_time_to_live']) is int)
|
||||
|
||||
@patch.object(utils, 'get_shared_secret')
|
||||
def test_ceilometer_context_enable_all_pollsters(self, secret):
|
||||
secret.return_value = 'mysecret'
|
||||
self.test_config.set('enable-all-pollsters', True)
|
||||
context = contexts.CeilometerContext()()
|
||||
self.assertEqual(context, {
|
||||
'port': 8777,
|
||||
'metering_secret': 'mysecret',
|
||||
'metering_time_to_live': -1,
|
||||
'event_time_to_live': -1,
|
||||
'polling_interval': 300,
|
||||
'enable_all_pollsters': True,
|
||||
})
|
||||
|
||||
@patch.object(utils, 'get_shared_secret')
|
||||
def test_ceilometer_context_polling_interval(self, secret):
|
||||
secret.return_value = 'mysecret'
|
||||
self.test_config.set('polling-interval', 900)
|
||||
context = contexts.CeilometerContext()()
|
||||
self.assertEqual(context, {
|
||||
'port': 8777,
|
||||
'metering_secret': 'mysecret',
|
||||
'metering_time_to_live': -1,
|
||||
'event_time_to_live': -1,
|
||||
'polling_interval': 900,
|
||||
'enable_all_pollsters': False,
|
||||
})
|
||||
|
||||
def test_ceilometer_service_context(self):
|
||||
self.relation_ids.return_value = ['ceilometer-service:0']
|
||||
self.related_units.return_value = ['ceilometer/0']
|
||||
|
|
|
@ -176,6 +176,9 @@ class CeilometerUtilsTest(CharmTestCase):
|
|||
{'/etc/ceilometer/ceilometer.conf': [
|
||||
'ceilometer-agent-central',
|
||||
'ceilometer-agent-notification'],
|
||||
'/etc/ceilometer/polling.yaml': [
|
||||
'ceilometer-agent-central',
|
||||
'ceilometer-agent-notification'],
|
||||
}
|
||||
)
|
||||
|
||||
|
|
Loading…
Reference in New Issue