Mitaka Release Notes


New Features

  • Add support for batch processing of messages from queue. This will allow the collector and notification agent to grab multiple messages per thread to enable more efficient processing.

  • To minimise load on Nova API, an additional configuration option was added to control discovery interval vs metric polling interval. If resource_update_interval option is configured in compute section, the compute agent will discover new instances based on defined interval. The agent will continue to poll the discovered instances at the interval defined by pipeline.

  • [bug 1480333] Support ability to configure collector to capture events or meters mutally exclusively, rather than capturing both always.

  • Support for CORS is added. More information can be found [here]

  • Support resource caching in Gnocchi dispatcher to improve write performance to avoid additional queries.

  • Gnocchi dispatcher now uses client rather than direct http requests

  • [bug 1518338] Add support for storing SNMP metrics in Gnocchi.This functionality requires Gnocchi v2.1.0 to be installed.

  • Add support for Keystone v3 authentication

  • Ceilometer alarms code is now fully removed from code base. Equivalent functionality is handled by Aodh.

  • Support for CADF-only payload in HTTP dispatcher is dropped as audit middleware in pyCADF was dropped in Kilo cycle.

  • Remove eventlet from Ceilometer in favour of threaded approach

  • RPC collector support is dropped. The queue-based notifier publisher and collector was added as the recommended alternative as of Icehouse cycle.

  • Support for polling Neutron’s LBaaS v2 API was added as v1 API in Neutron is deprecated. The same metrics are available between v1 and v2.

  • [bug 1513731] Add support for hardware cpu_util in snmp.yaml

  • [bug 1506959] Add support to query unique set of meter names rather than meters associated with each resource. The list is available by adding unique=True option to request.

Known Issues

  • Neutron API is not designed to be polled against. When polling against Neutron is enabled, Ceilometer’s polling agents may generage a significant load against the Neutron API. It is recommended that a dedicated API be enabled for polling while Neutron’s API is improved to handle polling.

Upgrade Notes

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

  • batch_size and batch_timeout configuration options are added to both [notification] and [collector] sections of configuration. The batch_size controls the number of messages to grab before processing. Similarly, the batch_timeout defines the wait time before processing.

  • The api-paste.ini file can be modified to include or exclude the CORs middleware. Additional configurations can be made to middleware as well.

  • gnocchiclient library is now a requirement if using ceilometer+gnocchi.

  • gnocchi_resources.yaml in Ceilometer should be updated.

  • To utilize the new policy support. The policy.json file should be updated accordingly. The pre-existing policy.json file will continue to function as it does if policy changes are not required.

  • Run db-sync to add new indices.

  • audit middleware in keystonemiddleware library should be used for similar support.

  • Pipeline.yaml files for agents should be updated to notifier:// or udp:// publishers. The rpc:// publisher is no longer supported.

  • By default, Ceilometer will poll the v2 API. To poll legacy v1 API, add neutron_lbaas_version=v1 option to configuration file.

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 1533787] Fix an issue where agents are not properly getting registered to group when multiple notification agents are deployed. This can result in bad transformation as the agents are not coordinated. It is still recommended to set heartbeat_timeout_threshold = 0 in [oslo_messaging_rabbit] section when deploying multiple agents.

  • [bug 1519767] fnmatch functionality in python <= 2.7.9 is not threadsafe. this issue and its potential race conditions are now patched.

Bug Fixes

  • [bug 1531626] Ensure aggregator transformer timeout is honoured if size is not provided.

  • [bug 1550436] Cache json parsers when building parsing logic to handle event and meter definitions. This will improve agent startup and setup time.

  • [bug 1254800] Add better support to catch race conditions when creating event_types

  • [bug 1539163] Add ability to define whether to use first or last timestamps when aggregating samples. This will allow more flexibility when chaining transformers.

  • [bug 1536338] Patch was added to fix the broken floatingip pollster that polled data from nova api, but since the nova api filtered the data by tenant, ceilometer was not getting any data back. The fix changes the pollster to use the neutron api instead to get the floating ip info.

  • [bug 1530793] meter was previous set to incorrect type. It should be a gauge meter.

  • [bug 255569] Fix caching support in Gnocchi dispatcher. Added better locking support to enable smoother cache access.

  • Fix samples from Heat to map to correct Gnocchi resource type

  • [bug 1523124] Fix gnocchi dispatcher to support UDP collector

  • [bug 1542189] Handle malformed resource definitions in gnocchi_resources.yaml gracefully. Currently we raise an exception once we hit a bad resource and skip the rest. Instead the patch skips the bad resource and proceeds with rest of the definitions.

  • [bug 1504495] Configure ceilometer to handle policy.json rules when possible.

  • [bug 1526793] Additional indices were added to better support querying of event data.

  • [bug 1536699] Patch to fix volume field lookup in meter definition file. In case the field is missing in the definition, it raises a keyerror and aborts. Instead we should skip the missing field meter and continue with the rest of the definitions.

  • [bug 1532661] Fix statistics query failures due to large numbers stored in MongoDB. Data from MongoDB is returned as Int64 for big numbers when int and float types are expected. The data is cast to appropriate type to handle large data.

  • [bug 1536498] Patch to fix duplicate meter definitions causing duplicate samples. If a duplicate is found, log a warning and skip the meter definition. Note that the first occurance of a meter will be used and any following duplicates will be skipped from processing.

  • [bug 1388680] Suppose ability to query for None value when using SQL backend.

Other Notes

  • Configure individual dispatchers by specifying meter_dispatchers and event_dispatchers in configuration file.

  • A dogpile.cache supported backend is required to enable cache. Additional configuration options are also required.