diff --git a/ceilometer/collector.py b/ceilometer/collector.py index 6ac2cab1d1..df4beff71f 100644 --- a/ceilometer/collector.py +++ b/ceilometer/collector.py @@ -70,6 +70,11 @@ class CollectorService(cotyledon.Service): self.event_listener = None self.udp_thread = None + import debtcollector + debtcollector.deprecate("Ceilometer collector service is deprecated." + "Use publishers to push data instead", + version="9.0", removal_version="10.0") + def run(self): if self.conf.collector.udp_address: self.udp_thread = utils.spawn_thread(self.start_udp) diff --git a/devstack/plugin.sh b/devstack/plugin.sh index dbeb60c194..25cce1e46c 100644 --- a/devstack/plugin.sh +++ b/devstack/plugin.sh @@ -267,9 +267,16 @@ function _ceilometer_configure_storage_backend { die $LINENO "Unable to configure unknown CEILOMETER_BACKEND $CEILOMETER_BACKEND" fi + if [ "$CEILOMETER_BACKEND" = 'mysql' ] || [ "$CEILOMETER_BACKEND" = 'postgresql' ] || [ "$CEILOMETER_BACKEND" = 'mongodb' ]; then + sed -i 's/gnocchi:\/\//database:\/\//g' $CEILOMETER_CONF_DIR/event_pipeline.yaml $CEILOMETER_CONF_DIR/pipeline.yaml + fi + # configure panko if is_service_enabled panko-api; then iniadd $CEILOMETER_CONF DEFAULT event_dispatchers panko + if ! grep -q 'panko' $CEILOMETER_CONF_DIR/event_pipeline.yaml ; then + echo ' - direct://?dispatcher=panko' >> $CEILOMETER_CONF_DIR/event_pipeline.yaml + fi fi _ceilometer_drop_database diff --git a/devstack/settings b/devstack/settings index d8ad97d50a..f82513f2e4 100644 --- a/devstack/settings +++ b/devstack/settings @@ -3,8 +3,6 @@ enable_service ceilometer-acompute ceilometer-acentral # Notification Agent enable_service ceilometer-anotification -# Data Collector -enable_service ceilometer-collector # Default directories CEILOMETER_DIR=$DEST/ceilometer diff --git a/doc/source/configuration.rst b/doc/source/configuration.rst index b5b9de6d85..157db4fc27 100644 --- a/doc/source/configuration.rst +++ b/doc/source/configuration.rst @@ -188,7 +188,8 @@ data should be sent after the possible transformations. The names of the publishers should be the same as the related names of the plugins in :file:`setup.cfg`. -The default configuration can be found in `pipeline.yaml`_. +The default configuration can be found in `pipeline.yaml`_. For more details about +how to configure dispatchers under publisher in the :ref:`dispatcher-configuration`. .. _pipeline.yaml: https://git.openstack.org/cgit/openstack/ceilometer/tree/etc/ceilometer/pipeline.yaml diff --git a/doc/source/install/custom.rst b/doc/source/install/custom.rst index 3f48a9ed45..f5e5e6cc7d 100644 --- a/doc/source/install/custom.rst +++ b/doc/source/install/custom.rst @@ -64,6 +64,7 @@ For polling agent using ceilometer-polling.conf, settings like:: Doing this, it's easy to listen/receive data from multiple internal and external services. +.. _dispatcher-configuration: Using multiple dispatchers ========================== diff --git a/doc/source/install/manual.rst b/doc/source/install/manual.rst index d59fd13caa..8987dcab31 100644 --- a/doc/source/install/manual.rst +++ b/doc/source/install/manual.rst @@ -20,6 +20,11 @@ Installing Manually ===================== +.. note:: + + Ceilometer collector service is deprecated. Configure dispatchers under publisher + in pipeline to push data instead. For more details about how to configure + dispatchers in the :ref:`dispatcher-configuration`. Storage Backend Installation ============================ diff --git a/etc/ceilometer/event_pipeline.yaml b/etc/ceilometer/event_pipeline.yaml index a91c46a1c3..6482f4f285 100644 --- a/etc/ceilometer/event_pipeline.yaml +++ b/etc/ceilometer/event_pipeline.yaml @@ -9,4 +9,4 @@ sinks: - name: event_sink transformers: publishers: - - notifier:// + - gnocchi:// diff --git a/etc/ceilometer/pipeline.yaml b/etc/ceilometer/pipeline.yaml index 59e6f8fca6..53106399c2 100644 --- a/etc/ceilometer/pipeline.yaml +++ b/etc/ceilometer/pipeline.yaml @@ -35,7 +35,7 @@ sinks: - name: meter_sink transformers: publishers: - - notifier:// + - gnocchi:// - name: cpu_sink transformers: - name: "rate_of_change" @@ -46,7 +46,7 @@ sinks: type: "gauge" scale: "100.0 / (10**9 * (resource_metadata.cpu_number or 1))" publishers: - - notifier:// + - gnocchi:// - name: cpu_delta_sink transformers: - name: "delta" @@ -55,7 +55,7 @@ sinks: name: "cpu.delta" growth_only: True publishers: - - notifier:// + - gnocchi:// - name: disk_sink transformers: - name: "rate_of_change" @@ -70,7 +70,7 @@ sinks: unit: "\\1/s" type: "gauge" publishers: - - notifier:// + - gnocchi:// - name: network_sink transformers: - name: "rate_of_change" @@ -85,4 +85,4 @@ sinks: unit: "\\1/s" type: "gauge" publishers: - - notifier:// + - gnocchi:// diff --git a/releasenotes/notes/deprecate-ceilometer-collector-b793b91cd28b9e7f.yaml b/releasenotes/notes/deprecate-ceilometer-collector-b793b91cd28b9e7f.yaml new file mode 100644 index 0000000000..beec916790 --- /dev/null +++ b/releasenotes/notes/deprecate-ceilometer-collector-b793b91cd28b9e7f.yaml @@ -0,0 +1,12 @@ +--- +features: + - | + Because of deprecating the collector, the default publishers in + pipeline.yaml and event_pipeline.yaml are now changed using database + instead of notifier. +deprecations: + - | + Collector is no longer supported in this release. The collector + introduces lags in pushing data to backend. To optimize the + architecture, Ceilometer push data through dispatchers using + publishers in notification agent directly.