CloudMonitor を使用して、Tablestore の実行状態、パフォーマンス、メータリングなどのメトリクスを監視できます。これらのメトリクスは、リクエストの追跡、使用状況の分析、ビジネストレンドの統計情報の収集、システムの問題の早期発見と診断に役立ちます。このトピックでは、CloudMonitor コンソールを使用するか、DescribeMetricList API オペレーションを呼び出すことによって、Tablestore メトリクスをクエリする方法について説明します。
前提条件
RAM ユーザーとして Tablestore のモニタリングデータを表示する場合は、以下の前提条件が満たされていることを確認してください。
AliyunOTSFullAccess
ポリシーまたはAliyunOTSReadOnlyAccess
ポリシーが RAM ユーザーにアタッチされていること。AliyunOTSFullAccess ポリシーは、RAM ユーザーに Tablestore へのフルアクセス権を付与します。AliyunOTSReadOnlyAccess ポリシーは、RAM ユーザーに Tablestore への読み取り専用アクセス権を付与します。詳細については、RAM ユーザーへの権限の付与 を参照してください。AliyunCloudMonitorFullAccess
ポリシーまたはAliyunCloudMonitorReadOnlyAccess
ポリシーが RAM ユーザーにアタッチされていること。AliyunCloudMonitorFullAccess ポリシーは、RAM ユーザーに CloudMonitor へのフルアクセス権を付与します。AliyunCloudMonitorReadOnlyAccess ポリシーは、RAM ユーザーに CloudMonitor への読み取り専用アクセス権を付与します。詳細については、RAM ユーザーへの権限の付与 を参照してください。
カスタムポリシーを作成して、権限をきめ細かく管理することもできます。詳細については、カスタムポリシーの作成 を参照してください。
使用上の注意
使用可能な Tablestore メトリクスは、リソースの種類によって異なります。詳細については、「概要」トピックのメトリクスセクションを参照してください。
モニタリングデータの統計情報の収集が遅れる場合があります。
CloudMonitor コンソールを使用したモニタリングデータの表示
CloudMonitor は、現在の Alibaba Cloud アカウントに属するクラウドサービスのリソースを自動的に取得します。CloudMonitor コンソールでは、予約モードでの 1 分あたりの VCU 使用量、オンデマンドモードでの 1 分あたりに消費される平均容量ユニット (CU) 数、1 分あたりの平均リクエスト数、1 分あたりに使用される平均トラフィック量など、Tablestore インスタンスのモニタリングデータを表示できます。
CloudMonitor コンソール にログオンします。
左側のナビゲーションペインで、クラウドサービスモニタリング をクリックします。
クラウドサービスモニタリング ページで、
を選択します。Tablestore ページで、リージョンを選択します。次に、管理するインスタンスの名前をクリックするか、管理するインスタンスの アクション 列にある モニタリングチャート をクリックします。
時間範囲を指定します。
プリセットの時間範囲を選択するか、時間範囲を指定できます。日付範囲は 31 日を超えることはできません。
CloudMonitor SDK を使用したモニタリングデータの表示
CloudMonitor の DescribeMetricList オペレーションを呼び出して、特定のメトリクスのモニタリングデータを表示できます。
CloudMonitor SDK を使用して、オンデマンドモードで 1 分あたりに消費される平均 CU 数、インスタンスの 1 秒あたりの操作の読み取り CU 数、ステータスコード 2xx を返す 1 秒あたりのリクエスト数など、Tablestore インスタンスのモニタリングデータを表示できます。また、CloudMonitor SDK を使用して、平均操作レイテンシ、ステータスコード 2xx を返す 1 秒あたりのリクエスト数、1 秒あたりの操作の読み取り CU 数など、データテーブルまたはセカンダリインデックスのモニタリングデータを表示することもできます。
CloudMonitor SDK のサンプルコードについては、SDK リファレンス を参照してください。
名前空間
Namespace パラメーターは、監視するクラウドサービスを指定するために使用されます。Tablestore サービスを監視する場合は、Namespace を acs_ots_new に設定します。
次のコードは、CloudMonitor SDK for Java を使用して Tablestore サービスを監視する方法の例を示しています。
DescribeMetricListRequest request = new DescribeMetricListRequest();
request.setNamespace("acs_ots_new");
StartTime と EndTime
StartTime と EndTime は、モニタリングデータをクエリする時間範囲を指定します。CloudMonitor の時間範囲は、(StartTime, EndTime] 形式の左開区間、右閉区間です。StartTime から EndTime まで (StartTime を除く) の時間範囲に基づいてデータをクエリできます。
開始時刻と終了時刻の間隔は 31 日を超えることはできません。過去 31 日以内に生成されたデータのみをクエリできます。
次のコードは、CloudMonitor SDK for Java を使用して、指定された時間範囲に基づいてモニタリングデータをクエリする方法の例を示しています。
// モニタリングデータをクエリする終了時刻を指定します。
request.setEndTime("2022-06-13 11:23:00");
// モニタリングデータをクエリする開始時刻を指定します。
request.setStartTime("2022-06-13 10:23:00");
ミリ秒単位のタイムスタンプを使用して時間範囲を指定することもできます。サンプルコード:
// モニタリングデータをクエリする終了時刻のタイムスタンプを指定します。単位: ミリ秒。
request.setEndTime("1655090580000");
// モニタリングデータをクエリする開始時刻のタイムスタンプを指定します。単位: ミリ秒。
request.setStartTime("1655086860000");
ディメンション
Dimensions パラメーターは、モニタリングデータをクエリするインスタンスまたはテーブルの名前を指定します。Dimensions パラメーターの値は JSON 文字列です。例: {"userId":"1234567890****","region":"cn-hangzhou","instanceName":"myinstance","tableName":"mytable"}
次のコードは、CloudMonitor SDK for Java を使用してインスタンスのモニタリングデータをクエリする方法の例を示しています。
// モニタリングデータをクエリするインスタンスの名前を指定します。
request.setDimensions("{\"userId\":\"1234567890****\",\"region\":\"cn-hangzhou\",\"instanceName\":\"myinstance\"}");
テーブルのメトリクスをクエリする場合は、tableName パラメーターを指定する必要があります。次のコードは、CloudMonitor SDK for Java を使用してテーブルのメトリクスをクエリする方法の例を示しています。
// モニタリングデータをクエリするテーブルの名前を指定します。
request.setDimensions("{\"userId\":\"1234567890****\",\"region\":\"cn-hangzhou\",\"instanceName\":\"myinstance\",\"tableName\":\"mytable\"}");
特定の API 操作に関するインスタンスまたはテーブルのメトリクスをクエリする場合は、operation パラメーターを指定する必要があります。次のコードは、CloudMonitor SDK for Java を使用して、PutRow 操作に関するテーブルのメトリクスをクエリする方法の例を示しています。
operation パラメーターは API 操作の名前に設定する必要があります。詳細については、API リファレンス を参照してください。
// モニタリングデータをクエリするテーブルと API 操作の名前を指定します。
request.setDimensions("{\"userId\":\"1234567890****\",\"region\":\"cn-hangzhou\",\"instanceName\":\"myinstance\",\"tableName\":\"mytable\",\"operation\":\"PutRow\"}");
期間
Period パラメーターは、指定されたメトリクスをクエリする周期を指定します。メータリングメトリクスをクエリする周期は 3,600 秒です。その他のメトリクスをクエリする周期は 60 秒です。メトリクスの詳細については、概要 トピックの「メトリクス」セクションを参照してください。
メトリック
Metric パラメーターは、クエリするメトリックを指定します。
次のコードは、CloudMonitor SDK for Java を使用して、クエリするメトリックの名前を指定する方法の例を示しています。
// Metric パラメーターを指定します。この例では、Metric は InstanceCount2xxNumber に設定されています。
request.setMetric("InstanceCount2xxNumber");
次の表は、各メトリックの名前を示しています。
リソースの種類 | メトリック | ディメンション | 説明 |
インスタンス | InstanceCount2xxNumber | userId、region、instanceName、operation | ステータスコード 2xx を返す 1 秒あたりのリクエスト数。 |
InstanceCount429Number | userId、region、instanceName、operation | ステータスコード 429 を返す 1 秒あたりのリクエスト数。 | |
InstanceCount4xxNumber | userId、region、instanceName、operation | ステータスコード 4xx を返す 1 秒あたりのリクエスト数。 | |
InstanceCount5xxNumber | userId、region、instanceName、operation | ステータスコード 5xx を返す 1 秒あたりのリクエスト数。 | |
InstanceExtranetIn | userId、region、instanceName、operation | インターネット経由の受信トラフィック量 (1 秒あたり)。単位: バイト。 | |
InstanceExtranetOut | userId、region、instanceName、operation | インターネット経由の送信トラフィック量 (1 秒あたり)。単位: バイト。 | |
InstanceFailRowCount | userId、region、instanceName、operation | 操作が失敗した行数 (1 秒あたり)。 | |
InstanceFreeExtranetOut | userId、region、instanceName、operation | インターネット経由の無料送信トラフィック量 (1 秒あたり)。単位: バイト。 | |
InstanceFreeReadCU | userId、region、instanceName、operation | 内部読み取り CU 数 (1 秒あたり)。 | |
InstanceFreeWriteCU | userId、region、instanceName、operation | 内部書き込み CU 数 (1 秒あたり)。 | |
InstanceIntranetIn | userId、region、instanceName、operation | 内部ネットワーク経由の受信トラフィック量 (1 秒あたり)。単位: バイト。 | |
InstanceIntranetOut | userId、region、instanceName、operation | 内部ネットワーク経由の送信トラフィック量 (1 秒あたり)。単位: バイト。 | |
InstanceOverReadCU | userId、region、instanceName、operation | インスタンスの超過読み取り CU 数 (1 秒あたり)。 | |
InstanceOverWriteCU | userId、region、instanceName、operation | インスタンスの超過書き込み CU 数 (1 秒あたり)。 | |
InstanceReadCU | userId、region、instanceName、operation | インスタンスの操作の読み取り CU 数 (1 秒あたり)。 | |
InstanceRequestNumber | userId、region、instanceName、operation | リクエストの総数 (1 秒あたり)。 | |
InstanceRowCount | userId、region、instanceName、operation | 操作が実行された行の総数 (1 秒あたり)。 | |
InstanceVCU | userId、region、instanceName | インスタンスの VCU 数 (1 秒あたり)。 | |
テーブル (データテーブルとセカンダリインデックスを含む) | AverageLatency | userId、region、instanceName、tableName、operation | 平均操作レイテンシ。単位: マイクロ秒。 |
Count2xxNumber | userId、region、instanceName、tableName、operation | ステータスコード 2xx を返す 1 秒あたりのリクエスト数。 | |
Count429Number | userId、region、instanceName、tableName、operation | ステータスコード 429 を返す 1 秒あたりのリクエスト数。 | |
Count4xxNumber | userId、region、instanceName、tableName、operation | ステータスコード 4xx を返す 1 秒あたりのリクエスト数。 | |
Count5xxNumber | userId、region、instanceName、tableName、operation | ステータスコード 5xx を返す 1 秒あたりのリクエスト数。 | |
ExtranetIn | userId、region、instanceName、tableName、operation | インターネット経由の受信トラフィック量 (1 秒あたり)。単位: バイト。 | |
ExtranetOut | userId、region、instanceName、tableName、operation | インターネット経由の送信トラフィック量 (1 秒あたり)。単位: バイト。 | |
FailRowCount | userId、region、instanceName、tableName、operation | 操作が失敗した行数 (1 秒あたり)。 | |
FreeExtranetOut | userId、region、instanceName、tableName、operation | インターネット経由の無料送信トラフィック量 (1 秒あたり)。単位: バイト。 | |
StorageSize | userId、region、instanceName、tableName、operation | テーブルに格納されているデータの量。単位: バイト。 | |
FreeReadCU | userId、region、instanceName、tableName、operation | 内部読み取り CU 数 (1 秒あたり)。 | |
FreeWriteCU | userId、region、instanceName、tableName、operation | 内部書き込み CU 数 (1 秒あたり)。 | |
IntranetIn | userId、region、instanceName、tableName、operation | 内部ネットワーク経由の受信トラフィック量 (1 秒あたり)。単位: バイト。 | |
IntranetOut | userId、region、instanceName、tableName、operation | 内部ネットワーク経由の送信トラフィック量 (1 秒あたり)。単位: バイト。 | |
OverReadCU | userId、region、instanceName、tableName、operation | テーブルの超過読み取り CU 数 (1 秒あたり)。 | |
OverWriteCU | userId、region、instanceName、tableName、operation | テーブルの超過書き込み CU 数 (1 秒あたり)。 | |
ReadCU | userId、region、instanceName、tableName、operation | 操作の読み取り CU 数 (1 秒あたり)。 | |
RequestNumber | userId、region、instanceName、tableName、operation | リクエストの総数 (1 秒あたり)。 | |
RowCount | userId、region、instanceName、tableName、operation | 操作が実行された行の総数 (1 秒あたり)。 | |
WriteCU | userId、region、instanceName、tableName、operation | 操作の書き込み CU 数 (1 秒あたり)。 | |
時系列テーブル | StorageSize | userId、region、instanceName、tableName、operation | テーブルに格納されているデータの量。単位: バイト。 |