mcpField
A
alibabacloud-ebs-disk-metric-analyzer

alibabacloud-ebs-disk-metric-analyzer

github.com/aliyunクラウド・DevOps281145 回インストール1 日前に更新
リポジトリ

alibabacloud-ebs-disk-metric-analyzer について

Aliyun CLI で Alibaba Cloud EBS のディスク監視指標を取得・分析する Agent Skill です。ストレージ性能を確認する運用担当者向けで、時間や複数ディスクでの集計と、ディスク・インスタンス・ゾーン別のグループ化に対応します。

主な機能

  1. 018 種類のディスク指標を取得
  2. 02時間単位で指標を集計
  3. 03複数ディスクの集計と比較
  4. 04ディスク・インスタンス・ゾーン別に分類

活用シーン

  1. 01ディスクの IOPS と帯域利用率の確認
  2. 02読み書き性能の経時変化の把握
  3. 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.md
cli-installation-guide.md
ram-policies.md
related-commands.md
verification-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 - 読み取り IOPS
  • disk_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)があるか、出力を確認してください。

有効なプロファイルがない場合は、ここで停止してください。

  1. Alibaba Cloud Console から認証情報を取得します
  2. このセッションの外部で認証情報を設定します(ターミナルで aliyun configure を実行するか、シェルプロファイルで環境変数を設定します)
  3. aliyun configure list に有効なプロファイルが表示された後、戻って再実行します

RAM ポリシー

このスキルには、以下の Alibaba Cloud RAM 権限が必要です。完全な権限ポリシーについては references/ram-policies.md を参照してください。

必要な API 権限:

  • ebs:DescribeMetricData - ディスクのモニタリングメトリックをクエリする

[MUST] 権限エラーへの対応: 実行中にコマンドまたは API 呼び出しが権限エラーで失敗した場合は、次の手順に従ってください。

  1. references/ram-policies.md を読み、この SKILL に必要な権限の全一覧を確認します
  2. ram-permission-diagnose スキルを使用して、必要な権限を申請する手順をユーザーに案内します
  3. 必要な権限が付与されたとユーザーが確認するまで待機します

パラメーターの確認

重要:パラメーターの確認 — コマンドまたは 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

成功確認方法

メトリクスのクエリ後、次の項目を確認します。

  1. 応答ステータス:RequestId が含まれていることを確認します(API 呼び出しが成功したことを示します)。
  2. データの有無:DataList に想定されるエントリが含まれていることを確認します。
  3. 時間範囲:Datapoints のタイムスタンプが、要求した時間範囲と一致することを確認します。
  4. メトリクス値:メトリクス値が想定される範囲内にあることを確認します(例:パーセンテージは 0~100)。
  5. 警告がないこと:Warnings 配列が空であることを確認するか、警告があれば内容を確認します。

詳細な確認手順については、references/verification-method.md を参照してください。


クリーンアップ

このスキルはモニタリングデータをクエリするだけで、リソースは作成しません。クリーンアップは不要です。


ベストプラクティス

  1. 適切な期間を選択する:短期的な分析には短い期間(5s、10s)を、長期的な傾向には長い期間(300s、3600s)を使用します
  2. 時間範囲の制限:期間ごとの時間範囲の制限を守ります(例:5s の期間では最大 12 時間を指定できます)
  3. フィルターを適切に使用する:dimensions フィルターを適用してデータ量を減らし、クエリのパフォーマンスを向上させます
  4. 集計方法を選択する:分析の目的に応じて集計方法を選択します(傾向には AVG、ピークの検出には MAX、合計には SUM)
  5. 関連するディメンションでグループ化する:ディスクの種類を比較するには DeviceCategory で、地域別に分析するには Azone でグループ化します
  6. 警告に対処する:Warnings 配列がある場合は確認してください。不完全なデータを示している可能性があります
  7. タイムゾーンを意識する:すべてのタイムスタンプは UTC+0(ISO 8601 形式)を使用します
  8. クエリをまとめて実行する:複数のディスクを対象にする場合は、複数の API 呼び出しを行う代わりに、dimensions で配列フィルターを使用します
  9. 結果を解析する:JSON の Datapoints フィールドを解析し、タイムスタンプと値のペアをプログラムで抽出します
  10. クォータを監視する:広い時間範囲や多数のディスクをクエリする際は、API のレート制限に注意してください

参考リンク

参考ファイル説明
references/ram-policies.mdEBS モニタリング API の RAM 権限ポリシー全体
references/related-commands.mdこのスキルで使用する EBS CLI コマンド一覧
references/verification-method.md詳細な検証手順とコマンド
references/acceptance-criteria.mdテストパターンと受け入れ基準
references/cli-installation-guide.mdAlibaba 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}'

詳細情報:

コメント