
# 配置指标伸缩策略
本章节指导您配置指标伸缩策略。目前支持通过CPU、内存阈值及自定义监控指标来进行实例伸缩自动触发实例的增减，从而降低人为反复调整资源以应对业务变化和高峰压力的工作量，帮助您节约资源和人力成本。
![](https://support.huaweicloud.com/usermanual-cae/public_sys-resources/note_3.0-zh-cn.png)
CAE的实例伸缩是根据当前指标与期望指标计算的，具体细节如下：
期望实例数 = ceil\[当前实例数 \* (当前指标 / 期望指标)\](ceil向上取整)
为避免实例数波动过于频繁，指标有10%的误差容忍，即当前指标 / 期望指标在0.9\~1.1时，都不会进行缩扩容行为。
#### 适用场景
适用于突发流量和典型周期性流量的应用场景，多用于互联网、游戏和社交平台等行业。
#### 配置指标伸缩策略
1. [登录CAE控制台](https://console.huaweicloud.com/cae/)。
2. 在左侧导航栏中选择"组件配置"。
3. 在"组件配置"页面上方的组件下拉框中，选择需要操作的组件。
4. 单击"伸缩策略"模块中的"编辑"。
5. 单击![](https://support.huaweicloud.com/usermanual-cae/zh-cn_image_0000002381683377.png)开启伸缩策略，选择"指标策略"，参考[表1]进行指标策略配置。
   
    表1配置指标策略 
   | 参数    | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   |:---|:---|
   | 最大实例数 | 扩容时允许达到的最大实例数。 取值范围\[1，99\]。 说明： 最大实例数不能小于最小实例数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | 最小实例数 | 缩容时允许达到的最小实例数。 取值范围\[1，99\]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | 指标    | - CPU使用率，系统预置指标。  - 内存使用率，系统预置指标。  - 自定义指标。单击"添加伸缩指标"，可添加自定义指标，在下拉框中选择已创建的自定义监控指标，如需创建新的自定义指标，请参考[配置自定义监控指标](https://support.huaweicloud.com/usermanual-cae/cae_03_0050.html#cae_03_0050__section137555449)。 支持添加多条自定义指标。 说明： - 必须输入PromQL语句，PromQL是Prometheus内置的数据查询语言，其提供对时间序列数据丰富的查询，聚合以及逻辑运算能力的支持，详情请参考[Prometheus](https://prometheus.io/docs/prometheus/latest/querying/basics/)。  - PromQL语句查询结果必须为单个值，且类型为vector或scalar。  - 最近一次创建或升级时间在2023年11月03日之前的组件，在配置自定义伸缩指标设置时，需要重新升级组件才能使自定义伸缩指标策略正常生效。      |
      
   可以通过CPU、内存阈值指标来进行实例伸缩。
   例如：CPU使用率的最大期望值设置为80，内存使用率的最大期望值设置为70。当组件CPU使用率大于80%或内存使用率大于70%时，系统自动增加组件的实例个数。当组件CPU使用率小于80%且内存使用率小于70%时，系统自动减少组件的实例个数。
   图1伸缩策略配置   
   ![](https://support.huaweicloud.com/usermanual-cae/zh-cn_image_0000002380112849.png "点击放大")
   
   
6. （可选）展开"高级设置"，参考[表2]配置高级设置。
   
    表2配置高级设置 
   | 参数     | 参数说明                                                                                                     |
   |:---|:---|
   | 弹性扩容步长 | 扩容步长，每分钟扩容pod的数量。 默认值为4个，取值范围\[1，99\]。                                     |
   | 扩容稳定窗口 | 默认值为0秒，取值范围\[1，3600\]。                                                                                   |
   | 弹性缩容步长 | 缩容步长，每分钟缩容pod的数量。 默认值为99个，取值范围\[1，99\]。                                     |
   | 缩容稳定窗口 | 默认值为300秒，取值范围\[1，3600\]。                                                                                 |
   | 禁止缩容   | 单击![](https://support.huaweicloud.com/usermanual-cae/zh-cn_image_0000001695715346.png "点击放大")，可开启禁止缩容功能。 |
      
   图2高级配置   
   ![](https://support.huaweicloud.com/usermanual-cae/zh-cn_image_0000002379953149.png "点击放大")
   
   
7. 单击"确定"，完成指标策略配置。
8. 单击页面上方"生效配置"。在右侧弹框中确认修改信息，并单击"确定"，使配置生效。
 
#### 配置自定义QPS指标伸缩策略
1. 参考[配置自定义监控指标](https://support.huaweicloud.com/usermanual-cae/cae_03_0050.html)，创建一个名为qps_metric的自定义监控指标。
2. 在指标伸缩界面，单击"添加伸缩指标"。 
   图3添加伸缩指标   
   ![](https://support.huaweicloud.com/usermanual-cae/zh-cn_image_0000002346318324.png "点击放大")
   
   
   
3. 在下拉框选择已配置的自定义业务指标"metric"，PromQL语句设置如下，期望值设置为100。 
   ```
   sum(rate(envoy_cluster_upstream_rq_total{cluster_name=~".*{组件名称}.*{环境名称}.svc.cluster.local"}[30s]))
   ```
   其中*{组件名称}* 和*{环境名称}*需要设置成您当前组件名称和当前环境名称。
   示例：sum(rate(envoy_cluster_upstream_rq_total{cluster_name=\~".\*componentA.\*environmentA.svc.cluster.local"}\[30s\]))
   ![](https://support.huaweicloud.com/usermanual-cae/public_sys-resources/note_3.0-zh-cn.png)
   PromQL表达式含义：最近30秒内，转发到指定组件和环境的所有请求的平均每秒处理量（QPS）。
   PromQL表达式的值大于期望值时，系统自动增加组件的实例个数。
   PromQL表达式的值小于期望值时，系统自动减少组件实例个数。
   
   
4. 单击"确定"，完成时间伸缩策略配置。
5. 单击页面上方"生效配置"。在右侧弹框中确认修改信息，并单击"确定"，使配置生效。
 
#### 配置自定义click_operated_total伸缩指标
1. 参考[配置自定义监控指标](https://support.huaweicloud.com/usermanual-cae/cae_03_0050.html)，创建一个名为click_operated_total的自定义监控指标。
2. 在指标伸缩界面，单击"添加伸缩指标"。 
   图4添加伸缩指标   
   ![](https://support.huaweicloud.com/usermanual-cae/zh-cn_image_0000002346323008.png "点击放大")
   
   
   
3. 在下拉框选择已配置的自定义业务指标"click_operated_total"，PromQL语句设置如下，期望值设置为10。 
   ```
   max(avg_over_time(click_operated_total{environment_name="{环境名称}",application_name="{应用名称}",component_name="{组件名称}"}[1m]))
   ```
   其中*{环境名称}* 、*{应用名称}和{组件名称}*需要设置成您当前组件名称和当前环境名称。
   示例：max(avg_over_time(click_operated_total{environment_name="environmentA",application_name="applicationA",component_name="componentA"}\[1m\]))
   ![](https://support.huaweicloud.com/usermanual-cae/public_sys-resources/note_3.0-zh-cn.png)
   PromQL表达式含义：指定组件中所有实例中每一分钟click_operated_total指标平均值的最大值。
   PromQL表达式的值大于期望值时，系统自动增加组件的实例个数。
   PromQL表达式的值小于期望值时，系统自动减少组件实例个数。
   
   
4. 单击"确定"，完成时间伸缩策略配置。
5. 单击页面上方"生效配置"。在右侧弹框中确认修改信息，并单击"确定"，使配置生效。
 
#### 更多参考链接
[通过配置PromQL实现自定义弹性伸缩](https://support.huaweicloud.com/bestpractice-cae/cae_05_0053.html)
