このトピックでは、カスタムモニタリングデータをレポートする方法について説明します。
カスタムモニタリングを使用すると、独自のビジネスニーズに合わせてメトリックとアラームルールをカスタマイズできます。 カスタムモニタリングでは、モニタリングデータのレポートに使用できる 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% を超える値です。
- エンドポイント
インターネットエンドポイント:
https://metrichub-cms-cn-hangzhou.aliyuncs.com
次の表に、イントラネットエンドポイントを示します。
- リクエスト構文
POST /metric/custom/upload HTTP/1.1Authorization:<AuthorizationString>Content-Length:<Content Length>Content-MD5:<Content MD5>Content-Type:application/jsonDate:<GMT Date>Host: metrichub-cms-cn-hangzhou.aliyuncs.comx-cms-signature:hmac-sha1x-cms-api-version:1.0x-cms-ip:30.27.84.196User-Agent:cms-java-sdk-v-1.0[{“groupId”:101,”metricName”:””,”dimensions”:{“sampleName1”:”value1”,”sampleName2”:”value2”},”time”:””,”type”:0,”period”:60,”values”:{“value”:10.5,”Sum”:100}}]
- 署名アルゴリズム
現在、HMAC-SHA1 署名アルゴリズムのみがサポートされています。
- Alibaba Cloud AccessKey ペアを準備します。
API リクエストのデジタル署名を生成するには、AccessKey ID とAccessKey Secret で構成される AccessKey ペアを使用する必要があります。 既存の AccessKey ペアを使用することも、新しいペアを作成することもできます。 AccessKey ペアは有効でなければなりません。
- リクエストの署名文字列を生成します。
API 署名文字列は、HTTP リクエストの Method、Header、および Body フィールドから構成されます。
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 は、次のように構成されています。x-cms
とx-acs
の接頭辞を持つすべての HTTP リクエストヘッダー名を小文字に変換します。- 前の手順で取得した CMS カスタムリクエストヘッダーを、辞書式順序の昇順でソートします。
- リクエストヘッダーとコンテンツの間の、区切り文字の両側にあるスペースをすべて削除します。
- すべてのヘッダーとコンテンツを
\n
セパレーターで区切り、最終的なCanonicalizedHeaders を作成します。
<p class="p" id="p-cyq-zjn-g73">上記の表の CanonicalizedResource は、次のように構成されています。</p>
<ol class="ol" type="a" id="ol-tcn-phk-zdb">
<li class="li" id="li-8i0-t2a-ro1">CanonicalizedResource を空の文字列 ("") に設定します。</li>
<li class="li" id="li-vs7-euc-bv3"><code class="ph codeph" id="codeph-5sk-ybe-l7r">/event/custom/upload</code> などのアクセスしたい URI を引用符で囲みます。
</li>
<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 文字列の末尾に追加します。
<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">&</code>) で接続され文字列を形成します。 式は次のとおりです。
</p>
<pre class="pre codeblock" id="codeblock-zsc-9n8-n2o"><code>QUERY_STRING = "KEY1=VALUE1" + "&" + "KEY2=VALUE2"</code></pre>
</li>
</ol>
</li>
<li class="li" id="li-346-roz-mib">リクエストのデジタル署名を生成します。
<div class="p" id="p-5o9-7y6-hhz">現在、HMAC-SHA1 署名アルゴリズムのみがサポートされています。 次の式は署名を生成するために使用されます。
<pre class="pre codeblock" id="codeblock-39p-ne3-yq0"><code>Signature = base16(hmac-sha1(UTF8-Encoding-Of(SignString), AccessKeySecret))</code></pre>
</div>
</li>
</ol>
</li>
<li class="li" id="li-s1z-mn1-nc9"><strong class="ph b" id="b-xus-4u5-hyt">リクエストパラメーター</strong>
<table class="table" id="table-rps-1pk-zdb">
<caption></caption>
<colgroup>
<col style="width:25%">
<col style="width:25%">
<col style="width:25%">
<col style="width:25%">
</colgroup>
<thead class="thead" id="thead-5sa-269-adr">
<tr id="row-xbw-j0r-qgo">
<th class="entry align-left colsep-1 rowsep-1" id="concept-b2h-ddb-5db-entry-u1r-qan-r5n">パラメーター</th>
<th class="entry align-left colsep-1 rowsep-1" id="concept-b2h-ddb-5db-entry-1k7-y71-2wb">データ型</th>
<th class="entry align-left colsep-1 rowsep-1" id="concept-b2h-ddb-5db-entry-43u-1b9-nyz">必須/省略可能</th>
<th class="entry align-left colsep-1 rowsep-1" id="concept-b2h-ddb-5db-entry-diq-byj-tkf">説明</th>
</tr>
</thead>
<tbody class="tbody" id="tbody-lf2-w23-enh">
<tr id="row-rde-83m-jst">
<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>
<td class="entry align-left colsep-1 rowsep-1" id="entry-22d-j1e-9ar">long</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-qd1-wbr-k71">必須</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-4r9-y5f-e5h">アプリケーショングループ ID</td>
</tr>
<tr id="row-gvi-ae0-24i">
<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>
<td class="entry align-left colsep-1 rowsep-1" id="entry-c36-34t-eb9">string</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-11w-xau-hz0">必須</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-d8y-z0l-9l2">メトリックの名前。 メトリック名には、英数字、およびアンダースコア (_)、ハイフン (-)、ピリオド (.)、スラッシュ (/)、バックスラッシュなどのコネクターを使用できます。
他の文字は無効です。 最大長は 64 バイトです。 超過した文字は、文字列から切り捨てられます。
</td>
</tr>
<tr id="row-4ek-73d-dmf">
<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>
<td class="entry align-left colsep-1 rowsep-1" id="entry-oq0-p57-1qi">object</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-xq0-nkq-148">必須</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-thu-l5q-90v">ディメンションマップ。 key-value ペアは、すべて文字列です。 文字列には、英数字、およびアンダースコア (_)、ハイフン (-)、ピリオド (.)、スラッシュ
(/)、バックスラッシュなどのコネクターを使用できます。 key-value ペアの最大数は 10 です。 key の最大長は 64 バイトです。 value の最大長は
64 バイトです。 超過した文字は文字列から切り捨てられます。
</td>
</tr>
<tr id="row-wc5-w38-gk1">
<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>
<td class="entry align-left colsep-1 rowsep-1" id="entry-sze-cjc-44q">string</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-2c0-ts3-ef5">必須</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-ul2-dv4-2uu">メトリック値が生成された時刻。 20171012T132456.888 + 0800 や1508136760000 など、 "yyyyMMdd'T'HHmmss.SSSZ"
形式、または long 形式のタイムスタンプをサポートしています。
</td>
</tr>
<tr id="row-t2r-wgr-as2">
<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>
<td class="entry align-left colsep-1 rowsep-1" id="entry-c7f-5tn-ifu">int</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-9lz-1nc-i80">必須</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-t5v-zjt-sug">
<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> は集計データを表します。
</p>
<p class="p" id="p-zxt-lf4-1i8">集計データをレポートするときは、60 秒と 300 秒の両方の集計期間でデータをレポートすることを推奨します。 それ以外では、7 日以上経過したモニタリングデータを照会することはできません。</p>
</td>
</tr>
<tr id="row-vp1-4ru-jx2">
<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>
<td class="entry align-left colsep-1 rowsep-1" id="entry-xga-0d9-8ba">string</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-9wx-j2b-or4">省略可能</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-5gx-use-cr1">
<p class="p" id="p-3zm-kxk-g2i">集計サイクル (秒単位)。</p>
<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 です。
</p>
</td>
</tr>
<tr id="row-z5c-pp2-gih">
<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>
<td class="entry align-left colsep-1 rowsep-1" id="entry-dg0-si5-mfr">object</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-846-6qa-qq0">必須</td>
<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 は、集計期間中の生データを最大、カウント、合計などのいくつかのデータタイプに集計します。
</td>
</tr>
</tbody>
</table>
</li>
</ul>
</section>
<section class="section" id="section-ecw-2h5-xfb">
<h2 class="title sectiontitle" id="title-dgf-s47-usi">Java SDK を使用したデータのレポート</h2>
<ul class="ul" id="ul-drq-qh5-xfb">
<li class="li" id="li-pux-51n-52s"><strong class="ph b" id="b-rky-l4u-vff">Java SDK のインストール</strong>
<div class="p" id="p-bcm-44q-e94">Maven を使用して Java SDK をインストールするときは、次の依存関係を追加してください。
<pre class="pre codeblock" id="codeblock-pn6-xkc-2qj"><code><dependency>
<groupId>com.aliyun.openservices</groupId>
<artifactId>aliyun-cms</artifactId>
<version>0.2.4</version>
</dependency>
- Alibaba Cloud AccessKey ペアを準備します。
</li>
<li class="li" id="li-i9v-54m-ma1"><strong class="ph b" id="b-rkl-76e-2d9">レスポンス要素</strong>
<p class="p" id="p-fkl-p23-ywh">システムは HTTP ステータスコード 200 を返します。</p>
</li>
<li class="li" id="li-3s0-y6p-tir"><strong class="ph b" id="b-fh0-it5-3cv">例</strong>
<ul class="ul" id="ul-erq-qh5-xfb">
<li class="li" id="li-9vd-s15-qs9">リクエストの例
<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}}]
<li class="li" id="li-c1x-buv-zel">レスポンスの例
<pre class="pre codeblock" id="codeblock-j36-olv-nkw"><code>{
“code”:”200”, “msg”:””//The returned msg is null when the reporting is normal.}
</ul>
</li>
<li class="li" id="li-851-87s-b5o"><strong class="ph b" id="b-ctd-5ks-mmw">コードの例</strong>
<ul class="ul" id="ul-l5k-vh5-xfb">
<li class="li" id="li-5ps-6ne-v12"><strong class="ph b" id="b-c3w-bda-5o4">生データのレポート</strong></li>
</ul>
<pre class="pre codeblock" id="codeblock-t79-0br-lmu"><code>CMSClientInit.groupId = 101L;//Set the common group ID.
CMSClient cmsClient = new CMSClient(endpoint, accKey, secret);//Initialize the client.
CustomMetricUploadRequest request = CustomMetricUploadRequest.builder()
.append(CustomMetric.builder()
.setMetricName("testMetric")//The metric name
.setGroupId(102L)//Set the custom group ID.
.setTime(new Date())
.setType(CustomMetric.TYPE_VALUE)//The type is raw data.
.appendValue(MetricAttribute.VALUE, 1f)//The original value. Key must be an original value.
.appendDimension("key", "value")//Add a dimension.
.appendDimension("ip", "127.0.0.1")//Add a dimension.
.build())
.build();
CustomMetricUploadResponse response = cmsClient.putCustomMetric(request);//Report data.
System.out.println(JSONObject.toJSONString(response));</code></pre>
<ul class="ul" id="ul-mnv-x35-xfb">
<li class="li" id="li-bq1-0yc-9sn"><strong class="ph b" id="b-t48-14i-2lc">複数の集計期間の集計データを自動的にレポートします。</strong></li>
</ul>
<p class="p" id="p-vpa-x5e-stt">SDK ではローカル集計後のデータレポートをサポートしています。 データは 1 分または 5 分の期間で集計できます。</p>
<table class="table" id="table-irq-qh5-xfb">
<caption></caption>
<colgroup>
<col style="width:25%">
<col style="width:25%">
<col style="width:25%">
<col style="width:25%">
</colgroup>
<thead class="thead" id="thead-5d6-o0v-gy7">
<tr id="row-gqu-37j-81d">
<th class="entry align-left colsep-1 rowsep-1" id="concept-b2h-ddb-5db-entry-apa-4rn-dmb">データ型</th>
<th class="entry align-left colsep-1 rowsep-1" id="concept-b2h-ddb-5db-entry-rvh-320-i3x">説明</th>
<th class="entry align-left colsep-1 rowsep-1" id="concept-b2h-ddb-5db-entry-apx-l7n-6kt">集計値</th>
<th class="entry align-left colsep-1 rowsep-1" id="concept-b2h-ddb-5db-entry-d5d-kc0-52p">メモリ使用量 (名前、ディメンション、個々の時系列、および個々の集計期間を除く)</th>
</tr>
</thead>
<tbody class="tbody" id="tbody-smn-7l3-qmf">
<tr id="row-i9o-pul-18m">
<td class="entry align-left colsep-1 rowsep-1" id="entry-xcq-9k1-veg">value</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-tqn-g35-59r">代表的な値型</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-0ls-yhe-wd0">LastValue 以外のすべてのプロパティ</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-myw-q8o-zde">約 4 KB</td>
</tr>
<tr id="row-o86-7qt-2p5">
<td class="entry align-left colsep-1 rowsep-1" id="entry-h25-sav-cyu">gauge</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-yst-6ad-nvo">サンプル値</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-gik-0ag-e8s">LastValue</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-o6v-t7j-n7v">4 バイト</td>
</tr>
<tr id="row-7k1-v38-ay0">
<td class="entry align-left colsep-1 rowsep-1" id="entry-o59-maz-8cn">meter</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-4t7-38n-qdf">合計と速度</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-dfr-vlp-phv">Sum、SumPerSecond</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-ae8-5ej-gcm">50 バイト</td>
</tr>
<tr id="row-we3-zov-6qd">
<td class="entry align-left colsep-1 rowsep-1" id="entry-rhh-tvf-ffc">counter</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-o07-vfs-df8">カウント</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-310-1h8-kcl">SampleCount</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-ewa-m0x-rgn">10 バイト</td>
</tr>
<tr id="row-o7f-ago-1mg">
<td class="entry align-left colsep-1 rowsep-1" id="entry-6je-zk4-7ou">timer</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-sqv-pym-tby">計算時間</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-6yp-hb0-mte">SampleCount, CountPerSecond, Average, Maximum, Minimum, PXX(P10-P99)</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-mbx-saz-gip">約 4 KB</td>
</tr>
<tr id="row-m4u-5dj-4cf">
<td class="entry align-left colsep-1 rowsep-1" id="entry-n3l-z77-np4">histogram</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-8oh-8d7-qog">分布</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-q0g-ece-npp">SampleCount, Average, Maximum, Minimum, PXX(P10-P99)</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-mje-nkk-8db">約 4 KB</td>
</tr>
</tbody>
</table>
<pre class="pre codeblock" id="codeblock-s2d-nsp-ftx"><code>//Initialization
CMSClientInit.groupId = 0L;
CMSClient cmsClient = new CMSClient(accKey, secret, endpoint);//Create a client.
CMSMetricRegistryBuilder builder = new CMSMetricRegistryBuilder();
builder.setCmsClient(cmsClient);
final MetricRegistry registry = builder.build();//Create a registry, which includes two aggregation periods.
//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(); } });
</ul>
</section>
<section class="section" id="section-ggy-bqk-zdb">
<h2 class="title sectiontitle" id="title-21b-b9k-3tu">Alibaba Cloud CLI を使用したデータのレポート</h2>
<strong class="ph b" id="b-9xm-tr8-rk1">Alibaba Cloud アカウントの準備</strong>
<p class="p" id="p-pny-mad-5vj">Alibaba Cloud アカウントを作成します。次に、アカウント用の RAM ユーザーを作成し、CloudMonitor の権限を持つ RAM ユーザー AccessKey
を生成したことを確認してください。
</p>
<ul class="ul" id="ul-vwk-ckj-zdb">
<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>
<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>
<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>
</ul>
<strong class="ph b" id="b-4d7-1t0-7t3">Alibaba Cloud CLI のインストール</strong>
<p class="p" id="p-i4s-ywi-5x2">システム要件:Linux、UNIX、または Mac OS</p>
<ul class="ul" id="ul-eka-ozt-4kq">
<li class="li" id="li-8hw-lon-7hg">
<p class="p" id="p-h7o-r56-p14">方法 1. インストールパッケージをダウンロードする</p>
最新の CLI は Alibaba Cloud CLI GitHub からダウンロードできます。 CLI は MacOS、Linux、および Windows (x64)
で動作します。 パッケージを解凍したら、ファイルを /usr/local/bin ディレクトリに移動するか、 $PATH 環境変数に追加します。
</li>
<li class="li" id="li-dbd-c5v-4um">
<p class="p" id="p-v39-hr4-7en">方法 2. ソースコードをコンパイルする</p>
Golang 環境をインストールして設定し、手順に従ってソースコードをダウンロードしてコンパイルします。
<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…
</ul>
<strong class="ph b" id="b-6hc-lc0-nmz">Alibaba Cloud CLI の設定 </strong>
<p class="p" id="p-5l8-9h9-2la">Alibaba Cloud CLI を使用する前に、aliyun configure コマンドを実行して、Alibaba Cloud リソースを呼び出すための AccessKey、リージョン、および言語を設定する必要があります。
Alibaba Cloud コンソールの AccessKey ページで、AccessKey を作成および表示するか、システム管理者から AccessKey を入手することができます。
</p>
<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 列のアスタリスク (*) は、その設定が使用されていることを示します。
<table class="table" id="table-v3j-278-j8q">
<caption></caption>
<colgroup>
<col style="width:20%">
<col style="width:20%">
<col style="width:20%">
<col style="width:20%">
<col style="width:20%">
</colgroup>
<thead class="thead" id="thead-dyc-4ik-efg">
<tr id="row-v7l-j6s-uci">
<th class="entry" id="concept-b2h-ddb-5db-entry-tjb-84x-r08">Profile</th>
<th class="entry" id="concept-b2h-ddb-5db-entry-8q5-mfm-n7j">Credential</th>
<th class="entry" id="concept-b2h-ddb-5db-entry-p4x-i9e-jp2">Valid</th>
<th class="entry" id="concept-b2h-ddb-5db-entry-rd0-y21-wn0">Region</th>
<th class="entry" id="concept-b2h-ddb-5db-entry-c54-qzk-tws">Language</th>
</tr>
</thead>
<tbody class="tbody" id="tbody-ktt-hcj-4fy">
<tr id="row-n8t-n7f-cqf">
<td class="entry" id="entry-j8z-koo-4tx">default * </td>
<td class="entry" id="entry-gca-nao-isy"> AK:***f9b</td>
<td class="entry" id="entry-3bi-212-12g">Valid</td>
<td class="entry" id="entry-ogc-dyy-dyw">cn-beijing</td>
<td class="entry" id="entry-7ya-8tl-hon">zh</td>
</tr>
<tr id="row-uqu-lvc-tc9">
<td class="entry" id="entry-3ek-3p4-a6c">aaa</td>
<td class="entry" id="entry-vr3-b7u-795">AK:******</td>
<td class="entry" id="entry-1a1-86t-6a2">Invalid</td>
<td class="entry" id="entry-c0i-rlo-dz6"></td>
<td class="entry" id="entry-49o-laq-nwq"></td>
</tr>
<tr id="row-b48-py1-406">
<td class="entry" id="entry-973-603-ned">test</td>
<td class="entry" id="entry-u49-ufo-d3o">AK:***456</td>
<td class="entry" id="entry-dyq-s4g-8xd">Valid</td>
<td class="entry" id="entry-ba9-uqy-3mt"></td>
<td class="entry" id="entry-ese-rww-8dr">en</td>
</tr>
<tr id="row-05t-b26-dwt">
<td class="entry" id="entry-9dt-2z5-yzl">ecs</td>
<td class="entry" id="entry-gtn-prl-tvs">EcsRamRole:EcsTest</td>
<td class="entry" id="entry-4zy-ztk-rdo">Valid</td>
<td class="entry" id="entry-05q-j1z-1c6">cn-beijing</td>
<td class="entry" id="entry-44b-n70-5cn">en</td>
</tr>
</tbody>
</table>
<p class="p" id="p-1ec-f3c-fg7">Alibaba Cloud CLI では、configure コマンドの後に --mode <authenticationMethod>パラメーターを追加することで、さまざまな認証方法を使用できます。
現在、以下の 3 つの認証方法がサポートされています。
</p>
<table class="table" id="table-vua-fo9-b2q">
<caption></caption>
<colgroup>
<col style="width:50%">
<col style="width:50%">
</colgroup>
<thead class="thead" id="thead-i56-x4r-m9z">
<tr id="row-t16-80u-ohv">
<th class="entry" id="concept-b2h-ddb-5db-entry-nla-7j0-rmt">認証方法</th>
<th class="entry" id="concept-b2h-ddb-5db-entry-pvv-8nz-mlg">説明</th>
</tr>
</thead>
<tbody class="tbody" id="tbody-0b5-fbq-uk4">
<tr id="row-jly-k6e-wgp">
<td class="entry" id="entry-j67-i5c-66i">AK</td>
<td class="entry" id="entry-qv9-4lc-wv1">AccessKey ID と Access Key Secret を含みます。</td>
</tr>
<tr id="row-dqr-ey6-ig6">
<td class="entry" id="entry-9yq-x1y-t6f">STS Token</td>
<td class="entry" id="entry-nzg-xx0-1in">STS トークンです。</td>
</tr>
<tr id="row-66f-85z-g87">
<td class="entry" id="entry-4e1-kf1-8qf">RamRoleArn</td>
<td class="entry" id="entry-4m5-cm4-wz7">RAM ユーザーの AssumeRole アクションを呼び出します。</td>
</tr>
<tr id="row-y7l-r1e-v00">
<td class="entry" id="entry-vmy-4ft-2h3">EcsRamRole</td>
<td class="entry" id="entry-nlx-vju-pzh">ECS インスタンスの EcsRamRole アクションを呼び出します。</td>
</tr>
</tbody>
</table>
<strong class="ph b" id="b-def-97e-sir">モニタリングデータのレポート</strong>
<p class="p" id="p-aen-lhx-gsz"><span class="keyword apiname" id="apiname-8b3-ofm-e22">PutCustomMetric</span> API を使用して、モニタリングデータをレポートします。
</p>
<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>
<p class="p" id="p-uxm-yr9-fuy">データが正常にレポートされた場合、ステータスコード 200 が返されます。</p>
<pre class="pre codeblock" id="codeblock-f46-e4v-gbz"><code>{
“Message”: “success”, “RequestId”: “F69F5623-DDD6-42AE-AE59-87A2B841620B”, “Code”: “200”} エラーコード
<table class="table" id="table-j4t-hqj-zdb">
<caption></caption>
<colgroup>
<col style="width:50%">
<col style="width:50%">
</colgroup>
<thead class="thead" id="thead-vax-vi1-zia">
<tr id="row-9vh-d57-402">
<th class="entry align-left colsep-1 rowsep-1" id="concept-b2h-ddb-5db-entry-isx-rav-4ei">エラーコード</th>
<th class="entry align-left colsep-1 rowsep-1" id="concept-b2h-ddb-5db-entry-ib9-7r9-m8x">説明</th>
</tr>
</thead>
<tbody class="tbody" id="tbody-sli-14s-6yu">
<tr id="row-njr-fb4-pw0">
<td class="entry align-left colsep-1 rowsep-1" id="entry-fmk-ror-e0x">200</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-5ei-253-ccs">正常</td>
</tr>
<tr id="row-xi1-xbx-ruz">
<td class="entry align-left colsep-1 rowsep-1" id="entry-42d-1pj-usb">206</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-apc-8i0-vvk">
<p class="p" id="p-srq-ycu-5xn">一部は正常</p>
<p class="p" id="p-dil-kgx-al1">"reach Max time series num" が返された場合は、最大時系列数に達しています。 クォータを増やすか、不要な時系列を削除することを推奨します。</p>
<p class="p" id="p-b2i-zt5-yvz">"not allowed original value, please upgrade service" が返された場合、生データのレポートをサポートしていない無料バージョンを使用していることを示しています。</p>
<p class="p" id="p-59x-8ij-ayt">"type is invalid" が返された場合、type パラメーターの値は無効です。 このパラメーターの値が 0 または 1 であることを確認してください。</p>
</td>
</tr>
<tr id="row-n76-4b2-ck2">
<td class="entry align-left colsep-1 rowsep-1" id="entry-g54-4ol-c6o">400</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-ipo-r9e-f24">クライアントリクエストの構文エラー</td>
</tr>
<tr id="row-klz-7u1-dzm">
<td class="entry align-left colsep-1 rowsep-1" id="entry-f8z-luo-zei">403</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-o16-08c-8ic">検証失敗、限界速度、または未許可</td>
</tr>
<tr id="row-tq2-2et-w1q">
<td class="entry align-left colsep-1 rowsep-1" id="entry-zoh-9qn-9o1">500</td>
<td class="entry align-left colsep-1 rowsep-1" id="entry-7c8-p0j-48u">内部サーバーエラー</td>
</tr>
</tbody>
</table>
<strong class="ph b" id="b-y1z-i61-nca">RAM ユーザー認証</strong>
<p class="p" id="p-wef-nsp-ehd">イベントデータを RAM ユーザーの AccessKe でレポートする前に、対応する RAM ユーザーに CloudMonitor 権限を付与する必要があります。
これらのアクセス権限が付与されていない場合は、データをレポートするときに "cannot upload, please use ram to auth" というプロンプトが表示されます。
</p>
<ol class="ol" id="ol-xvm-mqj-zdb">
<li class="li" cond-props="intl" id="li-koq-w4p-uag"><a href="https://ram.console.aliyun.com">RAM コンソール</a>にログインします。
</li>
<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> ページが表示されます。
</li>
<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>
<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>
</ol>
</section>
</div>
</article>
</main>