如果您拥有自己的监控系统,且关心与特定业务相关的某些自有监控指标,系统监控报警任务无法满足您的监控需求。您可以将自定义监控项指标上报到云监控,然后使用弹性伸缩自定义监控报警任务监控这些监控项。
上报监控数据到云监控
弹性伸缩自定义监控报警任务是监控自定义监控项的一项功能。在创建自定义监控报警任务之前,您需要提前向云监控上报自定义监控项。
云监控自定义监控是提供给您自由定义监控项及报警规则的一项功能。您可以针对自己关心的业务指标进行监控,将采集到监控数据上报至云监控,由云监控来进行数据的处理,并根据处理结果进行报警。
云监控支持使用OpenAPI、Java SDK和阿里云命令行工具(CLI)三种方式上报监控数据。下面以使用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可以是已在云监控中创建的应用分组,或者一个不存在的应用分组,系统会自动创建新的应用分组。
- 您可以前往云监控控制台,在应用分组中查看应用分组信息,在自定义监控中查看上报的自定义监控项(即时间序列)。
建议您向一个云监控中已经存在的应用分组推送自定义监控数据,云监控应用分组是针对多种云产品的逻辑分组,向一个已存在的应用分组推送自定义监控数据将使您在需要使用云监控等相关功能时保留扩展的能力。
云监控会自动聚合您上报到云监控的监控数据,如果您需要推送大量的数据,也可以选择在本地聚合之后再推送到云监控。上报监控数据存在使用限制,更多说明和示例,请参见概览。