Train Series Release Notes


New Features

  • Add force field to Audit. User can set –force to enable the new option when launching audit. If force is True, audit will be executed despite of ongoing actionplan. The new audit may create a wrong actionplan if they use the same data model.

  • API calls while building the Compute data model will be retried upon failure. The amount of failures allowed before giving up and the time before reattempting are configurable. The api_call_retries and api_query_timeout parameters in the [collector] group can be used to adjust these paremeters. 10 retries with a 1 second time in between reattempts is the default.

  • All datasources can now be configured to retry retrieving a metric upon encountering an error. Between each attempt will be a set amount of time which can be adjusted from the configuration. These configuration options can be found in the [watcher_datasources] group and are named query_max_retries and query_timeout.

  • Allow using file to override metric map. Override the metric map of each datasource as soon as it is created by the manager. This override comes from a file whose path is provided by a setting in config file. The setting is watcher_decision_engine/metric_map_path. The file contains a map per datasource whose keys are the metric names as recognized by watcher and the value is the real name of the metric in the datasource. This setting defaults to /etc/watcher/metric_map.yaml, and presence of this file is optional.

  • Improved interface for datasource baseclass that better defines expected values and types for parameters and return types of all abstract methods. This allows all strategies to work with every datasource provided the metrics are configured for that given datasource.

  • Watcher now supports configuring which datasource to use and in which order. This configuration is done by specifying datasources in the watcher_datasources section:

    • [watcher_datasources] datasources = gnocchi,monasca,ceilometer

    Specific strategies can override this order and use datasources which are not listed in the global preference.

  • Grafana has been added as datasource that can be used for collecting metrics. The configuration options allow to specify what metrics and how they are stored in grafana so that no matter how Grafana is configured it can still be used. The configuration can be done via the typical configuration file but it is recommended to configure most options in the yaml file for metrics. For a complete walkthrough on configuring Grafana see:

  • Watcher can get resource information such as total, allocation ratio and reserved information from Placement API. Now we add some new fields to the Watcher Data Model:

    • vcpu_reserved: The amount of cpu a node has reserved for its own use.

    • vcpu_ratio: CPU allocation ratio.

    • memory_mb_reserved: The amount of memory a node has reserved for its own use.

    • memory_ratio: Memory allocation ratio.

    • disk_gb_reserved: The amount of disk a node has reserved for its own use.

    • disk_ratio: Disk allocation ratio.

    We also add some new propeties:

    • vcpu_capacity: The amount of vcpu, take allocation ratio into account, but do not include reserved.

    • memory_mb_capacity: The amount of memory, take allocation ratio into account, but do not include reserved.

    • disk_gb_capacity: The amount of disk, take allocation ratio into account, but do not include reserved.

  • Added strategy “node resource consolidation”. This strategy is used to centralize VMs to as few nodes as possible by VM migration. User can set an input parameter to decide how to select the destination node.

  • Add show data model api for Watcher. New in version 1.3. User can use ‘openstack optimize datamodel list’ command to view the current data model information in memory. User can also add ‘–audit <Audit_UUID>’ to view specific data model in memory filted by the scope in audit. User can also add ‘–detail’ to view detailed information about current data model. User can also add ‘–type <type>’ to specify the type of data model. Default type is ‘compute’. In the future, type ‘storage’ and ‘baremetal’ will be supported.

  • Add keystone_client Group for user to configure ‘interface’ and ‘region_name’ by watcher.conf. The default value of ‘interface’ is ‘admin’.

  • Added Placement API helper to Watcher. Now Watcher can get information about resource providers, it can be used for the data model and strategies. Config group placement_client with options ‘api_version’, ‘interface’ and ‘region_name’ is also added. The default values for ‘api_version’ and ‘interface’ are 1.29 and ‘public’, respectively.

  • Now Watcher strategy can select specific planner beyond default. Strategy can set planner property to specify its own planner.

Upgrade Notes

  • If Gnocchi was configured to have a custom amount of retries and or a custom timeout then the configuration needs to moved into the [watcher_datasources] group instead of the [gnocchi_client] group.

  • The minimum required version of the [nova_client]/api_version value is now enforced to be 2.56 which is available since the Queens version of the nova compute service.

    A watcher-status upgrade check has been added for this.

  • An Watcher API WSGI application script watcher-api-wsgi is now available. It is auto-generated by pbr and allows to run the API service using WSGI server (for example Nginx and uWSGI).

Deprecation Notes

  • The configuration options for query retries in [gnocchi_client] are deprecated and the option in [watcher_datasources] should now be used.

  • The new strategy baseclass has significant changes in method parameters and any out-of-tree strategies will have to be adopted.

  • Several strategies have changed the node parameter to compute_node to be better aligned with terminology. These strategies include basic_consolidation and workload_stabilzation. The node parameter will remain supported during Train release and will be removed in the subsequent release.

  • Using watcher/api/app.wsgi script is deprecated and it will be removed in U release. Please switch to automatically generated watcher-api-wsgi script instead.