报警任务是弹性伸缩利用云监控服务(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 | , - / * |
特殊字符 | 含义 | 示例 |
| 域内的所有可能值。 | 在月域中, |
| 列出枚举值。 | 在分钟域中, |
| 表示范围值。 | 在分钟域中, |
| 指定数值的增量。 | 在分钟域中, |
| 单词Last的首字母,表示最后一天,仅日期域支持该字符。 说明 指定 | 在日期域中, |
| 除周末以外的有效工作日,在离指定日期的最近的有效工作日触发事件。 | 在日期域中 |
示例 | 说明 |
| 所有时间都生效 |
| 每天01:00~01:30和02:00~02:30时间段生效 |
| 每天00:00~00:59和02:00~02:59时间段生效 |
| 从每月第一天开始,每2天01:00~01:59时间段生效。比如,每月前两次生效时间分别是1日01:00~01:59、3日01:00~01:59。 |
| 每月最后一日01:00~01:59时间段生效 |
| 根据每月5日是否是工作日,生效时间不同:
|
如何配置报警任务
配置伸缩组内报警任务的相关操作如下所示:
控制台文档 | 说明 | API文档 |
创建报警任务 | ||
查看报警任务 | ||
修改或删除报警任务 | ||
停用或启用报警任务 |