このトピックでは、CloudMonitor SDK for Java のインストール方法について説明するとともに、サンプルコードを紹介します。
背景情報
- CloudMonitor SDK for Java を使用するには、Alibaba Cloud SDK for Java のコアライブラリ (
aliyun-java-sdk-core
) および Alibaba Cloud CloudMonitor SDK for Java のコアライブラリ (aliyun-java-sdk-cms
) をインストールする必要があります。 - Alibaba Cloud は、簡単に API を利用するための OpenAPI Explorer を提供しています。 OpenAPI Explorer では、API オペレーションのデバッグや、SDK サンプルコードの動的生成を行うことができます。
CloudMonitor SDK for Java のインストール
以下のいずれかの方法で、CloudMonitor SDK for Java をインストールします。 詳細については、「はじめに」をご参照ください。
- 方法 1 : Maven を使用して依存関係を追加する (推奨)
- Maven を使用してプロジェクトを作成します。
mvn archetype:generate -DgroupId=com.aliyun.cms.sample \ -DartifactId=cms-sdk-sample \ -Dpackage=com.aliyun.cms.sample \ -Dversion=1.0-SNAPSHOT
- プロジェクトの pom.xml ファイルに依存関係を追加します。
<dependencies> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>3.2.6</version> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-cms</artifactId> <version>7.0.24</version> </dependency> </dependencies>
注 以下のリンクから、最新バージョンの aliyun-java-sdk-core および aliyun-java-sdk-cms パッケージを入手できます。
- Maven を使用してプロジェクトを作成します。
- 方法 2 : SDK の JAR パッケージをダウンロードしてプロジェクトにパッケージを追加する
統合開発環境 (IDE) として Eclipse または IntelliJ のいずれを利用している場合でも、この方法で SDKs for Java をインストールできます。 SDK の JAR パッケージは、以下のリンクからダウンロードできます。
サンプルコード
以下のサンプルコードは、CloudMonitor SDK for Java を使った CloudMonitor API オペレーション、DescribeMetricList および PutResourceMetricRule の呼び出し方法の例を示しています。 その他の API については、OpenAPI Explore で API のデバッグとサンプルコードを取得できます。
- DescribeMetricList
DescribeMetricList のリクエストパラメーターの詳細については、「DescribeMetricList」をご参照ください。
- リクエストの例
import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.exceptions.ServerException; import com.aliyuncs.profile.DefaultProfile; import com.google.gson.Gson; import java.util.*; import com.aliyuncs.cms.model.v20190101.*; public class DescribeMetricList { public static void main(String[] args) { // Construct an Alibaba Cloud client that is used to initiate requests. // When you construct the client, specify your AccessKey ID and AccessKey secret. DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<accessKeyId>", "<accessSecret>"); IAcsClient client = new DefaultAcsClient(profile); // Construct a request and specify request parameters. DescribeMetricListRequest request = new DescribeMetricListRequest(); request.setRegionId("cn-hangzhou"); // Specify the Alibaba Cloud service and metric to collect. request.setMetricName("cpu_total"); request.setNamespace("acs_ecs_dashboard"); // Specify the beginning and end of the time range to query monitoring data. request.setStartTime("1628055731050"); request.setEndTime("1628062931050"); try { DescribeMetricListResponse response = client.getAcsResponse(request); System.out.println(new Gson().toJson(response)); } catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { System.out.println("ErrCode:" + e.getErrCode()); System.out.println("ErrMsg:" + e.getErrMsg()); System.out.println("RequestId:" + e.getRequestId()); } } }
- レスポンスの例
{ "RequestId": "2BE7EFE0-B50B-5168-BBA2-69B57E98D9C9", "NextToken": "1628055900000457fadc4b4c414f7166106dde17be869f14b2c0031323038383633313738363132393533242c692d6270316371686977317a613238303773636d316a242c", "Period": "900", "Datapoints": "[{\"timestamp\":1628055900000,\"userId\":\"120886317861****\",\"instanceId\":\"i-0xii2bvf42iqvxbp****\",\"Minimum\":0.0,\"Maximum\":2.0,\"Average\":0.11},{\"timestamp\":1628055900000,\"userId\":\"120886317861****\",\"instanceId\":\"i-2ze1qff61suafi71****\",\"Minimum\":0.0,\"Maximum\":4.95,\"Average\":0.88},{\"timestamp\":1628055900000,\"userId\":\"120886317861****\",\"instanceId\":\"i-2ze90ts4e7dj4fip****\",\"Minimum\":0.0,\"Maximum\":9.3,\"Average\":1.03},{\"timestamp\":1628055900000,\"userId\":\"120886317861****\",\"instanceId\":\"i-2ze90ts4e7dj4fip****\",\"Minimum\":0.0,\"Maximum\":10.86,\"Average\":1.2},{\"timestamp\":1628055900000,\"userId\":\"120886317861****\",\"instanceId\":\"i-2ze90ts4e7dj4fip****\",\"Minimum\":0.0,\"Maximum\":7.34,\"Average\":0.96}]", "Code": "200", "Success": true }
- リクエストの例
- PutResourceMetricRule
PutResourceMetricRule のリクエストパラメーターの詳細については、「PutResourceMetricRule」をご参照ください。
- リクエストの例
import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.exceptions.ServerException; import com.aliyuncs.profile.DefaultProfile; import com.google.gson.Gson; import java.util.*; import com.aliyuncs.cms.model.v20190101.*; public class PutResourceMetricRule { public static void main(String[] args) { // Construct an Alibaba Cloud client that is used to initiate requests. // When you construct the client, specify your AccessKey ID and AccessKey secret. DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<accessKeyId>", "<accessSecret>"); IAcsClient client = new DefaultAcsClient(profile); PutResourceMetricRuleRequest request = new PutResourceMetricRuleRequest(); request.setRegionId("cn-hangzhou"); // Specify the ID of the alert rule. request.setRuleId("a151cd6023eacee2f0978e03863cc1697c89508****"); request.setNamespace("acs_ecs_dashboard"); request.setMetricName("cpu_total"); // Specify the resources to which the alert rule are applied. request.setResources("[{\"instanceId\":\"i-0xii2bvf42iqvxbp****\"}]"); request.setContactGroups("ECS_Group"); // Specify the name of the alert rule. request.setRuleName("myRuleId123"); request.setEscalationsCriticalStatistics("Average"); request.setEscalationsCriticalComparisonOperator("GreaterThanOrEqualToThreshold"); request.setEscalationsCriticalThreshold("95"); request.setEscalationsCriticalTimes(3); try { PutResourceMetricRuleResponse response = client.getAcsResponse(request); System.out.println(new Gson().toJson(response)); } catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { System.out.println("ErrCode:" + e.getErrCode()); System.out.println("ErrMsg:" + e.getErrMsg()); System.out.println("RequestId:" + e.getRequestId()); } } }
- レスポンスの例
{ "Message": "", "RequestId": "80AFF69C-A779-5B68-BAA7-91CD059C05CA", "Code": 200, "Success": true }
- リクエストの例