本文主要介绍弹性伸缩自定义监控项报警任务。

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

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

上报监控数据到云监控

云监控的自定义监控服务为您提供了上报监控数据的方式,您可以将自己采集到的时序数据上报到云监控,此类数据称作时间序列。云监控提供了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推送数据。

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

限制

云监控对用户上报监控数据设置了以下限制:
  • 单云账号QPS限制为100。
  • 单次最多上报100条数据,body最大为256KB。
  • metricName字段只支持字母、数字、下划线。需要以字母开头,非字母开头会替换为大写“A”,非法字符替换为“_”。
  • dimensions字段不支持“=”、“&”、“,” 等,非法字符会被替换为“_”。
  • metricNamedimensions的Key-value最大均为64字节,超过64字节会被截断。
  • 其他限制请关注计费方式说明。