Ess报警任务全新升级

简介: AutoScaling(弹性伸缩) 报警任务迎来全新升级,本次升级从监控范围,监控方式,监控响应速度等三个方面做出了全方位的优化,升级后的 AutoScaling 报警任务将您提供一种更全面,更可靠的利用报警任务动态管理 AutoScaling 伸缩组的方式。

AutoScaling(弹性伸缩) 报警任务迎来全新升级,本次升级从监控范围,监控方式,监控响应速度等三个方面做出了全方位的优化,升级后的 AutoScaling 报警任务将您提供一种更全面,更可靠的利用报警任务动态管理 AutoScaling 伸缩组的方式。

本次的升级内容主要包括:

  1. 增加了对系统磁盘,网卡,TCP连接数等监控指标的报警任务支持。
  2. 报警任务最小统计周期升级到 1分钟,提供更灵敏的监控报警。
  3. 增加自定义监控,为用户自有监控系统接入 AutoScaling 报警任务提供标准化方式。

AutoScaling 报警任务

AutoScaling 报警任务是 AutoScaling 与 云监控服务(CMS) 深度合作,提供的一种动态管理伸缩组的方式,类似于 AutoScaling 定时任务,AutoScaling 报警任务通过触发您指定的伸缩规则来执行伸缩活动,达到调整伸缩组内实例个数的目的。

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

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

AutoScaling 系统监控报警任务

AutoScaling 系统监控报警任务的监控指标是云监控为用户采集的 ECS 实例的相关数据指标,比如CPU,负载等。用户在 AutoScaling 中设置的系统监控的报警任务是以伸缩组作为监控粒度的,即以伸缩组内的所有实例的监控指标的统计平均值作为伸缩组的指标值,当伸缩组内实例数量发生变化时,监控指标也会同时进行更新。

支持的监控指标

AutoScaling 系统监控报警任务目前支持的监控项,其中红色字体代表本次升级新增支持的监控项:

监控项 单位
CPU %
内存 %
系统平均负载
内网出流量 KB/min
内网入流量 KB/min
外网出流量 KB/min
外网入流量 KB/min
系统盘写bps Byte/s
系统盘读bps Byte/s
系统盘写iops 个/s
系统盘读iops 个/s
外网网卡发包数(经典网络) 个/s
外网网卡收包数(经典网络) 个/s
内网网卡发包数 个/s
内网网卡收包数 个/s
TCP总连接数
TCP已建立连接数

注意事项

  1. AutoScaling 伸缩组在同一时刻只能执行一个伸缩活动,当伸缩组内存在正在执行的伸缩活动是,由报警任务触发伸缩规则产生的伸缩活动将被拒绝。
  2. AutoScaling 报警任务在触发伸缩规则时受伸缩规则冷却时间影响,伸缩规则在冷却时间内时,将拒绝执行伸缩规则。伸缩组内新增加的 ECS 实例从加入伸缩组到完成系统启动配置,部署用户业务,获取到监控数据需要一定的时间(通常需要几分钟),因此您应该根据具体的业务场景,设置合适的冷却时间,防止在新增实例的监控数据缺失的这段时间中,重复触发伸缩规则。
  3. AutoScaling 报警任务,默认设置了一分钟的沉默时间,即触发报警之后,一分钟内不会再次触发伸缩规则。
  4. 部分系统监控项(内存,负载,网卡发包数,TCP连接数)指标的采集需要为您安装云监控客户端。默认情况下,当您针对需要云监控客户端采集的监控项设置报警任务时,将为报警任务关联的伸缩组内的所有实例安装云监控客户端,同时,将为您在云监控控制台开启 新购ECS自动安装云监控,为您所有新购的 ECS 实例安装云监控客户端。

AutoScaling 自定义监控项报警任务

AutoScaling 自定义监控项报警任务的监控对象为用户自主上报到云监控中的监控指标。在一些场景下,系统监控项可能不包含您所需要的监控指标,您可能拥有自己的一套监控系统,并且关心的是与您特定业务相关的某些指标,自定义监控报警任务,为您自有的监控系统,或者与业务相关的自有监控指标提供了设置报警任务的接入点。

AutoScaling 自定义监控报警任务是针对阿里云云监控服务的自定义监控项设置报警的,用户在使用 AutoScaling 自定义监控报警任务之前需要首先向云监控上报自定义监控数据,即自定义监控项。云监控自定义监控是提供给用户自由定义监控项及报警规则的一项服务,通过此服务,用户可以针对自己关心的业务指标进行监控,将采集到监控数据上报至云监控,由云监控来进行数据的处理,并可以对其设置报警规则。

上报监控数据到云监控

云监控的自定义监控服务为您提供了上报监控数据的方式,您可以将自己采集到的时序数据上报到云监控,这样的数据称作时间序列。云监控提供了OpenAPI、Java SDK 和阿里云命令行工具(CLI) 三种方式上报数据,这里我们将主要关注如何使用Java SDK的方式上报监控数据。更多详细的信息您可以查看文档 上报监控数据

使用Java sdk之前您需要首先在项目中引入相应的jar包,如果您使用maven管理项目,您只需要在项目中加入以下依赖:

        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>3.2.6</version>
        </dependency>

        <dependency>
            <groupId>com.aliyun.openservices</groupId>
            <artifactId>aliyun-cms</artifactId>
            <version>0.2.4</version>
        </dependency>

您可以按照如下的方式向云监控上报自定义监控项:

static String endPoint     = "https://metrichub-cms-cn-hangzhou.aliyuncs.com";
CMSClient cmsClient = new CMSClient(endPoint, accAutoScalingKey, accAutoScalingSecret);
CustomMetricUploadRequest request = CustomMetricUploadRequest.builder()
                    .append(CustomMetric.builder()
                    .setMetricName("myCustomMetric")//自定义指标名
                    .setGroupId(54504L)//设置分组id
                    .setTime(new Date())//时间
                    .setType(CustomMetric.TYPE_VALUE)//类型为原始值,
                    .appendValue(MetricAttribute.VALUE, number)//原始值,key只能为这个
                    .appendDimension("key1", "value1")//添加维度
                    .appendDimension("key2","value2")
                    .build())
                 .build();
            CustomMetricUploadResponse response = cmsClient.putCustomMetric(request);//上报

在上述的代码片段中,我们上报了一个数据点到云监控。上报时,必须指定groupId参数,即云监控应用分组id,该分组id可以是您在云监控中已创建的应用分组,也可以是一个不存在的应用分组。您可以在 云监控应用分组 创建和查看应用应用分组信息。您上报的自定义监控项(时间序列),可以在云监控控制的 自定义监控 中查看。

我们建议您向一个 云监控中已经存在的应用分组中推送自定义监控数据,云监控的应用分组是针对多种云产品的逻辑分组,向一个已存在的应用分组推送自定义监控数据将使您在需要使用云监控等相关功能时保留扩展的能力。当然,您也可以完全不必理会应用分组的概念,选择向任意一个分组id推送数据。

您上报到云监控的监控数据,云监控会自动帮您进行聚合,当然,当您需要推送的数据量太大时,您也可以选择在本地聚合之后再推送到云监控。详细信息可以参考 上报监控数据

需要注意,云监控对用户上报监控数据设置了以下限制:

  1. 单云账号QPS限制为100。
  2. 单次最多上报100条数据,body最大为256KB。
  3. “metricName”字段只支持字母、数字、下划线。需要以字母开头,非字母开头会替换为大写“A”,非法字符替换为“_”。
  4. “dimensions”字段不支持“=”、“&”、“,” ,非法字符会被替换为“_”。
  5. metricName 和dimensions的Key-value 最大均为64字节,超过64字节会被截断。
  6. 其他限制请关注计量计费说明。

最佳实践

在本文的最佳实践中将具体讲解 如何在 AutoScaling 控制台创建,查看,以及修改一条报警任务。

创建系统监控项报警任务

首先进入 AutoScaling控制台,选中报警任务侧边栏,点击创建报警任务。

image.png

image.png

在弹出的创建报警任务对话框中,我们选中监控类型为 系统监控,设置任务名称,描述等基本信息,然后选择监控资源,即报警任务监控的伸缩组,选择监控项为cpu(cpu使用率),统计周期选择1分钟,表示将对每1分钟的监控数据进行统计检查,判断是否满足报警条件。统计办法我们选择了 平均值>=50%,重复3次,这表示,当cpu的使用了在1分钟平均值超过阈值50%,并且连续3次满足统计办法时,将发生报警。报警触发规则为伸缩规则add1,表明在发生报警时,将执行报警规则add1,为伸缩组增加1台机器。

创建自定义监控项报警任务

创建自定义监控项报警任务的过程和创建系统监控类似,唯一的不同在于,系统监控报警任务的监控项是由云监控为用户采集,而自定义监控报警任务的监控项则需要用户自己上报至云监控。

在创建自定义监控类型的报警任务时,首先需要存在已上报的自定义监控项,即时间序列。然后才能针对该时间序列设置报警规则。

image.png

在上图创建自定义报警任务之前,已经向云监控推送了一条自定义监控数据流(时间序列)。该时间序列所属的应用分组为54504,监控项名称为testMetric,维度信息为 age=10。

查看监控项详情

在成功的创建完报警任务之后,我们可以在报警任务列表看到我们刚刚创建的报警任务。

image.png

切换到自定义监控列表,查看刚刚创建的自定义报警任务。

image.png

点击报警任务的名称,将跳转到详情页,在详情页您将看到报警任务对应监控项的历史数据。

image.png

image.png

修改报警任务

您可以在报警任务的列表页修改报警任务,也可以进入报警任务的详情页修改报警规则。

image.png

image.png

修改报警任务分为两个部分,一个是修改报警任务的基本信息,另外一个是修改报警规则的触发规则。

修改基本信息包括修改任务名称,监控项,统计周期,统计办法,重复次数等,我们不建议您修改报警任务的监控项,因为,修改监控项意味着监控不同的指标,此时,新建一条针对新指标的报警任务是更合适的方法。

写在最后

AutoScaling 报警任务为您提供了一种通过监控特定监控指标来动态调整伸缩组内实例数量的方法,让您能够根据业务的变化实时的执行指定的伸缩规则,调整伸缩组内的实例数量。

本次的 AutoScaling 报警任务的升级,扩展了原有的监控指标,并在原有监控项的基础上,支持用户接入自定义的监控项,提供定制化的报警任务,大大增强了 AutoScaling 报警任务的可用性和实用性,满足用户具体的,多样化的需求。

目录
相关文章
|
3月前
|
弹性计算 缓存 Kubernetes
异步任务处理系统问题之任务执行子系统实现资源的弹性伸缩的问题如何解决
异步任务处理系统问题之任务执行子系统实现资源的弹性伸缩的问题如何解决
|
弹性计算 监控 开发者
通过报警任务和云监控创建弹性伸缩方案-操作演示|学习笔记
快速学习通过报警任务和云监控创建弹性伸缩方案-操作演示
通过报警任务和云监控创建弹性伸缩方案-操作演示|学习笔记
|
弹性计算 监控 负载均衡
通过报警任务和云监控创建弹性伸缩方案-介绍|学习笔记
快速学习通过报警任务和云监控创建弹性伸缩方案-介绍
通过报警任务和云监控创建弹性伸缩方案-介绍|学习笔记
通过阿里云CLI执行ESS滚动升级
通过阿里云CLI执行OOS模板完成ESS滚动升级
通过阿里云CLI执行ESS滚动升级
|
开发工具 Python 运维
使用阿里云Python SDK执行ESS滚动升级
使用阿里云Python SDK执行ESS滚动升级操作指引
使用阿里云Python SDK执行ESS滚动升级
|
弹性计算 监控 关系型数据库
弹性伸缩Auto Scaling产品全面升级,轻松应对业务负载变化,张弛有度,收放自如!
弹性伸缩是阿里云上非常受欢迎的一个云服务编排产品,它能够根据用户的策略定义和业务需求变化,动态调整弹性计算资源,在有效支撑业务负载变化的同时保持最合理经济的基础设施费用开支。基于广大用户的反馈和建议,弹性伸缩产品全面升级,帮助用户轻松应对业务负载变化,张弛有度,收放自如!
4067 0
|
弹性计算 数据安全/隐私保护
AutoScaling 弹性伸缩配置重大升级
AutoScaling 弹性伸缩配置重大升级,不仅新增主机名称(HostName)、镜像预设密码(PasswordInherit)两大特性,而且新增伸缩配置修改功能。
1986 0
|
15天前
|
弹性计算 人工智能 Serverless
阿里云ACK One:注册集群云上节点池(CPU/GPU)自动弹性伸缩,助力企业业务高效扩展
在当今数字化时代,企业业务的快速增长对IT基础设施提出了更高要求。然而,传统IDC数据中心却在业务存在扩容慢、缩容难等问题。为此,阿里云推出ACK One注册集群架构,通过云上节点池(CPU/GPU)自动弹性伸缩等特性,为企业带来全新突破。
|
弹性计算 缓存 运维
【运维知识进阶篇】用阿里云部署kod可道云网盘(DNS解析+CDN缓存+Web应用防火墙+弹性伸缩)(三)
【运维知识进阶篇】用阿里云部署kod可道云网盘(DNS解析+CDN缓存+Web应用防火墙+弹性伸缩)(三)
220 0
|
6月前
|
弹性计算 监控 开发工具
【阿里云弹性计算】实战教程:如何高效利用阿里云ECS弹性伸缩应对业务高峰
【5月更文挑战第20天】本文介绍了如何使用阿里云ECS弹性伸缩服务应对业务高峰。通过自动调整云资源规模,弹性伸缩在流量增加时扩展实例,流量减少时收缩实例,实现成本与性能的优化。步骤包括开通服务、创建伸缩组、设定规则和监控指标。文中还提供了一个Python脚本示例,并强调了优化策略,如应用无状态设计、考虑冷却时间和结合云监控。通过实践和调整,企业可以有效应对业务波动。
159 5

相关产品

  • 弹性伸缩