报警任务是弹性伸缩利用云监控服务(CMS)产品功能的一种动态管理伸缩组的方式。类似于定时任务,报警任务通过触发您指定的伸缩规则来执行伸缩活动,达到自动调整伸缩组内实例个数的目的。
报警任务介绍
定时任务可以在您指定的时间执行您指定的伸缩规则,当业务场景在时间上可预料时,能够提前创建定时任务。但是,在面对突发或者时间上不可预料的业务场景时,定时任务就难以满足业务需求。此时,可以利用报警任务来提供更灵活的伸缩规则触发方式,在业务高峰期增加伸缩组内实例数量来缓解业务压力,在业务低谷时释放伸缩组内实例,减小生产成本。
报警任务通过监控特定的监控指标,对数据指标进行实时的统计,当统计值满足您指定的报警条件时,触发报警并执行您指定的伸缩规则。使用报警任务,可以实现根据业务变化实时调整伸缩组内的实例数量,保证监控指标的值维持在您期望的范围内。报警任务分为两种类型:
使用限制
- 如果伸缩组开启了期望实例数功能,当伸缩组内正在执行非并行伸缩活动时,不能执行其他伸缩活动。更多信息,请参见期望实例数。
- 报警任务在触发伸缩规则时受伸缩规则冷却时间影响,伸缩规则在冷却时间内时,会拒绝执行伸缩规则。伸缩组内新增加的ECS实例或ECI实例从加入伸缩组到完成系统启动配置,部署您的业务,获取到监控数据需要一定的时间(通常需要几分钟),因此您应该根据具体的业务场景,设置合适的冷却时间,防止在新增实例的监控数据缺失的这段时间中,重复触发伸缩规则。
- 报警任务默认设置了1分钟的沉默时间,即触发报警之后,1分钟内不会再次触发伸缩规则。
Cron表达式
在弹性伸缩控制台配置报警任务的生效周期参数时,您可以选择Cron表达式来进行设置。
Cron表达式是一个具有时间含义的字符串,每个具有时间含义的字符叫做域,域之间用空格隔开。弹性伸缩报警任务支持5个域的Cron表达式,格式为X X X X X
,X
是一个域的占位符。Cron表达式中的每个域依次表示秒、分钟、小时、日期和月,每个域可以是确定的取值,也可以是具有逻辑意义的特殊字符。
报警任务配置Cron表达式时,需要注意以下内容:
- Cron表达式采用UTC+0时区,在配置Cron表达式时,您需要把本地时间换算成在UTC+0时区的时间。例如,中国的时区是UTC+8,如果您计划将报警生效周期设置为中国时区(例如每天01:00~02:59)的时间段,需要将计划执行时间减去8小时,设置的Cron表达式应为
* * 17-18 * *
。 - 在报警任务生效周期范围之外,若触发报警,则报警任务会显示报警状态,但不会执行报警触发规则。
域 | 是否必需 | 取值范围 | 特殊字符 |
---|---|---|---|
秒 | 是 | 0~59 | , - / * |
分钟 | 是 | 0~59 | , - / * |
小时 | 是 | 0~23 | , - / * |
日 | 是 | 1~31 | , - / * L W |
月 | 是 | 1~12 | , - / * |
特殊字符 | 含义 | 示例 |
---|---|---|
* |
域内的所有可能值。 | 在月域中,* 表示每个月。
|
, |
列出枚举值。 | 在分钟域中,5,20 表示第5分钟和第20分钟。
|
- |
表示范围值。 | 在分钟域中,5-20 表示从第5分钟到第20分钟之间的每一分钟。
|
/ |
指定数值的增量。 | 在分钟域中,0/15 表示从第0分钟开始的每15分钟,3/20 表示从第3分钟开始的每20分钟。
|
L |
单词Last的首字母,表示最后一天,仅日期域支持该字符。
说明 指定
L 字符时,避免指定列表或者范围,否则,会导致逻辑问题。
|
在日期域中,L 表示某个月的最后一天。
|
W |
除周末以外的有效工作日,在离指定日期的最近的有效工作日触发事件。W 字符寻找最近有效工作日时不会跨过当前月份。
|
在日期域中5W ,如果5日是星期六,则将在最近的工作日星期五,即4日触发。如果5日是星期天,则将在最近的工作日星期一,即6日触发;如果5日在星期一到星期五中的一天,则就在5日触发。
|
示例 | 说明 |
---|---|
* * * * * |
所有时间都生效 |
* 0-30 17-18 * * |
每天01:00~01:30和02:00~02:30时间段生效 |
* * 16,18 * * |
每天00:00~00:59和02:00~02:59时间段生效 |
* * 17 1/2 * |
从每月第一天开始,每2天01:00~01:59时间段生效。例如,每月前两次生效时间分别是1日01:00~01:59、3日01:00~01:59。 |
* * 17 L * |
每月最后一日01:00~01:59时间段生效 |
* * 17 5W * |
根据每月5日是否是工作日,生效时间不同:
|
如何配置报警任务
配置伸缩组内报警任务的相关操作如下所示:
控制台文档 | 说明 | API文档 |
---|---|---|
配置报警任务 | 创建报警任务 | CreateAlarm |
查看报警任务 | DescribeAlarms | |
修改或删除报警任务 | ||
停用或启用报警任务 |