如果您擁有自己的監控系統,且關心與特定業務相關的某些自有監控指標,系統監控報警任務無法滿足您的監控需求。您可以將自定義監控項指標上報到云監控,然后使用彈性伸縮自定義監控報警任務監控這些監控項。
上報監控數據到云監控
彈性伸縮自定義監控報警任務是監控自定義監控項的一項功能。在創建自定義監控報警任務之前,您需要提前向云監控上報自定義監控項。
云監控自定義監控是提供給您自由定義監控項及報警規則的一項功能。您可以針對自己關心的業務指標進行監控,將采集到監控數據上報至云監控,由云監控來進行數據的處理,并根據處理結果進行報警。
云監控支持使用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可以是已在云監控中創建的應用分組,或者一個不存在的應用分組,系統會自動創建新的應用分組。
- 您可以前往云監控控制臺,在應用分組中查看應用分組信息,在自定義監控中查看上報的自定義監控項(即時間序列)。
建議您向一個云監控中已經存在的應用分組推送自定義監控數據,云監控應用分組是針對多種云產品的邏輯分組,向一個已存在的應用分組推送自定義監控數據將使您在需要使用云監控等相關功能時保留擴展的能力。
云監控會自動聚合您上報到云監控的監控數據,如果您需要推送大量的數據,也可以選擇在本地聚合之后再推送到云監控。上報監控數據存在使用限制,更多說明和示例,請參見概覽。