diff --git a/docs/packstack.rst b/docs/packstack.rst index 61d1e789e..d805bc797 100644 --- a/docs/packstack.rst +++ b/docs/packstack.rst @@ -1031,6 +1031,9 @@ Ceilometer Config parameters **CONFIG_CEILOMETER_SERVICE_NAME** Ceilometer service name. ['httpd', 'ceilometer'] +**CONFIG_CEILOMETER_METERING_BACKEND** + Backend driver for Telemetry's metering backend configuration. ['database', 'gnocchi'] + MONGODB Config parameters ------------------------- diff --git a/packstack/plugins/ceilometer_800.py b/packstack/plugins/ceilometer_800.py index b2fe2a248..841872455 100644 --- a/packstack/plugins/ceilometer_800.py +++ b/packstack/plugins/ceilometer_800.py @@ -87,6 +87,17 @@ def initConfig(controller): "USE_DEFAULT": True, "NEED_CONFIRM": False, "CONDITION": False}, + + {"CONF_NAME": "CONFIG_CEILOMETER_METERING_BACKEND", + "CMD_OPTION": "ceilometer-metering-backend", + "PROMPT": "Enter the metering backend to use", + "OPTION_LIST": ['database', 'gnocchi'], + "VALIDATORS": [validators.validate_options], + "DEFAULT_VALUE": 'database', + "MASK_INPUT": False, + "USE_DEFAULT": True, + "NEED_CONFIRM": False, + "CONDITION": False}, ], "MONGODB": [ diff --git a/packstack/plugins/gnocchi_820.py b/packstack/plugins/gnocchi_790.py similarity index 100% rename from packstack/plugins/gnocchi_820.py rename to packstack/plugins/gnocchi_790.py diff --git a/packstack/puppet/templates/ceilometer.pp b/packstack/puppet/templates/ceilometer.pp index 97ae10ab7..3dd996fd2 100644 --- a/packstack/puppet/templates/ceilometer.pp +++ b/packstack/puppet/templates/ceilometer.pp @@ -3,6 +3,10 @@ $config_mongodb_host = hiera('CONFIG_MONGODB_HOST_URL') $config_ceilometer_coordination_backend = hiera('CONFIG_CEILOMETER_COORDINATION_BACKEND') +$config_ceilometer_metering_backend = hiera('CONFIG_CEILOMETER_METERING_BACKEND') + +$config_gnocchi_host = hiera('CONFIG_KEYSTONE_HOST_URL') + if $config_ceilometer_coordination_backend == 'redis' { $redis_ha = hiera('CONFIG_REDIS_HA') $redis_host = hiera('CONFIG_REDIS_MASTER_HOST_URL') @@ -39,7 +43,20 @@ class { '::ceilometer::db': database_connection => "mongodb://${config_mongodb_host}:27017/ceilometer", } -class { '::ceilometer::collector': } +class { '::ceilometer::collector': + meter_dispatcher => $config_ceilometer_metering_backend, +} + +if $config_ceilometer_metering_backend == 'gnocchi' { + + include ::gnocchi::client + class { '::ceilometer::dispatcher::gnocchi': + filter_service_activity => false, + url => "http://${config_gnocchi_host}:8041", + archive_policy => 'high', + resources_definition_file => 'gnocchi_resources.yaml', + } +} class { '::ceilometer::agent::notification': } @@ -77,6 +94,10 @@ if $ceilometer_service_name == 'httpd' { ssl => false, } + if hiera('CONFIG_GNOCCHI_INSTALL') == 'y' { + apache::listen { '8041': } + } + if hiera('CONFIG_KEYSTONE_SERVICE_NAME') == 'httpd' { apache::listen { '5000': } apache::listen { '35357': }