报警任务是弹性伸缩利用云监控服务(CMS)产品功能的一种动态管理伸缩组的方式。类似于定时任务,报警任务通过触发您指定的伸缩规则来执行伸缩活动,达到自动调整伸缩组内实例个数的目的。

报警任务介绍

定时任务可以在您指定的时间执行您指定的伸缩规则,当业务场景在时间上可预料时,能够提前创建定时任务。但是,在面对突发或者时间上不可预料的业务场景时,定时任务就难以满足业务需求。此时,可以利用报警任务来提供更灵活的伸缩规则触发方式,在业务高峰期增加伸缩组内实例数量来缓解业务压力,在业务低谷时释放伸缩组内实例,减小生产成本。

报警任务通过监控特定的监控指标,对数据指标进行实时的统计,当统计值满足您指定的报警条件时,触发报警并执行您指定的伸缩规则。使用报警任务,可以实现根据业务变化实时调整伸缩组内的实例数量,保证监控指标的值维持在您期望的范围内。报警任务分为两种类型:

  • 系统监控报警任务:标准化的报警任务,您可以选择系统定义好的系统监控项。更多信息,请参见系统监控报警任务
  • 自定义监控报警任务:定制化的报警任务,为您将自有监控系统接入报警任务提供标准化方式,提升报警任务的可用性。更多信息,请参见自定义监控报警任务

使用限制

  • 如果伸缩组开启了期望实例数功能,当伸缩组内正在执行非并行伸缩活动时,不能执行其他伸缩活动。更多信息,请参见期望实例数
  • 报警任务在触发伸缩规则时受伸缩规则冷却时间影响,伸缩规则在冷却时间内时,会拒绝执行伸缩规则。伸缩组内新增加的ECS实例或ECI实例从加入伸缩组到完成系统启动配置,部署您的业务,获取到监控数据需要一定的时间(通常需要几分钟),因此您应该根据具体的业务场景,设置合适的冷却时间,防止在新增实例的监控数据缺失的这段时间中,重复触发伸缩规则。
  • 报警任务默认设置了1分钟的沉默时间,即触发报警之后,1分钟内不会再次触发伸缩规则。

Cron表达式

在弹性伸缩控制台配置报警任务的生效周期参数时,您可以选择Cron表达式来进行设置。

Cron表达式是一个具有时间含义的字符串,每个具有时间含义的字符叫做域,域之间用空格隔开。弹性伸缩报警任务支持5个域的Cron表达式,格式为X X X X XX是一个域的占位符。Cron表达式中的每个域依次表示秒、分钟、小时、日期和月,每个域可以是确定的取值,也可以是具有逻辑意义的特殊字符。

报警任务配置Cron表达式时,需要注意以下内容:

  • Cron表达式采用UTC+0时区,在配置Cron表达式时,您需要把本地时间换算成在UTC+0时区的时间。例如,中国的时区是UTC+8,如果您计划将报警生效周期设置为中国时区(例如每天01:00~02:59)的时间段,需要将计划执行时间减去8小时,设置的Cron表达式应为* * 17-18 * *
  • 在报警任务生效周期范围之外,若触发报警,则报警任务会显示报警状态,但不会执行报警触发规则。
表 1. 域取值
是否必需 取值范围 特殊字符
0~59 , - / *
分钟 0~59 , - / *
小时 0~23 , - / *
1~31 , - / * L W
1~12 , - / *
表 2. 特殊字符
特殊字符 含义 示例
* 域内的所有可能值。 在月域中,*表示每个月。
, 列出枚举值。 在分钟域中,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日触发。
表 3. 取值示例

下表以中国时区UTC+8为例,说明不同的Cron表达式示例代表的含义。在设置Cron表达式时,请注意将本地时间换算成在UTC+0时区的时间。

示例 说明
* * * * * 所有时间都生效
* 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日是否是工作日,生效时间不同:
  • 5日是工作日,即在周一至周五之间:当月5日01:00~01:59时间段生效
  • 5日是周六时:当月4日01:00~01:59时间段生效
  • 5日是周天时:当月6日01:00~01:59时间段生效

如何配置报警任务

配置伸缩组内报警任务的相关操作如下所示:

控制台文档 说明 API文档
配置报警任务 创建报警任务 CreateAlarm
查看报警任务 DescribeAlarms
修改或删除报警任务
停用或启用报警任务