Victoria Series Release Notes


Bug Fixes

  • [bug 1940660] Fixes an issue with the Swift pollster where the [service_credentials] cafile option was not used. This could prevent communication with TLS-enabled Swift APIs.


New Features

  • Add dynamic pollster system. The dynamic pollster system enables operators to gather new metrics on the fly (without needing to code pollsters).

  • Add the support for non-OpenStack APIs in the dynamic pollster system. This extension enables operators to create pollster on the fly to handle metrics from systems such as the RadosGW API.

  • Include a publisher for the Monasca API. A monasca:// pipeline sink will send data to a Monasca instance, using credentials configured in ceilometer.conf. This functionality was previously available in the Ceilosca project (

Upgrade Notes

  • Python 2.7 support has been dropped. Last release of ceilometer to support py2.7 is OpenStack Train. The minimum version of Python now supported by ceilometer is Python 3.6.

Bug Fixes

  • [bug 1848286] Enable load balancer metrics by adding the loadbalancer resource type, allowing Gnocchi to capture measurement data for Octavia load balancers.


Added new tool ceilometer-status upgrade check.

New Features

  • Add availability_zone attribute to gnocchi instance resources. Populates this attribute by consuming instance.create.end events.

  • New framework for ceilometer-status upgrade check command is added. This framework allows adding various checks which can be run before a Ceilometer upgrade to ensure if the upgrade can be performed safely.

Upgrade Notes

  • To take advantage of this new feature you will need to update your gnocchi_resources.yaml file. See the example file for an example. You will need to ensure all required attributes of an instance are specified in the event_attributes.

  • Operator can now use new CLI tool ceilometer-status upgrade check to check if Ceilometer deployment can be safely upgraded from N-1 to N release.

  • Remove deprecated option meter_definitions_cfg_file, use meter_definitions_dirs to configure meter notification file.

  • The following commands are no longer required to be listed in your rootwrap configuration: ipmitool.

Security Issues

  • Privsep transitions. Ceilometer is transitioning from using the older style rootwrap privilege escalation path to the new style Oslo privsep path. This should improve performance and security of Ceilometer in the long term.

  • Privsep daemons are now started by Ceilometer when required. These daemons can be started via rootwrap if required. rootwrap configs therefore need to be updated to include new privsep daemon invocations.


New Features

  • Add new json output option for the existing file publisher.

  • new metrics are available for snmp polling hardware.cpu.user, hardware.cpu.nice, hardware.cpu.system, hardware.cpu.idle, hardware.cpu.wait, hardware.cpu.kernel, hardware.cpu.interrupt. They replace deprecated hardware.cpu.util and hardware.system_stats.cpu.idle.

Upgrade Notes

  • Remove deprecated option batch_polled_samples.

  • The deprecated disk.* meters have been removed. Use the disk.device.* meters instead.

  • The deprecated meter for compute where removed:

    • disk.write.requests.rate


    • disk.write.bytes.rate


    • disk.device.write.requests.rate


    • disk.device.write.bytes.rate

  • The deprecated meter_definitions_cfg_file option has been removed.

  • The deprecated workload partitioning for notification agent has been removed.

  • The notifier publisher options metering_topic and event_topic are deprecated and will be removed. Use the topic query parameter in the notifier publisher URL instead.

  • The support for transformers has been removed from the pipeline.

Deprecation Notes

  • The Ceilometer event subsystem and pipeline is now deprecated and will be removed in a future release.

  • metrics hardware.cpu.util and hardware.system_stats.cpu.idle are now deprecated. Other hardware.cpu.* metrics should be used instead.


New Features

  • Add and disk.device.write.latency meters to capture total time used by read or write operations.

  • launched_at/created_at/deleted_at of Nova instances are now tracked.

  • Add support for configuring the size of samples the poller will send in each batch.

  • A new pulisher have been added to push data to Prometheus Pushgateway.

  • Archive policies can now be configured per metrics in gnocchi_resources.yaml. A default list of archive policies is now created by Ceilometer. They are called “ceilometer-low-rate” for all IOs metrics and “ceilometer-low” for others.

  • use memory usable metric from libvirt memoryStats if available.

Known Issues

  • Ceilometer created metrics that could never get measures depending on the polling configuration. Metrics are now created only if Ceilometer gets at least a measure for them.

Upgrade Notes

  • ceilometer-upgrade must be run to build IPMI sensor resource in Gnocchi.

  • batch_size option added to [polling] section of configuration. Use batch_size=0 to disable batching of samples.

  • The deprecated gnocchi_dispatcher option group has been removed.

  • Deprecated rgw.* meters have been removed. Use radosgw.* instead.

  • Ceilometer now creates it own archive policies in Gnocchi and use them to create metrics in Gnocchi. Old metrics kept their current archive policies and will not be updated with ceilometer-upgrade. Only newly created metrics will be impacted. Archive policy can still be overridden with the publisher url (e.g: gnocchi://archive_policy=high).

Deprecation Notes

  • The option batch_polled_samples in the [DEFAULT] section is deprecated. Use batch_size option in [polling] to configure and/or disable batching.

  • cpu_util and *.rate meters are deprecated and will be removed in future release in favor of the Gnocchi rate calculation equivalent.

  • Usage of transformers in Ceilometer pipelines is deprecated. Transformers in Ceilometer have never computed samples correctly when you have multiple workers. This functionality can be done by the storage backend easily without all issues that Ceilometer has. For example, the rating is already computed in Gnocchi today.

  • Pipeline Partitioning is also deprecated. This was only useful to workaround of some issues that tranformers has.

Bug Fixes

  • Ceilometer previously did not create IPMI sensor data from IPMI agent or Ironic in Gnocchi. This data is now pushed to Gnocchi.


New Features

  • Add support to capture volume capacity usage details from cinder. This data is extracted from notifications sent by Cinder starting in Ocata.

  • Workload partitioning of notification agent is now split into queues based on pipeline type (sample, event, etc…) rather than per individual pipeline. This will save some memory usage specifically for pipeline definitions with many source/sink combinations.

  • The notification-agent can now be configured to either build meters or events. By default, the notification agent will continue to load both pipelines and build both data models. To selectively enable a pipeline, configure the pipelines option under the [notification] section.

    Addition pipelines can be created following the format used by existing pipelines.

  • Add* and hardware.disk.write.* metrics to capture diskio details.

Upgrade Notes

  • The deprecated Ceilometer API has been removed.

  • The collector service is removed. From Ocata, it’s possible to edit the pipeline.yaml and event_pipeline.yaml files and modify the publisher to provide the same functionality as collector dispatcher. You may change publisher to ‘gnocchi’, ‘http’, ‘panko’, or any combination of available publishers listed in documentation.

  • Use radosgw.* to enable/disable radosgw meters explicitly rather than rgw.*

  • If workload partitioning of the notification agent is enabled, the notification agent should not run alongside pre-Queens agents. Doing so may result in missed samples when leveraging transformations. To upgrade without loss of data, set notification_control_exchanges option to empty so only existing ceilometer-pipe-* queues are processed. Once cleared, reset notification_control_exchanges option and launch the new notification agent(s). If workload_partitioning is not enabled, no special steps are required.

  • The deprecated support of configure polling in the pipeline.yaml file has been removed. Ceilometer now only uses the polling.yaml file for polling configuration.

  • The deprecated compute.workload_partitioning option has been removed in favor of compute.instance_discovery_method.

  • Remove direct publisher and use the explicit publisher instead.

  • The deprecated control exchange options have been removed.

  • The deprecated file dispatcher has been removed.

  • The Gnocchi dispatcher has been removed and replaced by a native Gnocchi publisher. The configuration options from the [dispatcher_gnocchi] has been removed and should be passed via the URL in pipeline.yaml. The service authentication override can be done by adding specific credentials to a [gnocchi] section instead.

  • The deprecated http dispatcher has been removed.

  • The deprecated kafka publisher has been removed, use NotifierPublisher instead.

  • The deprecated nova_http_log_debug option has been removed.

  • The deprecated pollster-list option has been removed.

Deprecation Notes

  • disk.* aggregated metrics for instance are deprecated, in favor of the per disk metrics (disk.device.*). Now, it’s up to the backend to provide such aggregation feature. Gnocchi already provides this.

  • Previously, to enable/disable radosgw.* meters, you must define entry_point name rather than meter name. This is corrected so you do not need to be aware of entry_point naming. Use radosgw.* to enable/disable radosgw meters explicitly rather than rgw.*. rgw.* support is deprecated and will be removed in Rocky.

  • The shuffle_time_before_polling_task option has been removed. This option never worked in the way it was originally intended too.

Bug Fixes

  • Fix ability to enable/disable radosgw.* meters explicitly



Network Statistics From OpenDaylight.

New Features

  • Add memory swap metric for VM, including ‘’ and ‘memory.swap.out’.

  • Because of deprecating the collector, the default publishers in pipeline.yaml and event_pipeline.yaml are now changed using database instead of notifier.

  • Ceilometer supports generic notifier to publish data and allow user to customize parameters such as topic, transport driver and priority. The publisher configuration in pipeline.yaml can be notifer://[notifier_ip]:[notifier_port]?topic=[topic]&driver=driver&max_retry=100 Not only rabbit driver, but also other driver like kafka can be used.

  • In the ‘publishers’ section of a meter/event pipeline definition, https:// can now be used in addition to http://. Furthermore, either Basic or client-certificate authentication can be used (obviously, client cert only makes sense in the https case). For Basic authentication, use the form http://username:password@hostname/. For client certificate authentication pass the client certificate’s path (and the key file path, if the key is not in the certificate file) using the parameters ‘clientcert’ and ‘clientkey’, e.g. https://hostname/path?clientcert=/path/to/cert&clientkey=/path/to/key. Any parameters or credentials used for http(s) publishers are removed from the URL before the actual HTTP request is made.

  • Add a ceilometer driver to collect network statistics information using REST APIs exposed by network-statistics module in OpenDaylight.

  • Add support for network statistics meters with gnocchi

  • A new option named max_parallel_requests is available to control the maximum number of parallel requests that can be executed by the agents. This option also replaces the poolsize option of the HTTP publisher.

  • The tenant (project) discovery code in the polling agent now scans for tenants in all available domains.

  • Support loading multiple meter definition files and allow users to add their own meter definitions into several files according to different types of metrics under the directory of /etc/ceilometer/meters.d.

  • Add a new publisher for pushing samples or events to a Zaqar queue.

Upgrade Notes

  • Add a tool for migrating metrics data from Ceilometer’s native storage to Gnocchi. Since we have deprecated Ceilometer API and the Gnocchi will be the recommended metrics data storage backend.

  • Ceilometer now leverages the latest distribution mechanism provided by the tooz library. Therefore the options coordination.retry_backoff and coordination.max_retry_interval do not exist anymore.

Deprecation Notes

  • 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.

  • Allow users to add additional exchanges in ceilometer.conf instead of hardcoding exchanges. Now original http_control_exchanges is being deprecated and renamed notification_control_exchanges. Besides, the new option is integrated with other exchanges in default EXCHANGE_OPTS to make it available to extend additional exchanges.

  • Kafka publisher is deprecated to use generic notifier instead.

  • Deprecating support for enabling pollsters via command line. Meter and pollster enablement should be configured via polling.yaml file.

  • Previously deprecated kwapi meters are not removed.

  • Usage of pipeline.yaml for polling configuration is now deprecated. The dedicated polling.yaml should be used instead.

  • The pipeline dynamic refresh code has been removed. Ceilometer relies on the cotyledon library for a few releases which provides reload functionality by sending the SIGHUP signal to the process. This achieves the same feature while making sure the reload is explicit once the file is correctly and entirely written to the disk, avoiding the failing load of half-written files.

Bug Fixes

  • The transport_url defined in [oslo_messaging_notifications] was never used, which contradicts the oslo_messaging documentation. This is now fixed.

Other Notes

  • Ship YAML files to ceilometer/pipeline/data/ make it convenient to update all the files on upgrade. Users can copy yaml files from /usr/share/ceilometer and customise their own files located in /etc/ceilometer/.



In an effort to minimise the noise, Ceilometer will no longer produce meters which have no measurable data associated with it. Image meter only captures state information which is already captured in events and other meters.

Samples are required to measure some aspect of a resource. Samples not measuring anything will be dropped.

New Features

  • In the [dispatcher_http] section of ceilometer.conf, batch_mode can be set to True to activate sending meters and events in batches, or False (default value) to send each meter and event with a fresh HTTP call.

  • Ceilometer sets up the HTTPProxyToWSGI middleware in front of Ceilometer. The purpose of this middleware is to set up the request URL correctly in case there is a proxy (for instance, a loadbalancer such as HAProxy) in front of Ceilometer. So, for instance, when TLS connections are being terminated in the proxy, and one tries to get the versions from the / resource of Ceilometer, one will notice that the protocol is incorrect; It will show ‘http’ instead of ‘https’. So this middleware handles such cases. Thus helping Keystone discovery work correctly. The HTTPProxyToWSGI is off by default and needs to be enabled via a configuration value.

  • The Ceilometer compute agent can now retrieve some instance metadata from the metadata libvirt API instead of polling the Nova API. Since Mitaka, Nova fills this metadata with some information about the instance. To enable this feature you should set [compute]/instance_discovery_method = libvirt_metadata in the configuration file. The only downside of this method is that user_metadata (and some other instance attributes) are no longer part of the samples created by the agent. But when Gnocchi is used as backend, this is not an issue since Gnocchi doesn’t store resource metadata aside of the measurements. And the missing informations are still retrieved through the Nova notifications and will fully update the resource information in Gnocchi.

  • Add support of metering the size of cinder volume/snapshot/backup. Like other meters, these are useful for billing system.

Upgrade Notes

  • Configuration values can passed in via the querystring of publisher in pipeline. For example, rather than setting target, timeout, verify_ssl, and batch_mode under [dispatcher_http] section of conf, you can specify http://<target>/?verify_ssl=True&batch=True&timeout=10. Use raw_only=1 if only the raw details of event are required.

  • Any existing commands utilising image meter should be switched to image.size meter which will provide equivalent functionality

  • The instance meter no longer will be generated. For equivalent functionality, perform the exact same query on any compute meter such as cpu,, memory.usage, network.incoming.bytes, etc…

  • Ceilometer legacy backends and Ceilometer API are now deprecated. Polling all nova instances from compute agent is no more required with Gnocchi. So we switch the [compute]instance_discovery_method to libvirt_metadata. To switch back to the old deprecated behavior you can set it back to ‘naive’.

  • If you are using Gnocchi as backend it’s strongly recommended to switch [compute]/instance_discovery_method to libvirt_metadata. This will reduce the load on the Nova API especially if you have many compute nodes.

  • The api.pecan_debug option has been removed.

  • Pipeline processing in polling agents was removed in Liberty cycle. A new polling specific definition file is created to handle polling functionality and pipeline definition file is now reserved exclusively for transformations and routing. The polling.yaml file follows the same syntax as the pipeline.yaml but only handles polling attributes such as interval, discovery, resources, meter matching. It is configured by setting cfg_file under the polling section.If no polling definition file is found, it will fallback to reuse pipeline_cfg_file.

Deprecation Notes

  • Ceilometer API is deprecated. Use the APIs from Aodh (alarms), Gnocchi (metrics), and/or Panko (events).

  • With collector service being deprecated, we now have to address the duplication between dispatchers and publishers. The file dispatcher is now marked as deprecated. Use the file publisher to push samples into a file.

  • As the collector service is being deprecated, the duplication of publishers and dispatchers is being addressed. The http dispatcher is now marked as deprecated and the recommended path is to use http publisher.

  • The image meter is dropped in favour of image.size meter.

  • The instance meter no longer will be generated.

  • The [compute]/workload_partitioning = True is deprecated in favor of [compute]/instance_discovery_method = workload_partitioning

Bug Fixes

  • A local cache is used when polling instance metrics to minimise calls Nova API. A new option is added resource_cache_expiry to configure a time to live for cache before it expires. This resolves issue where migrated instances are not removed from cache. This is only relevant when instance_discovery_method is set to naive. It is recommended to use libvirt_metadata if possible.

Other Notes

  • The Events API (exposed at /v2/events) which was deprecated has been removed. The Panko project is now responsible for providing this API and can be installed separately.

  • The deprecated ceilometer-dbsync has been removed. Use ceilometer-upgrade instead.


Ceilometer backends are no more only databases but also REST API like Gnocchi. So ceilometer-dbsync binary name doesn’t make a lot of sense and have been renamed ceilometer-upgrade. The new binary handles database schema upgrade like ceilometer-dbsync does, but it also handle any changes needed in configured ceilometer backends like Gnocchi.

New Features

  • Add four new meters, including perf.cpu.cycles for the number of cpu cycles one instruction needs, perf.instructions for the count of instructions, perf.cache_references for the count of cache hits and cache_misses for the count of caches misses.

Upgrade Notes

  • Batching is enabled by default now when coordinated workers are enabled. Depending on load, it is recommended to scale out the number of pipeline_processing_queues to improve distribution. batch_size should also be configured accordingly.

Deprecation Notes

  • The event database dispatcher is now deprecated. It has been moved to a new project, alongside the Ceilometer API for /v2/events, called Panko.

  • The Kwapi pollsters are deprecated and will be removed in the next major version of Ceilometer.

  • For backward compatibility reason we temporary keep ceilometer-dbsync, at least for one major version to ensure deployer have time update their tooling.

Bug Fixes

  • Fix to improve handling messages in environments heavily backed up. Previously, notification handlers greedily grabbed messages from queues which could cause ordering issues. A fix was applied to sequentially process messages in a single thread to prevent ordering issues.

New Features

  • Added support for magnum bay CRUD events, event_type is ‘magnum.bay.*’.

  • In the [dispatcher_http] section of ceilometer.conf, verify_ssl can be set to True to use system-installed certificates (default value) or False to ignore certificate verification (use in development only!). verify_ssl can also be set to the location of a certificate file e.g. /some/path/cert.crt (use for self-signed certs) or to a directory of certificates. The value is passed as the ‘verify’ option to the underlying requests method, which is documented at

  • Add two new meters, including and memory.bandwidth.local, to get memory bandwidth statistics based on Intel CMT feature.

  • Since the Glance v1 APIs won’t be maintained any more, this change add the support of glance v2 in images pollsters.

Upgrade Notes

  • The option glance_page_size has been removed because it’s not actually needed.

Bug Fixes

  • [bug 1597618] Add the full support of snmp v3 user security model.

New Features

  • Add support of batch recording metering data to mongodb backend, since the pymongo support insert_many interface which can be used to batch record items, in “big-data” scenarios, this change can improve the performance of metering data recording.

Upgrade Notes

  • The options requeue_event_on_dispatcher_error and requeue_sample_on_dispatcher_error have been enabled and removed.

Critical Issues

  • The previous configuration options default for requeue_sample_on_dispatcher_error and requeue_event_on_dispatcher_error allowed to lose data very easily: if the dispatcher failed to send data to the backend (e.g. Gnocchi is down), then the dispatcher raised and the data were lost forever. This was completely unacceptable, and nobody should be able to configure Ceilometer in that way.”

Bug Fixes

  • [bug 1578128] Add a tool that allow users to drop the legacy alarm and alarm_history tables.

  • [bug 1491509] Patch to unify timestamp in samples polled by pollsters. Set the time point polling starts as timestamp of samples, and drop timetamping in pollsters.