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

カスタムモニタリングを使用すると、独自のビジネスニーズに合わせてメトリックとアラームルールをカスタマイズできます。 カスタムモニタリングでは、モニタリングデータのレポートに使用できる API を提供します。 API を使用して、収集した時系列データを CloudMonitor にレポートできます。 例外が発生したときに通知を受け取るようにアラームルールを設定することもできます。

CloudMonitor は、データをレポートするための API、Java SDK、および Alibaba Cloud コマンドラインインターフェース (CLI) を提供します。

制限事項

  • 1 秒あたりの照会数 (QPS) は、中国 (北京)、中国 (上海)、中国 (杭州) では 200、中国 (張家口)、中国 (深圳) では 100、その他のリージョンでは 50 に制限されています。
  • 最大 100 のデータエントリーが一度にレポートされます。 サイズは 256 KB を超えることはできません。
  • metricName フィールドには、英数字、およびアンダースコア () を使用できます。 また、英字で始める必要があります。 開始文字が英字でない場合は、大文字の A に置き換えられます。無効な文字は、アンダースコア () に置き換えられます。
  • ディメンション フィールドには、等号 (=)、アンパサンド (&)、またはコンマ (,) は使用できません。 無効な文字はアンダースコア (_) に置き換えられます。
  • metricName dimensions の Key-Value は、64 バイトを超えることはできません。 超えた場合、Key-Value 文字列は切り捨てられます。
  • 生データのレポートは有料機能です。 無料版では、データ集計のレポートができます。 データをレポートするときは、リクエストパラメーターの type フィールドに「1」を入力する必要があります。

API を使用してデータをレポートする

API を使用して生データをレポートした後、CloudMonitor は次の統計方法を使用して、1 分間隔と 5 分間隔で統計を計算します。

  • Average: 平均値
  • Maximum: 最大値
  • Minimum: 最小値
  • Sum: 合計値
  • SampleCount:カウント
  • SumPerSecond:合計を対応する集計期間の合計秒数で割ったもの。 移動平均を使用して値を計算することもできます。
  • CountPerSecond:カウントを対応する集計期間の合計秒数で割ったもの。 移動平均を使用して値を計算することもできます。
  • LastValue:集計期間内の最後のサンプリング値。 gauge と同様です。
  • P10:10 パーセンタイルの値。 集計期間内の全データの 10% を超える値です。
  • P20:20 パーセンタイルの値。 集計期間内の全データの 20% を超える値です。
  • P30:30 パーセンタイルの値。 集計期間内の全データの 30% を超える値です。
  • P40:40 パーセンタイルの値。 集計期間内の全データの 40% を超える値です。
  • P50:50 パーセンタイルの値。 中央値で、集計期間内の全データの 50% を超える値です。
  • P60:60 パーセンタイルの値。 集計期間内の全データの 60% を超える値です。
  • P70:70 パーセンタイルの値。 集計期間内の全データの 70% を超える値です。
  • P75:75 パーセンタイルの値。 集計期間内の全データの 75% を超える値です。
  • P80:80 パーセンタイルの値。 集計期間内の全データの 80% を超える値です。
  • P90:90 パーセンタイルの値。 集約期間内の全データの 90% を超える値です。
  • P95:95 パーセンタイルの値。 集計期間内の全データの 95% を超える値です。
  • P98:98 パーセンタイルの値。 集計期間内の全データの 98% を超える値です。
  • P99:99 パーセンタイルの値。 集計期間内の全データの 99% を超える値です。
  • 署名アルゴリズム

    現在、HMAC-SHA1 署名アルゴリズムのみがサポートされています。

    1. Alibaba Cloud AccessKey ペアを準備します。

      API リクエストのデジタル署名を生成するには、AccessKey ID とAccessKey Secret で構成される AccessKey ペアを使用する必要があります。 既存の AccessKey ペアを使用することも、新しいペアを作成することもできます。 AccessKey ペアは有効でなければなりません。

    2. リクエストの署名文字列を生成します。

      API 署名文字列は、HTTP リクエストの MethodHeader、および Body フィールドから構成されます。

      1. SignString = VERB + \n + CONTENT-MD5 + \n + CONTENT-TYPE + \n + DATE + \n + CanonicalizedHeaders + \n + CanonicalizedResource

      上記の式で、\n は改行エスケープ文字を示し、プラス記号 (+) は、文字列連結演算子を示します。 その他の部分は次のように定義されています。

      名前 定義
      VERB HTTP リクエストのメソッド名 PUT、GET、POST
      CONTENT-MD5 HTTP リクエストの Body フィールドの MD5 値。 値は大文字の文字列でなければなりません。 875264590688CA6171F6228AF5BBB3D2
      CONTENT-TYPE リクエスト内の Bodyフィールドの型 application/json
      DATE HTTP リクエスト内の標準タイムスタンプヘッダー (RFC 1123 時刻形式に従い、GMT 標準時を使用) Mon, 3 Jan 2010 08:33:47 GMT
      CanonicalizedHeaders HTTP リクエストで x-cms および x-acs という接頭辞が付いたカスタムヘッダーで構成された文字列 x-cms-api-version:0.1.0\nx-cms-signature
      CanonicalizedResource 次のセクションで説明しているように、HTTP リクエストリソースによって構成された文字列。 /event/custom/upload
      上記の表の CanonicalizedHeaders は、次のように構成されています。
      1. x-cmsx-acs の接頭辞を持つすべての HTTP リクエストヘッダー名を小文字に変換します。
      2. 前の手順で取得した CMS カスタムリクエストヘッダーを、辞書式順序の昇順でソートします。
      3. リクエストヘッダーとコンテンツの間の、区切り文字の両側にあるスペースをすべて削除します。
      4. すべてのヘッダーとコンテンツを \n セパレーターで区切り、最終的なCanonicalizedHeaders を作成します。
      1. <p class="p" id="p-cyq-zjn-g73">上記の表の CanonicalizedResource は、次のように構成されています。</p>
      2. <ol class="ol" type="a" id="ol-tcn-phk-zdb">
      3. <li class="li" id="li-8i0-t2a-ro1">CanonicalizedResource を空の文字列 ("") に設定します。</li>
      4. <li class="li" id="li-vs7-euc-bv3"><code class="ph codeph" id="codeph-5sk-ybe-l7r">/event/custom/upload</code> などのアクセスしたい URI を引用符で囲みます。
      5. </li>
      6. <li class="li" id="li-m7o-uwg-sra">リクエストにクエリ文字列 (<code class="ph codeph" id="codeph-v0s-izd-1if">QUERY_STRING </code>) が含まれる場合、疑問符( <code class="ph codeph" id="codeph-9pw-buq-0dp">?</code> )とクエリ文字列を CanonicalizedResource 文字列の末尾に追加します。
      7. <p class="p" id="p-608-s86-5ty"><code class="ph codeph" id="codeph-0fc-t3l-a12">QUERY_STRING </code> は、URL に含まれるリクエストパラメーターの辞書式文字列です。 等号 (<code class="ph codeph" id="codeph-be2-jao-ubt">=</code>) がパラメーターの名前と値の間に配置され、文字列を形成します。 key-value のペアは、辞書式順序の昇順でソートされ、アンパサンド (<code class="ph codeph" id="codeph-5h0-mwp-k0z">&amp;</code>) で接続され文字列を形成します。 式は次のとおりです。
      8. </p>
      9. <pre class="pre codeblock" id="codeblock-zsc-9n8-n2o"><code>QUERY_STRING = "KEY1=VALUE1" + "&amp;" + "KEY2=VALUE2"</code></pre>
      10. </li>
      11. </ol>
      12. </li>
      13. <li class="li" id="li-346-roz-mib">リクエストのデジタル署名を生成します。
      14. <div class="p" id="p-5o9-7y6-hhz">現在、HMAC-SHA1 署名アルゴリズムのみがサポートされています。 次の式は署名を生成するために使用されます。
      15. <pre class="pre codeblock" id="codeblock-39p-ne3-yq0"><code>Signature = base16(hmac-sha1(UTF8-Encoding-Of(SignString), AccessKeySecret))</code></pre>
      16. </div>
      17. </li>
      18. </ol>
      19. </li>
      20. <li class="li" id="li-s1z-mn1-nc9"><strong class="ph b" id="b-xus-4u5-hyt">リクエストパラメーター</strong>
      21. <table class="table" id="table-rps-1pk-zdb">
      22. <caption></caption>
      23. <colgroup>
      24. <col style="width:25%">
      25. <col style="width:25%">
      26. <col style="width:25%">
      27. <col style="width:25%">
      28. </colgroup>
      29. <thead class="thead" id="thead-5sa-269-adr">
      30. <tr id="row-xbw-j0r-qgo">
      31. <th class="entry align-left colsep-1 rowsep-1" id="concept-b2h-ddb-5db-entry-u1r-qan-r5n">パラメーター</th>
      32. <th class="entry align-left colsep-1 rowsep-1" id="concept-b2h-ddb-5db-entry-1k7-y71-2wb">データ型</th>
      33. <th class="entry align-left colsep-1 rowsep-1" id="concept-b2h-ddb-5db-entry-43u-1b9-nyz">必須/省略可能</th>
      34. <th class="entry align-left colsep-1 rowsep-1" id="concept-b2h-ddb-5db-entry-diq-byj-tkf">説明</th>
      35. </tr>
      36. </thead>
      37. <tbody class="tbody" id="tbody-lf2-w23-enh">
      38. <tr id="row-rde-83m-jst">
      39. <td class="entry align-left colsep-1 rowsep-1" id="entry-wew-ml8-075"><span class="keyword parmname" id="parmname-oql-nle-s0a">groupId</span></td>
      40. <td class="entry align-left colsep-1 rowsep-1" id="entry-22d-j1e-9ar">long</td>
      41. <td class="entry align-left colsep-1 rowsep-1" id="entry-qd1-wbr-k71">必須</td>
      42. <td class="entry align-left colsep-1 rowsep-1" id="entry-4r9-y5f-e5h">アプリケーショングループ ID</td>
      43. </tr>
      44. <tr id="row-gvi-ae0-24i">
      45. <td class="entry align-left colsep-1 rowsep-1" id="entry-9qq-ihn-pbl"><span class="keyword parmname" id="parmname-xhv-15l-eha">metricName</span></td>
      46. <td class="entry align-left colsep-1 rowsep-1" id="entry-c36-34t-eb9">string</td>
      47. <td class="entry align-left colsep-1 rowsep-1" id="entry-11w-xau-hz0">必須</td>
      48. <td class="entry align-left colsep-1 rowsep-1" id="entry-d8y-z0l-9l2">メトリックの名前。 メトリック名には、英数字、およびアンダースコア (_)、ハイフン (-)、ピリオド (.)、スラッシュ (/)、バックスラッシュなどのコネクターを使用できます。
      49. 他の文字は無効です。 最大長は 64 バイトです。 超過した文字は、文字列から切り捨てられます。
      50. </td>
      51. </tr>
      52. <tr id="row-4ek-73d-dmf">
      53. <td class="entry align-left colsep-1 rowsep-1" id="entry-ko5-gyc-g1h"><span class="keyword parmname" id="parmname-6e1-fqf-8s1">dimensions</span></td>
      54. <td class="entry align-left colsep-1 rowsep-1" id="entry-oq0-p57-1qi">object</td>
      55. <td class="entry align-left colsep-1 rowsep-1" id="entry-xq0-nkq-148">必須</td>
      56. <td class="entry align-left colsep-1 rowsep-1" id="entry-thu-l5q-90v">ディメンションマップ。 key-value ペアは、すべて文字列です。 文字列には、英数字、およびアンダースコア (_)、ハイフン (-)、ピリオド (.)、スラッシュ
      57. (/)、バックスラッシュなどのコネクターを使用できます。 key-value ペアの最大数は 10 です。 key の最大長は 64 バイトです。 value の最大長は
      58. 64 バイトです。 超過した文字は文字列から切り捨てられます。
      59. </td>
      60. </tr>
      61. <tr id="row-wc5-w38-gk1">
      62. <td class="entry align-left colsep-1 rowsep-1" id="entry-d5b-god-7g0"><span class="keyword parmname" id="parmname-mdf-5mw-odr">time</span></td>
      63. <td class="entry align-left colsep-1 rowsep-1" id="entry-sze-cjc-44q">string</td>
      64. <td class="entry align-left colsep-1 rowsep-1" id="entry-2c0-ts3-ef5">必須</td>
      65. <td class="entry align-left colsep-1 rowsep-1" id="entry-ul2-dv4-2uu">メトリック値が生成された時刻。 20171012T132456.888 + 0800 や1508136760000 など、 "yyyyMMdd'T'HHmmss.SSSZ"
      66. 形式、または long 形式のタイムスタンプをサポートしています。
      67. </td>
      68. </tr>
      69. <tr id="row-t2r-wgr-as2">
      70. <td class="entry align-left colsep-1 rowsep-1" id="entry-83k-4n6-mv5"><span class="keyword parmname" id="parmname-qry-qw2-orz">type</span></td>
      71. <td class="entry align-left colsep-1 rowsep-1" id="entry-c7f-5tn-ifu">int</td>
      72. <td class="entry align-left colsep-1 rowsep-1" id="entry-9lz-1nc-i80">必須</td>
      73. <td class="entry align-left colsep-1 rowsep-1" id="entry-t5v-zjt-sug">
      74. <p class="p" id="p-uzv-b86-0ti">レポートされた値のデータ型。 <span class="keyword option" id="option-d9c-ah0-zvo">0 </span> は生データを表し、<span class="keyword option" id="option-hh3-v6q-s6o">1</span> は集計データを表します。
      75. </p>
      76. <p class="p" id="p-zxt-lf4-1i8">集計データをレポートするときは、60 秒と 300 秒の両方の集計期間でデータをレポートすることを推奨します。 それ以外では、7 日以上経過したモニタリングデータを照会することはできません。</p>
      77. </td>
      78. </tr>
      79. <tr id="row-vp1-4ru-jx2">
      80. <td class="entry align-left colsep-1 rowsep-1" id="entry-q9j-lwb-kwf"><span class="keyword parmname" id="parmname-843-ztp-e4y">period</span></td>
      81. <td class="entry align-left colsep-1 rowsep-1" id="entry-xga-0d9-8ba">string</td>
      82. <td class="entry align-left colsep-1 rowsep-1" id="entry-9wx-j2b-or4">省略可能</td>
      83. <td class="entry align-left colsep-1 rowsep-1" id="entry-5gx-use-cr1">
      84. <p class="p" id="p-3zm-kxk-g2i">集計サイクル (秒単位)。</p>
      85. <p class="p" id="p-zun-ndz-kzr"><span class="keyword parmname" id="parmname-qx1-abx-3c5">type</span> の値が <span class="keyword option" id="option-93z-kbj-96d">1</span> の場合 、このフィールドは必須です。 値は、60 または 300 です。
      86. </p>
      87. </td>
      88. </tr>
      89. <tr id="row-z5c-pp2-gih">
      90. <td class="entry align-left colsep-1 rowsep-1" id="entry-678-qih-qbf"><span class="keyword parmname" id="parmname-aov-bhy-sbc">values</span></td>
      91. <td class="entry align-left colsep-1 rowsep-1" id="entry-dg0-si5-mfr">object</td>
      92. <td class="entry align-left colsep-1 rowsep-1" id="entry-846-6qa-qq0">必須</td>
      93. <td class="entry align-left colsep-1 rowsep-1" id="entry-2ky-4nc-kpf">メトリック値のコレクション。 <span class="keyword parmname" id="parmname-dgs-jbl-uki">type</span> の値が <span class="keyword option" id="option-ps4-7zr-ndt">0</span> の場合 、key は "value" のみとなり、生データがレポートされます。 CloudMonitor は、集計期間中の生データを最大、カウント、合計などのいくつかのデータタイプに集計します。
      94. </td>
      95. </tr>
      96. </tbody>
      97. </table>
      98. </li>
      99. </ul>
      100. </section>
      101. <section class="section" id="section-ecw-2h5-xfb">
      102. <h2 class="title sectiontitle" id="title-dgf-s47-usi">Java SDK を使用したデータのレポート</h2>
      103. <ul class="ul" id="ul-drq-qh5-xfb">
      104. <li class="li" id="li-pux-51n-52s"><strong class="ph b" id="b-rky-l4u-vff">Java SDK のインストール</strong>
      105. <div class="p" id="p-bcm-44q-e94">Maven を使用して Java SDK をインストールするときは、次の依存関係を追加してください。
      106. <pre class="pre codeblock" id="codeblock-pn6-xkc-2qj"><code>&lt;dependency&gt;
      107. &lt;groupId&gt;com.aliyun.openservices&lt;/groupId&gt;
      108. &lt;artifactId&gt;aliyun-cms&lt;/artifactId&gt;
      109. &lt;version&gt;0.2.4&lt;/version&gt;

      </dependency>

  1. </li>
  2. <li class="li" id="li-i9v-54m-ma1"><strong class="ph b" id="b-rkl-76e-2d9">レスポンス要素</strong>
  3. <p class="p" id="p-fkl-p23-ywh">システムは HTTP ステータスコード 200 を返します。</p>
  4. </li>
  5. <li class="li" id="li-3s0-y6p-tir"><strong class="ph b" id="b-fh0-it5-3cv"></strong>
  6. <ul class="ul" id="ul-erq-qh5-xfb">
  7. <li class="li" id="li-9vd-s15-qs9">リクエストの例
  8. <pre class="pre codeblock" id="codeblock-idr-juw-ygr"><code>POST /metric/custom/upload HTTP/1.1

Host: metrichub-cms-cn-hangzhou.aliyuncs.comx-cms-api-version:1.0Authorization:yourAccessKeyId:yourAccessKeySecretHost:metrichub-cms-cn-hangzhou.aliyuncs.com”Date:Mon, 23 Oct 2017 06:51:11 GMTContent-Length:180x-cms-signature:hmac-sha1Content-MD5:E9EF574D1AEAAA370860FE37856995CDx-cms-ip:30.27.84.196User-Agent:cms-java-sdk-v-1.0Content-Type:application/json[{“groupId”:101,”metricName”:””,”dimensions”:{“sampleName1”:”value1”,”sampleName2”:”value2”},”time”:””,”type”:0,”period”:60,”values”:{“value”:10.5,”Sum”:100}}]

  1. <li class="li" id="li-c1x-buv-zel">レスポンスの例
  2. <pre class="pre codeblock" id="codeblock-j36-olv-nkw"><code>{

“code”:”200”, “msg”:””//The returned msg is null when the reporting is normal.}

  1. </ul>
  2. </li>
  3. <li class="li" id="li-851-87s-b5o"><strong class="ph b" id="b-ctd-5ks-mmw">コードの例</strong>
  4. <ul class="ul" id="ul-l5k-vh5-xfb">
  5. <li class="li" id="li-5ps-6ne-v12"><strong class="ph b" id="b-c3w-bda-5o4">生データのレポート</strong></li>
  6. </ul>
  7. <pre class="pre codeblock" id="codeblock-t79-0br-lmu"><code>CMSClientInit.groupId = 101L;//Set the common group ID.
  8. CMSClient cmsClient = new CMSClient(endpoint, accKey, secret);//Initialize the client.
  9. CustomMetricUploadRequest request = CustomMetricUploadRequest.builder()
  10. .append(CustomMetric.builder()
  11. .setMetricName("testMetric")//The metric name
  12. .setGroupId(102L)//Set the custom group ID.
  13. .setTime(new Date())
  14. .setType(CustomMetric.TYPE_VALUE)//The type is raw data.
  15. .appendValue(MetricAttribute.VALUE, 1f)//The original value. Key must be an original value.
  16. .appendDimension("key", "value")//Add a dimension.
  17. .appendDimension("ip", "127.0.0.1")//Add a dimension.
  18. .build())
  19. .build();
  20. CustomMetricUploadResponse response = cmsClient.putCustomMetric(request);//Report data.
  21. System.out.println(JSONObject.toJSONString(response));</code></pre>
  22. <ul class="ul" id="ul-mnv-x35-xfb">
  23. <li class="li" id="li-bq1-0yc-9sn"><strong class="ph b" id="b-t48-14i-2lc">複数の集計期間の集計データを自動的にレポートします。</strong></li>
  24. </ul>
  25. <p class="p" id="p-vpa-x5e-stt">SDK ではローカル集計後のデータレポートをサポートしています。 データは 1 分または 5 分の期間で集計できます。</p>
  26. <table class="table" id="table-irq-qh5-xfb">
  27. <caption></caption>
  28. <colgroup>
  29. <col style="width:25%">
  30. <col style="width:25%">
  31. <col style="width:25%">
  32. <col style="width:25%">
  33. </colgroup>
  34. <thead class="thead" id="thead-5d6-o0v-gy7">
  35. <tr id="row-gqu-37j-81d">
  36. <th class="entry align-left colsep-1 rowsep-1" id="concept-b2h-ddb-5db-entry-apa-4rn-dmb">データ型</th>
  37. <th class="entry align-left colsep-1 rowsep-1" id="concept-b2h-ddb-5db-entry-rvh-320-i3x">説明</th>
  38. <th class="entry align-left colsep-1 rowsep-1" id="concept-b2h-ddb-5db-entry-apx-l7n-6kt">集計値</th>
  39. <th class="entry align-left colsep-1 rowsep-1" id="concept-b2h-ddb-5db-entry-d5d-kc0-52p">メモリ使用量 (名前、ディメンション、個々の時系列、および個々の集計期間を除く)</th>
  40. </tr>
  41. </thead>
  42. <tbody class="tbody" id="tbody-smn-7l3-qmf">
  43. <tr id="row-i9o-pul-18m">
  44. <td class="entry align-left colsep-1 rowsep-1" id="entry-xcq-9k1-veg">value</td>
  45. <td class="entry align-left colsep-1 rowsep-1" id="entry-tqn-g35-59r">代表的な値型</td>
  46. <td class="entry align-left colsep-1 rowsep-1" id="entry-0ls-yhe-wd0">LastValue 以外のすべてのプロパティ</td>
  47. <td class="entry align-left colsep-1 rowsep-1" id="entry-myw-q8o-zde">約 4 KB</td>
  48. </tr>
  49. <tr id="row-o86-7qt-2p5">
  50. <td class="entry align-left colsep-1 rowsep-1" id="entry-h25-sav-cyu">gauge</td>
  51. <td class="entry align-left colsep-1 rowsep-1" id="entry-yst-6ad-nvo">サンプル値</td>
  52. <td class="entry align-left colsep-1 rowsep-1" id="entry-gik-0ag-e8s">LastValue</td>
  53. <td class="entry align-left colsep-1 rowsep-1" id="entry-o6v-t7j-n7v">4 バイト</td>
  54. </tr>
  55. <tr id="row-7k1-v38-ay0">
  56. <td class="entry align-left colsep-1 rowsep-1" id="entry-o59-maz-8cn">meter</td>
  57. <td class="entry align-left colsep-1 rowsep-1" id="entry-4t7-38n-qdf">合計と速度</td>
  58. <td class="entry align-left colsep-1 rowsep-1" id="entry-dfr-vlp-phv">Sum、SumPerSecond</td>
  59. <td class="entry align-left colsep-1 rowsep-1" id="entry-ae8-5ej-gcm">50 バイト</td>
  60. </tr>
  61. <tr id="row-we3-zov-6qd">
  62. <td class="entry align-left colsep-1 rowsep-1" id="entry-rhh-tvf-ffc">counter</td>
  63. <td class="entry align-left colsep-1 rowsep-1" id="entry-o07-vfs-df8">カウント</td>
  64. <td class="entry align-left colsep-1 rowsep-1" id="entry-310-1h8-kcl">SampleCount</td>
  65. <td class="entry align-left colsep-1 rowsep-1" id="entry-ewa-m0x-rgn">10 バイト</td>
  66. </tr>
  67. <tr id="row-o7f-ago-1mg">
  68. <td class="entry align-left colsep-1 rowsep-1" id="entry-6je-zk4-7ou">timer</td>
  69. <td class="entry align-left colsep-1 rowsep-1" id="entry-sqv-pym-tby">計算時間</td>
  70. <td class="entry align-left colsep-1 rowsep-1" id="entry-6yp-hb0-mte">SampleCount, CountPerSecond, Average, Maximum, Minimum, PXX(P10-P99)</td>
  71. <td class="entry align-left colsep-1 rowsep-1" id="entry-mbx-saz-gip">約 4 KB</td>
  72. </tr>
  73. <tr id="row-m4u-5dj-4cf">
  74. <td class="entry align-left colsep-1 rowsep-1" id="entry-n3l-z77-np4">histogram</td>
  75. <td class="entry align-left colsep-1 rowsep-1" id="entry-8oh-8d7-qog">分布</td>
  76. <td class="entry align-left colsep-1 rowsep-1" id="entry-q0g-ece-npp">SampleCount, Average, Maximum, Minimum, PXX(P10-P99)</td>
  77. <td class="entry align-left colsep-1 rowsep-1" id="entry-mje-nkk-8db">約 4 KB</td>
  78. </tr>
  79. </tbody>
  80. </table>
  81. <pre class="pre codeblock" id="codeblock-s2d-nsp-ftx"><code>//Initialization
  82. CMSClientInit.groupId = 0L;
  83. CMSClient cmsClient = new CMSClient(accKey, secret, endpoint);//Create a client.
  84. CMSMetricRegistryBuilder builder = new CMSMetricRegistryBuilder();
  85. builder.setCmsClient(cmsClient);
  86. final MetricRegistry registry = builder.build();//Create a registry, which includes two aggregation periods.
  87. //Or final MetricRegistry registry = builder.build(RecordLevel. _60S);//Create a registry that only includes aggregate data with an aggregation period of 1 minute.

//Use value.ValueWrapper value = registry.value(MetricName.build(“value”));value.update(6.5);//Use meter.MeterWrapper meter = registry.meter(MetricName.build(“meter”));meter.update(7.2);//Use counter.CounterWrapper counter = registry.counter(MetricName.build(“counter”));counter.inc(20);counter.dec(5);//Use timer.TimerWrapper timer = registry.timer(MetricName.build(“timer”));timer.update(30, TimeUnit.MILLISECONDS);//Use histogram.HistogramWrapper histogram = registry.histogram(MetricName.build(“histogram”));histogram.update(20);//Use gauge.final List list = new ArrayList();registry.gauge(MetricName.build(“gauge”), new Gauge() { @Override public Number getValue() { return list.size(); } });

  1. </ul>
  2. </section>
  3. <section class="section" id="section-ggy-bqk-zdb">
  4. <h2 class="title sectiontitle" id="title-21b-b9k-3tu">Alibaba Cloud CLI を使用したデータのレポート</h2>
  5. <strong class="ph b" id="b-9xm-tr8-rk1">Alibaba Cloud アカウントの準備</strong>
  6. <p class="p" id="p-pny-mad-5vj">Alibaba Cloud アカウントを作成します。次に、アカウント用の RAM ユーザーを作成し、CloudMonitor の権限を持つ RAM ユーザー AccessKey
  7. を生成したことを確認してください。
  8. </p>
  9. <ul class="ul" id="ul-vwk-ckj-zdb">
  10. <li class="li" id="li-cd3-cfz-wdf"><strong class="ph b" id="b-7cz-d0e-y70">RAM ユーザーの作成</strong><br><img class="image" id="image-l1n-edx-lvt" src="http://help-static-aliyun-doc.aliyuncs.com/assets/img/3512649651/p47465.png"><br></li>
  11. <li class="li" id="li-6el-yhu-sz0"><strong class="ph b" id="b-gch-7ux-jxf">RAM ユーザーの AccessKeyID と AccessKey Secret を生成</strong><br><img class="image" id="image-mfk-7fd-h2l" src="http://help-static-aliyun-doc.aliyuncs.com/assets/img/3512649651/p47466.png"><br></li>
  12. <li class="li" id="li-0k4-alt-9qn"><strong class="ph b" id="b-blz-24k-n6r">RAM ユーザーに対して、Cloud Monitor アクセス権限を付与</strong><br><img class="image" id="image-wqf-h6b-54g" src="http://help-static-aliyun-doc.aliyuncs.com/assets/img/4512649651/p47474.png"><br></li>
  13. </ul>
  14. <strong class="ph b" id="b-4d7-1t0-7t3">Alibaba Cloud CLI のインストール</strong>
  15. <p class="p" id="p-i4s-ywi-5x2">システム要件:Linux、UNIX、または Mac OS</p>
  16. <ul class="ul" id="ul-eka-ozt-4kq">
  17. <li class="li" id="li-8hw-lon-7hg">
  18. <p class="p" id="p-h7o-r56-p14">方法 1. インストールパッケージをダウンロードする</p>
  19. 最新の CLI は Alibaba Cloud CLI GitHub からダウンロードできます。 CLI は MacOS、Linux、および Windows (x64)
  20. で動作します。 パッケージを解凍したら、ファイルを /usr/local/bin ディレクトリに移動するか、 $PATH 環境変数に追加します。
  21. </li>
  22. <li class="li" id="li-dbd-c5v-4um">
  23. <p class="p" id="p-v39-hr4-7en">方法 2. ソースコードをコンパイルする</p>
  24. Golang 環境をインストールして設定し、手順に従ってソースコードをダウンロードしてコンパイルします。
  25. <pre class="pre codeblock" id="codeblock-7zi-2ns-6p1"><code>...

$ mkdir -p $GOPATH/src/github.com/aliyun$ cd $GOPATH/src/github.com/aliyun$ git clone http://github.com/aliyun/aliyun-cli.git$ git clone http://github.com/aliyun/aliyun-openapi-meta.git$ cd aliyun-cli$ make install…

  1. </ul>
  2. <strong class="ph b" id="b-6hc-lc0-nmz">Alibaba Cloud CLI の設定 </strong>
  3. <p class="p" id="p-5l8-9h9-2la">Alibaba Cloud CLI を使用する前に、aliyun configure コマンドを実行して、Alibaba Cloud リソースを呼び出すための AccessKey、リージョン、および言語を設定する必要があります。
  4. Alibaba Cloud コンソールの AccessKey ページで、AccessKey を作成および表示するか、システム管理者から AccessKey を入手することができます。
  5. </p>
  6. <pre class="pre codeblock" id="codeblock-p1q-xwi-969"><code>$ aliyun configure

Configuring profile ‘default’ …Aliyun Access Key ID [None]: <Your AccessKey ID>Aliyun Access Key Secret [None]: <Your AccessKey Secret>Default Region Id [None]: cn-hangzhouDefault output format [json]: jsonDefault Language [zh]: zh

Alibaba Cloud CLI は、マルチユーザー設定をサポートしています。 $ aliyun configure —profile user1 コマンドを実行して、Alibaba Cloud API を呼び出すことができる RAM ユーザーを指定できます。 次の表に示すように、 $ aliyun configure list コマンドを実行して RAM ユーザー設定を表示できます。 Profile 列のアスタリスク (*) は、その設定が使用されていることを示します。

  1. <table class="table" id="table-v3j-278-j8q">
  2. <caption></caption>
  3. <colgroup>
  4. <col style="width:20%">
  5. <col style="width:20%">
  6. <col style="width:20%">
  7. <col style="width:20%">
  8. <col style="width:20%">
  9. </colgroup>
  10. <thead class="thead" id="thead-dyc-4ik-efg">
  11. <tr id="row-v7l-j6s-uci">
  12. <th class="entry" id="concept-b2h-ddb-5db-entry-tjb-84x-r08">Profile</th>
  13. <th class="entry" id="concept-b2h-ddb-5db-entry-8q5-mfm-n7j">Credential</th>
  14. <th class="entry" id="concept-b2h-ddb-5db-entry-p4x-i9e-jp2">Valid</th>
  15. <th class="entry" id="concept-b2h-ddb-5db-entry-rd0-y21-wn0">Region</th>
  16. <th class="entry" id="concept-b2h-ddb-5db-entry-c54-qzk-tws">Language</th>
  17. </tr>
  18. </thead>
  19. <tbody class="tbody" id="tbody-ktt-hcj-4fy">
  20. <tr id="row-n8t-n7f-cqf">
  21. <td class="entry" id="entry-j8z-koo-4tx">default * </td>
  22. <td class="entry" id="entry-gca-nao-isy"> AK:***f9b</td>
  23. <td class="entry" id="entry-3bi-212-12g">Valid</td>
  24. <td class="entry" id="entry-ogc-dyy-dyw">cn-beijing</td>
  25. <td class="entry" id="entry-7ya-8tl-hon">zh</td>
  26. </tr>
  27. <tr id="row-uqu-lvc-tc9">
  28. <td class="entry" id="entry-3ek-3p4-a6c">aaa</td>
  29. <td class="entry" id="entry-vr3-b7u-795">AK:******</td>
  30. <td class="entry" id="entry-1a1-86t-6a2">Invalid</td>
  31. <td class="entry" id="entry-c0i-rlo-dz6"></td>
  32. <td class="entry" id="entry-49o-laq-nwq"></td>
  33. </tr>
  34. <tr id="row-b48-py1-406">
  35. <td class="entry" id="entry-973-603-ned">test</td>
  36. <td class="entry" id="entry-u49-ufo-d3o">AK:***456</td>
  37. <td class="entry" id="entry-dyq-s4g-8xd">Valid</td>
  38. <td class="entry" id="entry-ba9-uqy-3mt"></td>
  39. <td class="entry" id="entry-ese-rww-8dr">en</td>
  40. </tr>
  41. <tr id="row-05t-b26-dwt">
  42. <td class="entry" id="entry-9dt-2z5-yzl">ecs</td>
  43. <td class="entry" id="entry-gtn-prl-tvs">EcsRamRole:EcsTest</td>
  44. <td class="entry" id="entry-4zy-ztk-rdo">Valid</td>
  45. <td class="entry" id="entry-05q-j1z-1c6">cn-beijing</td>
  46. <td class="entry" id="entry-44b-n70-5cn">en</td>
  47. </tr>
  48. </tbody>
  49. </table>
  50. <p class="p" id="p-1ec-f3c-fg7">Alibaba Cloud CLI では、configure コマンドの後に --mode &lt;authenticationMethod&gt;パラメーターを追加することで、さまざまな認証方法を使用できます。
  51. 現在、以下の 3 つの認証方法がサポートされています。
  52. </p>
  53. <table class="table" id="table-vua-fo9-b2q">
  54. <caption></caption>
  55. <colgroup>
  56. <col style="width:50%">
  57. <col style="width:50%">
  58. </colgroup>
  59. <thead class="thead" id="thead-i56-x4r-m9z">
  60. <tr id="row-t16-80u-ohv">
  61. <th class="entry" id="concept-b2h-ddb-5db-entry-nla-7j0-rmt">認証方法</th>
  62. <th class="entry" id="concept-b2h-ddb-5db-entry-pvv-8nz-mlg">説明</th>
  63. </tr>
  64. </thead>
  65. <tbody class="tbody" id="tbody-0b5-fbq-uk4">
  66. <tr id="row-jly-k6e-wgp">
  67. <td class="entry" id="entry-j67-i5c-66i">AK</td>
  68. <td class="entry" id="entry-qv9-4lc-wv1">AccessKey ID と Access Key Secret を含みます。</td>
  69. </tr>
  70. <tr id="row-dqr-ey6-ig6">
  71. <td class="entry" id="entry-9yq-x1y-t6f">STS Token</td>
  72. <td class="entry" id="entry-nzg-xx0-1in">STS トークンです。</td>
  73. </tr>
  74. <tr id="row-66f-85z-g87">
  75. <td class="entry" id="entry-4e1-kf1-8qf">RamRoleArn</td>
  76. <td class="entry" id="entry-4m5-cm4-wz7">RAM ユーザーの AssumeRole アクションを呼び出します。</td>
  77. </tr>
  78. <tr id="row-y7l-r1e-v00">
  79. <td class="entry" id="entry-vmy-4ft-2h3">EcsRamRole</td>
  80. <td class="entry" id="entry-nlx-vju-pzh">ECS インスタンスの EcsRamRole アクションを呼び出します。</td>
  81. </tr>
  82. </tbody>
  83. </table>
  84. <strong class="ph b" id="b-def-97e-sir">モニタリングデータのレポート</strong>
  85. <p class="p" id="p-aen-lhx-gsz"><span class="keyword apiname" id="apiname-8b3-ofm-e22">PutCustomMetric</span> API を使用して、モニタリングデータをレポートします。
  86. </p>
  87. <pre class="pre codeblock" id="codeblock-mby-6op-2wl"><code>aliyun cms PutCustomMetric --MetricList. 1.MetricName cpu_total --MetricList. 1.Dimensions '{"sampleName1":"value1","sampleName2":"value2"}' --MetricList. 1.Time 1555390981421 --MetricList. 1.Type 0 --MetricList. 1.Period 60 --MetricList. 1.Values '{"value":10.5}' --MetricList. 1.GroupId "0"</code></pre>
  88. <p class="p" id="p-uxm-yr9-fuy">データが正常にレポートされた場合、ステータスコード 200 が返されます。</p>
  89. <pre class="pre codeblock" id="codeblock-f46-e4v-gbz"><code>{

“Message”: “success”, “RequestId”: “F69F5623-DDD6-42AE-AE59-87A2B841620B”, “Code”: “200”} エラーコード

  1. <table class="table" id="table-j4t-hqj-zdb">
  2. <caption></caption>
  3. <colgroup>
  4. <col style="width:50%">
  5. <col style="width:50%">
  6. </colgroup>
  7. <thead class="thead" id="thead-vax-vi1-zia">
  8. <tr id="row-9vh-d57-402">
  9. <th class="entry align-left colsep-1 rowsep-1" id="concept-b2h-ddb-5db-entry-isx-rav-4ei">エラーコード</th>
  10. <th class="entry align-left colsep-1 rowsep-1" id="concept-b2h-ddb-5db-entry-ib9-7r9-m8x">説明</th>
  11. </tr>
  12. </thead>
  13. <tbody class="tbody" id="tbody-sli-14s-6yu">
  14. <tr id="row-njr-fb4-pw0">
  15. <td class="entry align-left colsep-1 rowsep-1" id="entry-fmk-ror-e0x">200</td>
  16. <td class="entry align-left colsep-1 rowsep-1" id="entry-5ei-253-ccs">正常</td>
  17. </tr>
  18. <tr id="row-xi1-xbx-ruz">
  19. <td class="entry align-left colsep-1 rowsep-1" id="entry-42d-1pj-usb">206</td>
  20. <td class="entry align-left colsep-1 rowsep-1" id="entry-apc-8i0-vvk">
  21. <p class="p" id="p-srq-ycu-5xn">一部は正常</p>
  22. <p class="p" id="p-dil-kgx-al1">"reach Max time series num" が返された場合は、最大時系列数に達しています。 クォータを増やすか、不要な時系列を削除することを推奨します。</p>
  23. <p class="p" id="p-b2i-zt5-yvz">"not allowed original value, please upgrade service" が返された場合、生データのレポートをサポートしていない無料バージョンを使用していることを示しています。</p>
  24. <p class="p" id="p-59x-8ij-ayt">"type is invalid" が返された場合、type パラメーターの値は無効です。 このパラメーターの値が 0 または 1 であることを確認してください。</p>
  25. </td>
  26. </tr>
  27. <tr id="row-n76-4b2-ck2">
  28. <td class="entry align-left colsep-1 rowsep-1" id="entry-g54-4ol-c6o">400</td>
  29. <td class="entry align-left colsep-1 rowsep-1" id="entry-ipo-r9e-f24">クライアントリクエストの構文エラー</td>
  30. </tr>
  31. <tr id="row-klz-7u1-dzm">
  32. <td class="entry align-left colsep-1 rowsep-1" id="entry-f8z-luo-zei">403</td>
  33. <td class="entry align-left colsep-1 rowsep-1" id="entry-o16-08c-8ic">検証失敗、限界速度、または未許可</td>
  34. </tr>
  35. <tr id="row-tq2-2et-w1q">
  36. <td class="entry align-left colsep-1 rowsep-1" id="entry-zoh-9qn-9o1">500</td>
  37. <td class="entry align-left colsep-1 rowsep-1" id="entry-7c8-p0j-48u">内部サーバーエラー</td>
  38. </tr>
  39. </tbody>
  40. </table>
  41. <strong class="ph b" id="b-y1z-i61-nca">RAM ユーザー認証</strong>
  42. <p class="p" id="p-wef-nsp-ehd">イベントデータを RAM ユーザーの AccessKe でレポートする前に、対応する RAM ユーザーに CloudMonitor 権限を付与する必要があります。
  43. これらのアクセス権限が付与されていない場合は、データをレポートするときに "cannot upload, please use ram to auth" というプロンプトが表示されます。
  44. </p>
  45. <ol class="ol" id="ol-xvm-mqj-zdb">
  46. <li class="li" cond-props="intl" id="li-koq-w4p-uag"><a href="https://ram.console.aliyun.com">RAM コンソール</a>にログインします。
  47. </li>
  48. <li class="li" id="li-n5t-j3i-8by">左側のナビゲーションウィンドウで、<span class="ph uicontrol" id="uicontrol-zc6-qaj-ps8">[ユーザー]</span> を選択します。 <span class="keyword wintitle" id="wintitle-9j5-imu-v68">[ユーザー]</span> ページが表示されます。
  49. </li>
  50. <li class="li" id="li-1yl-mlj-ija">該当する RAM ユーザーを選択し、<span class="ph uicontrol" id="uicontrol-fvx-8sf-c5n">[権限の追加] </span> をクリックします。<br><img class="image" id="image-wlz-kwd-rg3" src="http://help-static-aliyun-doc.aliyuncs.com/assets/img/4512649651/p47475.png"><br></li>
  51. <li class="li" id="li-59i-ocv-f8l">表示されたページで<span class="ph uicontrol" id="uicontrol-6va-kks-qx9"> [AliyunCloudMonitorFullAccess]</span> を選択し、<span class="ph uicontrol" id="uicontrol-5k6-x0b-8ju">[OK] </span> をクリックします。<br><img class="image" id="image-tzp-vam-sdr" src="http://help-static-aliyun-doc.aliyuncs.com/assets/img/4512649651/p47476.png"><br></li>
  52. </ol>
  53. </section>
  54. </div>
  55. </article>
  56. </main>