Stein Series Release Notes


Bug Fixes

  • CompileError: Can't resolve label reference for ORDER BY / GROUP BY. errors that were sometimes raised by SQLAlchemy when using the v1 storage backend and grouping on tenant_id and res_type have been fixed.

  • The interface parameter of the collector_monasca section is now also used for the discovery of the monasca endpoint.


New Features

  • A fetcher for gnocchi has been added, allowing dynamic scope/project discovery.

  • An InfluxDB v2 storage backend has been added. It will become the default backend of the v2 storage interface.

    The v1 storage interface will be deprecated in a future release. At that point, documentation about how to upgrade the storage backend will be made available, along with some helpers.

  • A v2 API has been bootstrapped. It is compatible with the v2 storage and will be the base for all upcoming API endpoints. It is marked as EXPERIMENTAL for now.

  • Prometheus collector now supports, under extra_args section, an aggregation_method option to decide which aggregation method is to be performed over collected metrics.

  • Prometheus collector now supports HTTPS with custom CA file, an insecure option to allow an untrusted certificate and basic HTTP authentication.

  • A new cloudkitty-status upgrade check command has been added. It can be used to validate a deployment before upgrading it from release N-1 to N.

Upgrade Notes

  • The v1 API is now marked as CURRENT. The API root is now built with Flask instead of pecan

  • CloudKitty’s storage interface defaults to v2 from now on. v1 will be deprecated in a future release. Documentation about how to upgrade the storage backend along with some tools will be available at that point. New deployments should use the v2 storage interface.

    The default v2 backend is influxdb. In order to keep using sqlalchemy, specify “version = 1” and “backend = sqlalchemy” in the [storage] section of the configuration.

Deprecation Notes

  • The ‘gnocchi_collector’, ‘hybrid_storage’, ‘keystone_fetcher’ and ‘source_fetcher’ group names have been deprecated and will be removed in the future. Use the ‘collector_gnocchi’, ‘storage_hybrid’, ‘fetcher_keystone’ and ‘fetcher_source’ group names instead.

  • The fake fetcher has been removed from CloudKitty’s codebase.

  • The fake and meta collectors have been removed from CloudKitty’s codebase.

  • The gnocchi transformer has been removed from CloudKitty’s codebase.

  • The gnocchi v2 storage backend has been removed. Users wanting to use the v2 storage interface must use the InfluxDB backend.

Security Issues

  • The default policy for the /v1/storage/dataframes endpoint has been changed from unprotected (accessible by any unauthenticated used) to admin_or_owner (accessible only by admins or members of the project).

Bug Fixes

  • Metadata collection failures in the gnocchi collector caused by resources having measures in periods where they are supposed to be deleted have been fixed. Metadata is now collected over a three-period window in the gnocchi collector.

  • HashMap module field mapping matching has been fixed: Field mapping values are always stored as strings. However, metadatas to match can be floats or integers (eg vcpus or ram). Given that mappings were matched with == until now, integers or float metadatas did never match.

  • cloudkitty-processor crashes which happened when using distributed tooz locks have been fixed.

  • The behaviour of the gnocchi collector has changed in case of a nonexistent metric. Given that a nonexistent metric is unlikely to exist in the next collection cycle, the metric is simply skipped.

Other Notes

  • The “scope_key” option is now defined in cloudkitty.conf and has been removed from the cloudkitty and monasca collector’s extra_args