多个全局效能指标¶
https://blueprints.launchpad.net/watcher/+spec/multiple-global-efficacy-indicator
问题描述¶
Watcher 目前将全局效能计算为一个单一值,并使用可用的效能指标。这对于仅优化单个 OpenStack 资源的策略非常有用。对于优化多个资源的策略,需要多个全局效能指标,因为每个全局效能指标将代表一种资源。例如,有两个策略同时优化存储和计算,云管理员会检查这两个策略的全局效能值,并选择较高的那个。但实际上,云管理员可能希望选择计算优化效果更好的策略,由于全局效能是一个单一实体,它无法仅反映计算优化效果。有可能用户会选择全局效能更高的策略,但实际上其值更高是因为存储效能。因此,最好为每个资源提供多个全局效能指标。
用例¶
作为 Watcher 用户,为了更好地选择策略,我希望拥有多个全局效能指标,每个指标代表一种资源。
提议的变更¶
在 Efficacy 类中将全局效能初始化为列表。
从 EfficacySpecification 返回以下格式的全局效能。它将是 efficacy.Indicator 类的对象列表
[(efficacy.Indicator(name='', description='', unit='', value='')), (efficacy.Indicator(name='', description='', unit='', value='')), ]
更改 python-watcherclient 中的 format_global_efficacy 方法的解析方式
更改 ActionPlan 数据模型,因为全局效能之前是 JSONEncodedDict,现在将是 JSONEncodedList。
备选方案¶
我们可以将全局效能保持为单一实体,让用户使用效能指标基于资源计算多个值。
数据模型影响¶
无
REST API 影响¶
全局效能 JSON 模式将会改变。它将影响以下 API:
GET /v1/action_plans/(action_plan_uuid)
GET /v1/action_plans/detail
GET /v1/action_plans
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
<adi-sky>
- 其他贡献者
<None>
工作项¶
在 watcher.decision_engine.solution.efficacy.Efficacy 中将 global_efficacy 初始化为列表
更新 ActionPlan 数据模型。
更新 watcher.decision_engine.goal.efficacy.specs.ServerConsolidation 中的 get_global_efficacy_indicator 方法
在 python-watcherclient 中更新。
依赖项¶
无
测试¶
将更新单元测试。
文档影响¶
更新目标插件的贡献者指南。 https://docs.openstack.org/watcher/latest/contributor/plugin/goal-plugin.html#implementation