配置指标伸缩策略
本章节指导您配置指标伸缩策略。目前支持通过CPU、内存阈值及自定义监控指标来进行实例伸缩自动触发实例的增减,从而降低人为反复调整资源以应对业务变化和高峰压力的工作量,帮助您节约资源和人力成本。

CAE的实例伸缩是根据当前指标与期望指标计算的,具体细节如下:
期望实例数 = ceil[当前实例数 * (当前指标 / 期望指标)](ceil向上取整)
为避免实例数波动过于频繁,指标有10%的误差容忍,即当前指标 / 期望指标在0.9~1.1时,都不会进行缩扩容行为。
适用场景
适用于突发流量和典型周期性流量的应用场景,多用于互联网、游戏和社交平台等行业。
配置指标伸缩策略
- 登录CAE控制台。
- 在左侧导航栏中选择“组件配置”。
- 在“组件配置”页面上方的组件下拉框中,选择需要操作的组件。
- 单击“伸缩策略”模块中的“编辑”。
- 单击
开启伸缩策略,选择“指标策略”,参考表1进行指标策略配置。
表1 配置指标策略 参数
参数说明
最大实例数
扩容时允许达到的最大实例数。
取值范围[1,99]。
说明:最大实例数不能小于最小实例数。
最小实例数
缩容时允许达到的最小实例数。
取值范围[1,99]。
指标
- CPU使用率,系统预置指标。
- 内存使用率,系统预置指标。
- 自定义指标。单击“添加伸缩指标”,可添加自定义指标,在下拉框中选择已创建的自定义监控指标,如需创建新的自定义指标,请参考配置自定义监控指标。
支持添加多条自定义指标。说明:
- 必须输入PromQL语句,PromQL是Prometheus内置的数据查询语言,其提供对时间序列数据丰富的查询,聚合以及逻辑运算能力的支持,详情请参考Prometheus。
- PromQL语句查询结果必须为单个值,且类型为vector或scalar。
- 最近一次创建或升级时间在2023年11月03日之前的组件,在配置自定义伸缩指标设置时,需要重新升级组件才能使自定义伸缩指标策略正常生效。
可以通过CPU、内存阈值指标来进行实例伸缩。
例如:CPU使用率的最大期望值设置为80,内存使用率的最大期望值设置为70。当组件CPU使用率大于80%或内存使用率大于70%时,系统自动增加组件的实例个数。当组件CPU使用率小于80%且内存使用率小于70%时,系统自动减少组件的实例个数。
图1 伸缩策略配置 - (可选)展开“高级设置”,参考表2配置高级设置。
表2 配置高级设置 参数
参数说明
弹性扩容步长
扩容步长,每分钟扩容pod的数量。
默认值为4个,取值范围[1,99]。
扩容稳定窗口
默认值为0秒,取值范围[1,3600]。
弹性缩容步长
缩容步长,每分钟缩容pod的数量。
默认值为99个,取值范围[1,99]。
缩容稳定窗口
默认值为300秒,取值范围[1,3600]。
禁止缩容
单击
,可开启禁止缩容功能。
图2 高级配置 - 单击“确定”,完成指标策略配置。
- 单击页面上方“生效配置”。在右侧弹框中确认修改信息,并单击“确定”,使配置生效。
配置自定义QPS指标伸缩策略
- 参考配置自定义监控指标,创建一个名为qps_metric的自定义监控指标。
- 在指标伸缩界面,单击“添加伸缩指标”。
图3 添加伸缩指标
- 在下拉框选择已配置的自定义业务指标“metric”,PromeQL语句设置如下,期望值设置为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]))
PromeQL表达式含义:最近30秒内,转发到指定组件和环境的所有请求的平均每秒处理量(QPS)。
PromeQL表达式的值大于期望值时,系统自动增加组件的实例个数。
PromeQL表达式的值小于期望值时,系统自动减少组件实例个数。
- 单击“确定”,完成时间伸缩策略配置。
- 单击页面上方“生效配置”。在右侧弹框中确认修改信息,并单击“确定”,使配置生效。
配置自定义click_operated_total伸缩指标
- 参考配置自定义监控指标,创建一个名为click_operated_total的自定义监控指标。
- 在指标伸缩界面,单击“添加伸缩指标”。
图4 添加伸缩指标
- 在下拉框选择已配置的自定义业务指标“click_operated_total”,PromeQL语句设置如下,期望值设置为10。
max(avg_over_time(click_operated_total{envirnonment_name="{环境名称}",application_name="{应用名称}",component_name="{组件名称}"}[1m]))
其中{环境名称}、{应用名称}和{组件名称}需要设置成您当前组件名称和当前环境名称。
示例:max(avg_over_time(click_operated_total{envirnonment_name="environmentA",application_name="applicationA",component_name="componentA"}[1m]))
PromeQL表达式含义:指定组件中所有实例中每一分钟click_operated_total指标平均值的最大值。
PromeQL表达式的值大于期望值时,系统自动增加组件的实例个数。
PromeQL表达式的值小于期望值时,系统自动减少组件实例个数。
- 单击“确定”,完成时间伸缩策略配置。
- 单击页面上方“生效配置”。在右侧弹框中确认修改信息,并单击“确定”,使配置生效。