From f3c74cc4c643459038868905e9e26461fdb82f0d Mon Sep 17 00:00:00 2001 From: Leonardo Borda Date: Thu, 7 Apr 2016 14:45:06 -0400 Subject: [PATCH] Add metering and event ttl config options ceilometer.conf template >= Kilo does not contain metering-time-to-live and event-time-to-live parameters. Add these options so we can control ceilometer database growth. Change-Id: Id5831280daeb582586bfa615268309c4abec5d63 Closes-Bug: 1561220 --- config.yaml | 10 ++++++++++ lib/ceilometer_contexts.py | 6 ++++-- templates/kilo/ceilometer.conf | 2 ++ templates/mitaka/ceilometer.conf | 2 ++ unit_tests/test_ceilometer_contexts.py | 2 ++ 5 files changed, 20 insertions(+), 2 deletions(-) diff --git a/config.yaml b/config.yaml index 0d2dae1..45342db 100644 --- a/config.yaml +++ b/config.yaml @@ -7,6 +7,16 @@ options: default: False type: boolean description: Enable verbose logging. + metering-time-to-live: + type: int + default: -1 + description: | + Number of seconds that samples are kept in the database for (<= 0 means forever) + event-time-to-live: + type: int + default: -1 + description: | + Number of seconds that events are kept in the database for (<= 0 means forever) use-syslog: type: boolean default: False diff --git a/lib/ceilometer_contexts.py b/lib/ceilometer_contexts.py index 836e8b9..9d7fe2c 100644 --- a/lib/ceilometer_contexts.py +++ b/lib/ceilometer_contexts.py @@ -92,9 +92,11 @@ class CeilometerContext(OSContextGenerator): from ceilometer_utils import get_shared_secret ctxt = { - 'api_workers': config('api-workers'), 'port': CEILOMETER_PORT, - 'metering_secret': get_shared_secret() + 'metering_secret': get_shared_secret(), + 'api_workers': config('api-workers'), + 'metering_time_to_live': config('metering-time-to-live'), + 'event_time_to_live': config('event-time-to-live'), } return ctxt diff --git a/templates/kilo/ceilometer.conf b/templates/kilo/ceilometer.conf index da44948..36b543a 100644 --- a/templates/kilo/ceilometer.conf +++ b/templates/kilo/ceilometer.conf @@ -28,6 +28,8 @@ 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 }} [publisher_rpc] metering_secret = {{ metering_secret }} diff --git a/templates/mitaka/ceilometer.conf b/templates/mitaka/ceilometer.conf index d026133..1f52659 100644 --- a/templates/mitaka/ceilometer.conf +++ b/templates/mitaka/ceilometer.conf @@ -26,6 +26,8 @@ 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 }} [publisher] telemetry_secret = {{ metering_secret }} diff --git a/unit_tests/test_ceilometer_contexts.py b/unit_tests/test_ceilometer_contexts.py index fb5b0af..79a4d64 100644 --- a/unit_tests/test_ceilometer_contexts.py +++ b/unit_tests/test_ceilometer_contexts.py @@ -129,6 +129,8 @@ class CeilometerContextsTest(CharmTestCase): 'port': 8777, 'metering_secret': 'mysecret', 'api_workers': 1, + 'metering_time_to_live': -1, + 'event_time_to_live': -1, }) def test_ceilometer_service_context(self):