すべてのプロダクト
Search
ドキュメントセンター

CloudMonitor:(推奨) SDK for Javaを使用してモニタリングデータを報告する

最終更新日:May 14, 2024

このトピックでは、SDK for Javaを使用してモニタリングデータをレポートする方法について説明します。

SDK for Javaでは、次のいずれかの方法を使用してモニタリングデータを報告できます。
  • SDK for Javaを使用して、モニタリングデータを直接報告します。
  • SDK for Javaを使用してデータをローカルに集計し、集計データを報告します。

    集計期間は60秒または300秒でなければなりません。

SDK for Java のインストール

次のMaven依存関係を追加して、Java用SDKをインストールできます。
<dependency>
            <groupId>com.aliyun.openservices</groupId>
            <artifactId>aliyun-cms</artifactId>
            <version>0.2.4</version>
</dependency> 

サンプルコード

次のサンプルコードは、SDK for Javaを使用してモニタリングデータを報告する方法を示しています。
  • レポート生データ
    CMSClientInit.groupId = 101L;// 共通アプリケーショングループのIDを指定します。
            CMSClient cmsClient = new CMSClient(endpoint, accKey, secret);// クライアントを初期化します。
            CustomMetricUploadRequest request = CustomMetricUploadRequest.builder()
                    .append(CustomMetric.builder()
                            . setMetricName("testMetric")// メトリックの名前を指定します。
                            . setGroupId(102L)// アプリケーショングループのIDを指定します。
                            .setTime(new Date())
                            . setType(CustomMetric.TYPE_VALUE)// 型を生データに設定します。
                            . appendValue(MetricAttribute.VALUE, 1f)// 生データを追加します。 キーをMetricAttribute.VALUEに設定します。
                            . appendDimension("key", "value")// ディメンションを追加します。
                            . appendDimension("ip", "127.0.0.1")// ディメンションを追加します。
                            .build())
                    .build();
            CustomMetricUploadResponse response = cmsClient.putCustomMetric(request);// レポートデータ。
            System.out.println(JSONObject.toJSONString (レスポンス)); 
  • レポート集計データ
    CMSClientInit.groupId = 101L;
            CMSClient cmsClient = new CMSClient(endpoint, accKey, secret);
            CustomMetricUploadRequest request = CustomMetricUploadRequest.builder()
                    .append(CustomMetric.builder()
                            . setMetricName("customTest")
                            .setTime(new Date())
                            . setType(CustomMetric.TYPE_AGG)// タイプを集計データに設定します。
                            . setPeriod(CustomMetric.PERIOD_1M)// 集計期間を1分に設定します。
                            . appendDimension("test", "testValue")// ディメンションを追加します。
                            . appendDimension("dimension", "dimensionValue")// ディメンションを追加します。
                            . appendValue(MetricAttribute.SUM, 100)// 合計値を追加します。
                            . appendValue(MetricAttribute.MAX, 20)// 最大値を追加します。
                            . appendValue(MetricAttribute.MIN, 0.1)// 最小値を追加します。
                            . appendValue(MetricAttribute.COUNT, 20)// カウントを追加します。
                            . appendValue(MetricAttribute.AVG, 5)// 平均値を加算する。
                            . appendValue(MetricAttribute.LAST, 10)// 集計期間の最後のサンプル値を追加します。
                            . appendValue(MetricAttribute.P50, 10)// 50番目のパーセンタイルの値を追加します。
                            . appendValue(MetricAttribute.P90, 17)// 90番目のパーセンタイルの値を追加します。
                            . appendValue(MetricAttribute.P99, 19)// 99番目のパーセンタイルの値を追加します。
                            .build())
                    .build();
            CustomMetricUploadResponseレスポンス=cmsClient.putCustomMetric (リクエスト);
            System.out.println(JSONObject.toJSONString (レスポンス)); 
説明 異なるリージョンのCloud Monitorのエンドポイントの詳細については、「付録3: モニタリングデータをレポートするエンドポイント」をご参照ください。

レスポンスの例

次のコードは、SDK for Javaを使用してモニタリングデータを報告するときに返されるサンプルレスポンスを示しています
。{
    "Message": "success",
    "RequestId": "E25EE651-9C97-4EFD-AF22-A753B674E8D4" 、
    "コード": "200"
} 

HTTPステータスコード200は成功を示します。

複数の集計期間の集計データをレポートする

SDK for Javaを使用してデータをローカルに集計し、集計データを報告します。
データ型説明集計値メモリ使用量
value共通値型。The common value type.LastValue 以外のすべてのプロパティ約 4 KB
gaugeサンプル値。LastValue4バイト
meter合計とレート。合計とSumPerSecond50バイト
counter集計SampleCount10バイト
timer計算時間。SampleCount、CountPerSecond、平均、最大、最小、およびP10からP99約 4 KB
histogramディストリビューション。SampleCount、Average、Maximum、Minimum、およびP99へのP10約 4 KB
説明 メモリ使用量は、1つの集計期間において1つの時系列によって使用されるメモリを示す。
サンプルコード:
// データを初期化します。
        CMSClientInit.groupId = 0L;
        CMSClient cmsClient = new CMSClient(accKey, secret, endpoint);// クライアントを作成します。
        CMSMetricRegistryBuilder builder = new CMSMetricRegistryBuilder();
        builder.setCmsClient(cmsClient);
// 2つの集計期間のデータを報告するために使用されるレジストリを作成します。
最終的なMetricRegistry registry = builder.build();
// または、1分の集計期間のデータを報告するために使用されるレジストリを作成します。
final MetricRegistry registry = builder.build(RecordLevel) 。 _60S);
// 値タイプを使用します。
ValueWrapper value = registry.value(MetricName.build("value"));
value.update(6.5);
// メータータイプを使用します。
MeterWrapper meter = registry.meter(MetricName.build("meter"));
meter.update(7.2);
// カウンタータイプを使用します。
CounterWrapper counter = registry.counter(MetricName.build("counter"));
counter.inc(20);
counter.de c(5);
// タイマータイプを使用します。
TimerWrapper timer = registry.timer(MetricName.build("timer"));
timer.update (30, TimeUnit.MILLISECONDS);
// ヒストグラムタイプを使用します。
HistogramWrapper histogram = registry.histogram(MetricName.build("histogram"));
ヒストグラム更新 (20);
// ゲージタイプを使用します。
最終リストリスト=新しいArrayList();
registry.gauge(MetricName.build("gauge")), new Gauge() {
                        @Override
                        public Number getValue() {
                            return list.size();
                        }
                    });