alibabacloud-ebs-disk-metric-analyzer について
Aliyun CLI で Alibaba Cloud EBS のディスク監視指標を取得・分析する Agent Skill です。ストレージ性能を確認する運用担当者向けで、時間や複数ディスクでの集計と、ディスク・インスタンス・ゾーン別のグループ化に対応します。
主な機能
- 018 種類のディスク指標を取得
- 02時間単位で指標を集計
- 03複数ディスクの集計と比較
- 04ディスク・インスタンス・ゾーン別に分類
活用シーン
- 01ディスクの IOPS と帯域利用率の確認
- 02読み書き性能の経時変化の把握
- 03ディスクやゾーン間の性能比較
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aliyun/ alibabacloud-aiops-skills --skill alibabacloud-ebs-disk-metric-analyzerインストール後、Claude Code で/alibabacloud-ebs-disk-metric-analyzerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/acceptance-criteria.mdcli-installation-guide.mdram-policies.mdrelated-commands.mdverification-method.md詳細
Alibaba Cloud EBS ディスクのモニタリングとメトリック分析
このスキルでは、Alibaba Cloud Elastic Block Storage(EBS)ディスクのモニタリングメトリックをクエリして分析できます。単一または複数のディスクのクエリ、時系列の集計、ディスク間のメトリック分析に対応しています。
シナリオの説明
クラウドディスクのパフォーマンスメトリックをモニタリング、分析して、以下を実施します。
- ディスク IOPS(1 秒あたりの読み取り/書き込み操作数)を追跡する
- ディスク帯域幅(BPS - 1 秒あたりのバイト数)をモニタリングする
- 時間経過に伴うディスクのパフォーマンス傾向を分析する
- 複数のディスクのパフォーマンスを比較する
- ディスクタイプ、インスタンス、またはアベイラビリティーゾーン別にメトリックを集計する
- パフォーマンスのボトルネックと最適化の機会を特定する
アーキテクチャ:EBS Monitoring Service + Cloud Monitor + EBS ディスク(システムディスク/データディスク)
対応メトリック:
disk_bps_percent- ディスク帯域幅の使用率disk_iops_percent- ディスク IOPS の使用率disk_read_block_size- 平均読み取りブロックサイズdisk_read_bps- 読み取り帯域幅(1 秒あたりのバイト数)disk_read_iops- 読み取り IOPSdisk_write_block_size- 平均書き込みブロックサイズdisk_write_bps- 書き込み帯域幅(1 秒あたりのバイト数)disk_write_iops- 書き込み IOPS
集計機能:
- 時間軸:期間ごとに SUM、COUNT、AVG、MAX、MIN で集計
- ディスク間:複数のディスクのメトリックを SUM、AVG、COUNT、MAX、MIN で集計
- グループ化:DiskId、DeviceType、DeviceCategory、EcsInstanceId、または Availability Zone でグループ化
インストール
事前確認:Aliyun CLI 3.3.3 以上が必要です
aliyun versionを実行し、バージョンが 3.3.3 以上であることを確認してください。未インストール、またはバージョンが古い場合は、curl -fsSL https://aliyuncli.alicdn.com/setup.sh | bashを実行してインストール/更新するか、 インストール手順についてはreferences/cli-installation-guide.mdを参照してください。
事前確認:Aliyun CLI プラグインの更新が必要です
[MUST]
aliyun configure set --auto-plugin-install trueを実行して、自動プラグインインストールを有効にしてください。 [MUST]aliyun plugin updateを実行し、既存のプラグインが常に最新の状態であることを確認してください。
認証
事前確認:Alibaba Cloud の認証情報が必要です
セキュリティルール:
- AK/SK の値を読み取ったり、エコーまたは出力したりしてはいけません(例:
echo $ALIBABA_CLOUD_ACCESS_KEY_IDは禁止されています)- 会話中またはコマンドラインで、AK/SK を直接入力するようユーザーに求めてはいけません
aliyun configure setで認証情報の値を直接指定してはいけません- 認証情報の状態確認には
aliyun configure listのみを使用してくださいaliyun configure list有効なプロファイル(AK、STS、または OAuth ID)があるか、出力を確認してください。
有効なプロファイルがない場合は、ここで停止してください。
- Alibaba Cloud Console から認証情報を取得します
- このセッションの外部で認証情報を設定します(ターミナルで
aliyun configureを実行するか、シェルプロファイルで環境変数を設定します)aliyun configure listに有効なプロファイルが表示された後、戻って再実行します
RAM ポリシー
このスキルには、以下の Alibaba Cloud RAM 権限が必要です。完全な権限ポリシーについては references/ram-policies.md を参照してください。
必要な API 権限:
ebs:DescribeMetricData- ディスクのモニタリングメトリックをクエリする
[MUST] 権限エラーへの対応: 実行中にコマンドまたは API 呼び出しが権限エラーで失敗した場合は、次の手順に従ってください。
references/ram-policies.mdを読み、この SKILL に必要な権限の全一覧を確認しますram-permission-diagnoseスキルを使用して、必要な権限を申請する手順をユーザーに案内します- 必要な権限が付与されたとユーザーが確認するまで待機します
パラメーターの確認
重要:パラメーターの確認 — コマンドまたは API 呼び出しを実行する前に、 ユーザーが設定可能なパラメーター(例:RegionId、DiskId、MetricName、時間範囲、 集計方法など)をすべてユーザーに確認してください。明示的な承認なしに、 値を推測したり、デフォルト値を使用したりしてはいけません。
必須パラメーターと任意パラメーター
| パラメーター名 | 必須/任意 | 説明 | デフォルト値 |
|---|---|---|---|
--metric-name | 必須 | クエリ対象のメトリクス(例:disk_read_iops、disk_write_bps) | 該当なし |
--biz-region-id | 必須 | リージョン ID(例:cn-hangzhou、cn-shanghai) | 該当なし |
--start-time | 任意 | ISO 8601 形式のクエリ開始時刻(yyyy-MM-ddTHH:mm:ssZ) | start と end の両方が空の場合は直近の期間 |
--end-time | 任意 | ISO 8601 形式のクエリ終了時刻(yyyy-MM-ddTHH:mm:ssZ) | 現在時刻 |
--period | 任意 | データの粒度(秒単位)(5、10、60、300、600、3600) | 5 |
--dimensions | 任意 | DiskId、DeviceType、DeviceCategory、EcsInstanceId、Azone 用の JSON フィルター | 空(すべてのディスク) |
--aggre-ops | 任意 | 時間集計方法(AVG_OVER_TIME、SUM_OVER_TIME、MAX_OVER_TIME など) | 集計なし |
--aggre-over-line-ops | 任意 | ディスク間の集計方法(NON、SUM、AVG、COUNT、MAX、MIN) | NON |
--group-by-labels | 任意 | グループ化するラベル(DiskId、DeviceType、DeviceCategory、EcsInstanceId、Azone) | グループ化なし |
コアワークフロー
コアワークフローの開始時(CLI の呼び出し前)に: [必須]AI モードを有効にする — エージェントスキルの実行には AI モードが必要です。 CLI を呼び出す前に、次のコマンドを実行してください。
aliyun configure ai-mode enable aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-ebs-disk-metric-analyzer"
シナリオ 1:単一ディスクのメトリクスをクエリする
特定のディスクの過去 1 時間分の読み取り IOPS をクエリします。
# Confirm with user: RegionId, DiskId, MetricName, time range
aliyun ebs describe-metric-data \
--metric-name disk_read_iops \
--start-time 2024-01-15T10:00:00Z \
--end-time 2024-01-15T11:00:00Z \
--period 60 \
--dimensions "{\"DiskId\": [\"d-bp1234567890abcde\"]}" \
--biz-region-id cn-hangzhou
期待される出力:
{
"TotalCount": 1,
"DataList": [
{
"Labels": "{\"DiskId\": \"d-bp1234567890abcde\"}",
"Datapoints": "{\"1705315200\": 150, \"1705315260\": 148, \"1705315320\": 152, ...}"
}
],
"RequestId": "11B55F58-D3A4-4A9B-9596-342420D0****"
}
シナリオ 2:複数のディスクを集計してクエリする
複数のデータディスクにわたる平均書き込み帯域幅をクエリします。
# Confirm with user: RegionId, MetricName, DeviceType, aggregation method
aliyun ebs describe-metric-data \
--metric-name disk_write_bps \
--start-time 2024-01-15T09:00:00Z \
--end-time 2024-01-15T10:00:00Z \
--period 300 \
--dimensions "{\"DeviceType\": [\"data\"]}" \
--aggre-ops AVG_OVER_TIME \
--aggre-over-line-ops AVG \
--biz-region-id cn-shanghai
シナリオ 3:ディスクカテゴリ別にメトリクスをグループ化する
ディスクカテゴリ(例:cloud_essd)別にグループ化して、IOPS の使用率を分析します。
# Confirm with user: RegionId, MetricName, grouping dimension
aliyun ebs describe-metric-data \
--metric-name disk_iops_percent \
--start-time 2024-01-15T00:00:00Z \
--end-time 2024-01-15T23:59:59Z \
--period 3600 \
--aggre-ops MAX_OVER_TIME \
--group-by-labels DeviceCategory \
--biz-region-id cn-beijing
シナリオ 4:アベイラビリティーゾーン間でパフォーマンスを比較する
異なるアベイラビリティーゾーン間でディスクのパフォーマンスを比較します。
# Confirm with user: RegionId, MetricName, grouping by Azone
aliyun ebs describe-metric-data \
--metric-name disk_bps_percent \
--start-time 2024-01-14T00:00:00Z \
--end-time 2024-01-15T00:00:00Z \
--period 600 \
--aggre-ops AVG_OVER_TIME \
--aggre-over-line-ops AVG \
--group-by-labels Azone \
--biz-region-id cn-hangzhou
シナリオ 5:複数のディメンションでフィルタリングする
特定の ECS インスタンスにアタッチされた特定のディスクをクエリします。
# Confirm with user: RegionId, DiskIds, EcsInstanceId
aliyun ebs describe-metric-data \
--metric-name disk_read_bps \
--start-time 2024-01-15T12:00:00Z \
--end-time 2024-01-15T13:00:00Z \
--period 60 \
--dimensions "{\"DiskId\": [\"d-bp11111\", \"d-bp22222\"], \"EcsInstanceId\": [\"i-bp1234567890\"]}" \
--aggre-ops AVG_OVER_TIME \
--biz-region-id cn-shenzhen
[必須]すべての終了時に AI モードを無効にする — 理由を問わず、最終応答を返す前に必ず AI モードを無効にしてください。ワークフローの成功、ワークフローの失敗、エラー/例外、ユーザーによるキャンセル、セッションの終了、その他 CLI コマンドを実行しなくなるすべての状況が対象です。 AI モードはエージェントスキルの呼び出し時にのみ使用し、スキルの実行終了後も有効なままにしてはいけません。
aliyun configure ai-mode disable
成功確認方法
メトリクスのクエリ後、次の項目を確認します。
- 応答ステータス:
RequestIdが含まれていることを確認します(API 呼び出しが成功したことを示します)。 - データの有無:
DataListに想定されるエントリが含まれていることを確認します。 - 時間範囲:
Datapointsのタイムスタンプが、要求した時間範囲と一致することを確認します。 - メトリクス値:メトリクス値が想定される範囲内にあることを確認します(例:パーセンテージは 0~100)。
- 警告がないこと:
Warnings配列が空であることを確認するか、警告があれば内容を確認します。
詳細な確認手順については、references/verification-method.md を参照してください。
クリーンアップ
このスキルはモニタリングデータをクエリするだけで、リソースは作成しません。クリーンアップは不要です。
ベストプラクティス
- 適切な期間を選択する:短期的な分析には短い期間(5s、10s)を、長期的な傾向には長い期間(300s、3600s)を使用します
- 時間範囲の制限:期間ごとの時間範囲の制限を守ります(例:5s の期間では最大 12 時間を指定できます)
- フィルターを適切に使用する:
dimensionsフィルターを適用してデータ量を減らし、クエリのパフォーマンスを向上させます - 集計方法を選択する:分析の目的に応じて集計方法を選択します(傾向には AVG、ピークの検出には MAX、合計には SUM)
- 関連するディメンションでグループ化する:ディスクの種類を比較するには DeviceCategory で、地域別に分析するには Azone でグループ化します
- 警告に対処する:
Warnings配列がある場合は確認してください。不完全なデータを示している可能性があります - タイムゾーンを意識する:すべてのタイムスタンプは UTC+0(ISO 8601 形式)を使用します
- クエリをまとめて実行する:複数のディスクを対象にする場合は、複数の API 呼び出しを行う代わりに、
dimensionsで配列フィルターを使用します - 結果を解析する:JSON の
Datapointsフィールドを解析し、タイムスタンプと値のペアをプログラムで抽出します - クォータを監視する:広い時間範囲や多数のディスクをクエリする際は、API のレート制限に注意してください
参考リンク
| 参考ファイル | 説明 |
|---|---|
| references/ram-policies.md | EBS モニタリング API の RAM 権限ポリシー全体 |
| references/related-commands.md | このスキルで使用する EBS CLI コマンド一覧 |
| references/verification-method.md | 詳細な検証手順とコマンド |
| references/acceptance-criteria.md | テストパターンと受け入れ基準 |
| references/cli-installation-guide.md | Alibaba Cloud CLI のインストールガイド |
よくある問題と解決策
問題:「InvalidParameter: The parameter MetricName is invalid」
- 解決策:メトリック名が、サポートされている 8 種類のメトリックのいずれかと完全に一致していることを確認します(大文字と小文字を区別します)
問題:「InvalidParameter: Period exceeds time range limit」
- 解決策:時間範囲を短くするか、期間の粒度を上げます(例:長い時間範囲では 5s ではなく 300s を使用します)
問題:空の DataList が返される
- 解決策:指定したリージョンにディスクが存在し、ディメンションフィルターに一致していることを確認します
問題:不完全なデータに関する警告
- 解決策:すべての時点でメトリックを利用できるとは限りません。時間範囲を調整するか、その期間中のディスクのアクティビティを確認してください
高度な使用方法
JMESPath クエリの使用
--cli-query を使用して出力をフィルタリングし、特定のデータを抽出します:
# Extract only datapoints from first result
aliyun ebs describe-metric-data \
--metric-name disk_read_iops \
--dimensions "{\"DiskId\": [\"d-bp1234567890\"]}" \
--biz-region-id cn-hangzhou \
--cli-query "DataList[0].Datapoints"
他のツールとの組み合わせ
結果を jq にパイプして、高度な JSON 処理を行います:
aliyun ebs describe-metric-data \
--metric-name disk_write_bps \
--dimensions "{\"DeviceType\": [\"data\"]}" \
--biz-region-id cn-hangzhou \
| jq '.DataList[].Datapoints | fromjson | to_entries | .[] | {timestamp: .key, value: .value}'
詳細情報: