このトピックでは、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 を使用して依存関係を追加する (推奨)
    1. Maven を使用してプロジェクトを作成します。
      mvn archetype:generate -DgroupId=com.aliyun.cms.sample \
      -DartifactId=cms-sdk-sample \
      -Dpackage=com.aliyun.cms.sample \
      -Dversion=1.0-SNAPSHOT
    2. プロジェクトの 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 パッケージを入手できます。
  • 方法 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
      }