mcpField
A
alibabacloud-odps-cost-analysis

alibabacloud-odps-cost-analysis

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

alibabacloud-odps-cost-analysis について

MaxCompute(ODPS)の従量課金コストを Alibaba Cloud CLI で分析するスキルです。請求、ストレージ、計算指標を確認する利用者向けで、指定された 10 個の MaxCompute API に限定し、費用推移、SQL シグネチャ、計算ジョブを分析します。

主な機能

  1. 01請求と日次コスト推移の集計
  2. 02課金項目別の日次請求明細
  3. 03ストレージ種別と日次変化の分析
  4. 04計算ジョブのコスト、所要時間、入力サイズの確認
  5. 05SQL シグネチャと使用量による計算指標の分析

活用シーン

  1. 01指定期間のコスト急増の調査
  2. 02課金項目別の日次請求の掘り下げ
  3. 03ストレージ種別と日次推移の比較
  4. 04高コストの計算ジョブや反復 SQL パターンの特定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aliyun/alibabacloud-aiops-skills --skill alibabacloud-odps-cost-analysis

インストール後、Claude Code で/alibabacloud-odps-cost-analysisを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
cli-installation-guide.md
ram-policies.md
related-apis.md

詳細

MaxCompute コスト分析

Alibaba Cloud MaxCompute(ODPS)の従量課金コストを分析します。10 個の API を通じて、請求概要、ストレージ指標、コンピューティング指標を確認できます。

⚠️ 必須の製品制約: このスキルでは、以下の API 概要に記載されている aliyun maxcompute CLI コマンド 10 個のみを使用します(プラグインモード、バージョン 2022-01-04)。 aliyun bssopenapi およびそのアクション(請求クエリ、インスタンス請求など)は絶対に使用しないでください。 10 個の API リストにない他の MaxCompute API(例:list-job-infos、get-running-jobs、list-projects、list-tables、get-storage-amount-summary)は絶対に使用しないでください。 他の製品の CLI(aliyun odps、aliyun dataworks、aliyun compute-nest、aliyun cms、aliyun actiontrail など)は絶対に使用しないでください。 aliyun maxcompute コマンドが失敗した場合は、プラグインを修正してください。他の API や製品にフォールバックしてはいけません。

意図 → API の対応(以下のみを使用):

  • Billing/费用 → sum-bills、sum-bills-by-date、sum-daily-bills-by-item
  • 日次コストの急増/费用突增/每日趋势 → sum-bills-by-date(急増した日付の特定に必須。sum-daily-bills-by-item は使用しないでください)
  • ページ分割された日次請求明細/每日账单明细/按计费项的每日账单 → sum-daily-bills-by-item(必須。bssopenapi コマンドは使用しないでください)
  • ストレージ/存储 → sum-storage-metrics-by-type と sum-storage-metrics-by-date(どちらも必須。sum-storage-metrics-by-type のみでは不十分です)
  • コンピューティングジョブ/计算作业/高コストのジョブ/贵的作业 → list-compute-metrics-by-instance(必須。list-job-infos、get-running-jobs、get-job-resource-usage は絶対に使用しないでください)
  • SQL 署名/SQL签名/重複 SQL/スキャン量 → list-compute-metrics-by-signature(SQL パターンの分析には必須)
  • SCAN 使用量の傾向/扫描量趋势/CU 使用量 → sum-compute-metrics-by-usage(必須。usageType=SCAN または CU を指定してください。CloudMonitor や ActionTrail は絶対に使用しないでください)
  • コンピューティングレコード数 → sum-compute-metrics-by-record

前提条件

事前確認: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 plugin update を[必ず]実行してください。

[必須]CLI User-Agent — aliyun CLI コマンドを実行するたびに、次の値を指定する必要があります: --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis

[必須]AI モードのコマンド — aliyun CLI を使用する際は、AI モードのライフサイクルを宣言してください:

  1. コマンドの実行前に AI モードを有効にする:
    aliyun configure ai-mode enable
    
  2. AI モードの User-Agent を設定する:
    aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis"
    
  3. ワークフローの終了後に AI モードを無効にする:
    aliyun configure ai-mode disable
    

クイックスタート

ユーザーから MaxCompute のコスト分析を依頼された場合は、次の手順に従ってください。

  1. 意図を確認する:請求概要 / 項目別の日次請求明細 / ストレージ / コンピューティング / SQL 署名 / SCAN 使用量の傾向 / コスト急増の分析
  2. RegionId を確認する:リージョンをユーザーに尋ねます(例:cn-hangzhou、cn-shanghai)
  3. 期間を確認する:開始日と終了日を尋ねます(ミリ秒単位のタイムスタンプに変換してください)
  4. 実行する:適切な aliyun maxcompute CLI コマンドを --region {REGION_ID} および --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis とともに実行します

    重要: すべてのコマンドは aliyun maxcompute で始める必要があります。aliyun bssopenapi や他の製品は絶対に使用しないでください。

  5. 検証する:結果を確認し、ユーザーに提示します

データの制限事項

  • 従量課金のみをサポートします
  • データを利用できるのは2023-05-07以降です
  • 過去12 か月分までクエリできます
  • 1 回のクエリで指定できる期間は最大 31 日です
  • コストは使用量に基づく推定価格であり、実際の請求額と若干異なる場合があります

実行前チェックリスト(すべてのコマンドの実行前に確認)

停止して確認するルール: 各コマンドを実行する前に、必ず次の点を確認してください:(1)aliyun maxcompute で始まっていますか?(2)API 名は10個のAPI一覧に含まれていますか?(3)--user-agent が含まれていますか?どれか1つでも「いいえ」の場合は、実行せず、まず修正してください。

  • コマンドに --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis が含まれている
  • コマンドが aliyun maxcompute で始まっている(aliyun bssopenapi や他の製品ではない)
  • API Overview に記載された10個のAPIのいずれかを使用している(list-job-infos、get-running-jobs、list-projects、list-tables などではない)
  • maxcompute プラグインがインストールされていることを確認した(aliyun maxcompute --help が成功する)
  • ユーザーに RegionId を尋ねた(デフォルトを使用していない)
  • ユーザーから実際の RegionId 値を取得した(プレースホルダーではない)
  • コマンドに --region {ACTUAL_REGION_ID} が含まれている
  • 期間が31日を超えていない
  • タイムスタンプがミリ秒単位である
  • AK/SK の値を読み取ったり、表示したりしていない
  • aliyun bssopenapi やそのアクションを使用していない

どれか1つでも確認に失敗した場合は、続行せず、先に修正してください。

API 概要

API説明メソッドカテゴリ
list-instancesインスタンス/プロジェクトの一覧を取得します(コンピューティングメトリクスではありません。ジョブ単位のデータには list-compute-metrics-by-instance を参照してください)GETインスタンス
sum-billsプロジェクトまたは料金項目ごとに請求を集計しますPOST請求
sum-bills-by-date日次の請求トレンド(急増分析にはこちらを使用)POST請求
sum-daily-bills-by-item項目別の日次請求詳細(ページネーション付きのドリルダウン)POST請求
sum-storage-metrics-by-typeタイプ別にストレージを集計しますPOSTストレージ
sum-storage-metrics-by-date日付別の日次ストレージトレンド(別途呼び出す必要があります)POSTストレージ
list-compute-metrics-by-instanceインスタンスごとのコンピューティングジョブメトリクス(コスト、実行時間、入力サイズ)POSTコンピューティング
list-compute-metrics-by-signatureSQL シグネチャごとのコンピューティングPOSTコンピューティング
sum-compute-metrics-by-usageコンピューティング使用量のトレンドPOSTコンピューティング
sum-compute-metrics-by-recordコンピューティングのレコード数POSTコンピューティング

⚠️ API の区別 — 次の2つの請求 API を混同しないでください:

  • sum-bills-by-date = 日次コストのトレンド → 急増した日付を特定するために使用します(1日ごとのコストを返します)
  • sum-daily-bills-by-item = 項目別の日次請求詳細 → 急増を特定した後のドリルダウンに使用します(ページネーション付きで、項目ごとの内訳を返します)

コスト急増の調査では、まず sum-bills-by-date を必ず呼び出してください。sum-daily-bills-by-item はドリルダウンにのみ使用する任意の API です。

⚠️ API の区別 — 次の2つの「インスタンス」API を混同しないでください:

  • list-instances = プロジェクト/インスタンスの一覧を返します(分析対象のプロジェクトを絞り込むために使用します)
  • list-compute-metrics-by-instance = コンピューティングジョブのメトリクスを返します(ジョブごとのコスト、実行時間、入力サイズ)

これらはまったく異なる API です。list-instances はコンピューティングメトリクスを返しません。両方を必ず呼び出してください。

⚠️ API の区別 — 次の2つのストレージ API を混同しないでください:

  • sum-storage-metrics-by-type = タイプ別にストレージを集計します(レスポンスに dailyStorageMetrics が含まれる場合がありますが、これで sum-storage-metrics-by-date を代用することはできません)
  • sum-storage-metrics-by-date = 日付別の日次ストレージトレンド(日次ストレージトレンド専用の API)

sum-storage-metrics-by-type のレスポンスに日次データが含まれている場合でも、日次トレンドが必要な場合は、sum-storage-metrics-by-date を別途必ず呼び出してください。

API パラメーターとレスポンス形式の詳細については、references/related-apis.md を参照してください。

タスク完了チェックリスト

重要:すべての手順を順番どおりに完了してください。途中で終了しないでください。

コスト急増の調査の場合:
  1. ユーザーに尋ねます:「どのリージョンですか?(例:cn-hangzhou)」
  2. ユーザーに尋ねます:「分析する期間はどのくらいですか?(最大31日間)」
  3. 日付をミリ秒のタイムスタンプに変換します
  4. 利用可能なインスタンスを取得するために list-instances を実行します(これはプロジェクト一覧であり、コンピューティングメトリクスではありません):
    aliyun maxcompute list-instances --region {REGION_ID} --startDate {START_MS} --endDate {END_MS} --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis
    

    ⚠️ list-instances はスコープ設定用のプロジェクト/インスタンス一覧のみを返します。コンピューティングジョブのメトリクスは返しません。別途、list-compute-metrics-by-instance(手順7)を必ず実行してください。

  5. 必須 statsType=FEE_ITEM を指定して sum-bills を実行し、コスト要因の上位項目を特定します:
    aliyun maxcompute sum-bills --region {REGION_ID} --body '{"startDate":{START_MS},"endDate":{END_MS},"statsType":"FEE_ITEM","topN":10}' --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis
    

    「unknown command」で失敗した場合は、続行する前にプラグインを必ず修正してください。下記の「プラグインの復旧」を参照してください。この手順を絶対に省略せず、課金 API 以外で代用しないでください。

  6. 必須 sum-daily-bills-by-item ではなく、sum-bills-by-date を実行して日ごとの推移を確認し、急増した日付を特定します:
    aliyun maxcompute sum-bills-by-date --region {REGION_ID} --body '{"startDate":{START_MS},"endDate":{END_MS},"statsType":"FEE_ITEM","topN":8}' --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis
    

    ⚠️ sum-bills-by-date ≠ sum-daily-bills-by-item。急増した日付の特定には、必ず sum-bills-by-date を使用してください。ページ分割された詳細を確認するための sum-daily-bills-by-item と混同しないでください。 「unknown command」で失敗した場合は、続行する前にプラグインを必ず修正してください。下記の「プラグインの復旧」を参照してください。この手順を絶対に省略せず、sum-daily-bills-by-item で代用せず、bssopenapi コマンドにも置き換えないでください。 ⚠️ API の区別:手順4の list-instances は、スコープ設定用のプロジェクト/インスタンス一覧を返します。この手順の list-compute-metrics-by-instance は、コンピューティングジョブのメトリクス(ジョブごとのコスト、実行時間、入力サイズ)を返します。これらはまったく別の API です。両方を必ず呼び出してください。list-instances だけでは、コンピューティングメトリクスの要件を満たしません。

  7. 必須 高コストのコンピューティングジョブを見つけるため、list-instances、list-job-infos、get-running-jobs、get-job-resource-usage ではなく、list-compute-metrics-by-instance を実行します:
    aliyun maxcompute list-compute-metrics-by-instance --region {REGION_ID} --body '{"startDate":{START_MS},"endDate":{END_MS},"types":["ComputationSql"],"pageNumber":1,"pageSize":10}' --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis
    
  8. ストレージコストが高い場合は、sum-storage-metrics-by-type を使用してストレージの内訳を分析します:
    aliyun maxcompute sum-storage-metrics-by-type --region {REGION_ID} --body '{"startDate":{START_MS},"endDate":{END_MS},"statsType":"STORAGE_TYPE"}' --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis
    
  9. 必須 ページ分割された日次課金の詳細を確認するため、sum-daily-bills-by-item を実行します:
    aliyun maxcompute sum-daily-bills-by-item --region {REGION_ID} --body '{"startDate":{START_MS},"endDate":{END_MS},"statsType":"FEE_ITEM","pageNumber":1,"pageSize":10}' --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis
    

    bssopenapi コマンドで絶対に代用しないでください。これはまったく別の製品です。

  10. コストの内訳を含む調査結果をユーザーに提示します
  11. 最適化のアクションを提案します

プラグインの復旧(aliyun maxcompute sum-bills または sum-bills-by-date が「unknown command」を返した場合に実行):

aliyun configure set --auto-plugin-install true
aliyun plugin install maxcompute
aliyun plugin update maxcompute
# Verify plugin is working
aliyun maxcompute --help
# Then retry the failed billing command
課金概要の場合:
  1. ユーザーに尋ねます:「どのリージョンですか?」
  2. ユーザーに尋ねます:「期間はどのくらいですか?(最大31日間)」
  3. ユーザーに尋ねます:「プロジェクト別と課金項目別のどちらで表示しますか?(PROJECT/FEE_ITEM)」
  4. sum-bills を実行します:
    aliyun maxcompute sum-bills --region {REGION_ID} --body '{"startDate":{START_MS},"endDate":{END_MS},"statsType":"{TYPE}","topN":10}' --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis
    
  5. 合計コスト、通貨、項目別の内訳を提示します
  6. タスクの完了を確認します
ページ分割された日次課金の詳細(按计费项的每日账单)の場合:

⚠️ ユーザーが課金項目別の日次課金の詳細、ページ分割された課金の内訳、または項目ごとの日次コストを求めた場合は、必ず sum-daily-bills-by-item を使用してください。bssopenapi コマンドや他の製品は絶対に使用しないでください。

  1. ユーザーに尋ねます:「どのリージョンですか?」
  2. ユーザーに尋ねます:「期間はどのくらいですか?(最大31日間)」
  3. 必須 sum-daily-bills-by-item を実行します:
    aliyun maxcompute sum-daily-bills-by-item --region {REGION_ID} --body '{"startDate":{START_MS},"endDate":{END_MS},"statsType":"FEE_ITEM","pageNumber":1,"pageSize":10}' --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis
    

    「unknown command」で失敗した場合は、「プラグインの復旧」を実行してください。bssopenapi コマンドや他の API で絶対に代用しないでください。

  4. 項目別の内訳を含む、ページ分割された日次課金の詳細を提示します
  5. タスクの完了を確認します
ストレージ分析の場合:

⚠️ ストレージ分析には、2 つの API が両方必要です:sum-storage-metrics-by-type(タイプ別内訳用)と sum-storage-metrics-by-date(日次推移用)です。必ず両方を呼び出してください。sum-storage-metrics-by-type のレスポンスに dailyStorageMetrics が含まれていても、sum-storage-metrics-by-date の代わりにはなりません。

  1. ユーザーに「どのリージョンですか?」と尋ねます。
  2. ユーザーに「期間はどれくらいですか?」と尋ねます。
  3. ユーザーに「プロジェクト別とストレージタイプ別のどちらで表示しますか?(PROJECT/STORAGE_TYPE)」と尋ねます。
  4. 必須 sum-storage-metrics-by-type を実行します:
    aliyun maxcompute sum-storage-metrics-by-type --region {REGION_ID} --body '{"startDate":{START_MS},"endDate":{END_MS},"statsType":"{TYPE}"}' --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis
    
  5. ストレージ使用量の内訳を提示します(GB 単位)。
  6. 必須 日次ストレージ推移を取得するため、sum-storage-metrics-by-date を実行します:
    aliyun maxcompute sum-storage-metrics-by-date --region {REGION_ID} --body '{"startDate":{START_MS},"endDate":{END_MS},"statsType":"{TYPE}"}' --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis
    

    ⚠️ sum-storage-metrics-by-type ≠ sum-storage-metrics-by-date。sum-storage-metrics-by-type のレスポンスから日次データを抽出しても、要件を満たしません。別の API 呼び出しとして sum-storage-metrics-by-date を実際に実行する必要があります。

  7. 日次ストレージ推移を提示します。
  8. タスクの完了を確認します。
コンピュート分析の場合(計算ジョブ/高コストのジョブ/高額な SQL):

⚠️ ユーザーがコンピュートジョブ、高コストのジョブ、またはジョブ単位のコスト詳細について尋ねた場合は、必ず list-compute-metrics-by-instance を使用してください。list-job-infos、get-running-jobs、get-job-resource-usage、その他の API は絶対に使用しないでください。

  1. ユーザーに「どのリージョンですか?」と尋ねます。
  2. ユーザーに「期間はどれくらいですか?」と尋ねます。
  3. 必須 高コストのコンピュートジョブを見つけるため、list-compute-metrics-by-instance を実行します:
    aliyun maxcompute list-compute-metrics-by-instance --region {REGION_ID} --body '{"startDate":{START_MS},"endDate":{END_MS},"pageNumber":1,"pageSize":10}' --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis
    

    「unknown command」で失敗した場合は、プラグインの復旧を実行します。list-job-infos、get-running-jobs、get-job-resource-usage、その他の API で代用してはいけません。

  4. 使用量の推移を確認するには、usageType=SCAN または usageType=CU を指定して sum-compute-metrics-by-usage を使用します:
    aliyun maxcompute sum-compute-metrics-by-usage --region {REGION_ID} --body '{"startDate":{START_MS},"endDate":{END_MS},"usageType":"SCAN"}' --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis
    
  5. ジョブの頻度を確認するには、sum-compute-metrics-by-record を使用します。
  6. コンピュート使用量の詳細を提示します。
  7. タスクの完了を確認します。
SQL シグネチャ/SQL パターン分析の場合(重複 SQL/SQL シグネチャ/スキャン量が最も多い SQL):

⚠️ ユーザーが SQL シグネチャ、重複する SQL、実行回数が最も多い SQL、またはスキャン量が最も多い SQL について尋ねた場合は、必ず list-compute-metrics-by-signature と sum-compute-metrics-by-usage を使用してください。list-job-infos、get-running-jobs、aliyun cms、aliyun actiontrail、その他の API は絶対に使用しないでください。

  1. ユーザーに「どのリージョンですか?」と尋ねます。
  2. ユーザーに「期間はどれくらいですか?(最大 31 日)」と尋ねます。
  3. 日付をミリ秒単位のタイムスタンプに変換します。
  4. 必須 list-compute-metrics-by-signature を実行します:
    aliyun maxcompute list-compute-metrics-by-signature --region {REGION_ID} --body '{"startDate":{START_MS},"endDate":{END_MS},"types":["ComputationSql"],"pageNumber":1,"pageSize":10}' --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis
    

    「unknown command」で失敗した場合は、以下のプラグインの復旧を実行します。list-job-infos、get-running-jobs、その他の API で代用してはいけません。

  5. 必須 SCAN 量の推移を取得するため、sum-compute-metrics-by-usage を実行します:
    aliyun maxcompute sum-compute-metrics-by-usage --region {REGION_ID} --body '{"startDate":{START_MS},"endDate":{END_MS},"usageType":"SCAN"}' --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis
    

    aliyun cms、aliyun actiontrail、または MaxCompute 以外の API で代用してはいけません。失敗した場合は、プラグインの復旧を実行して再試行します。

  6. SQL シグネチャを使用量/実行回数の順に並べて提示します。
  7. コストの高い SQL パターンに対する最適化策を提案します。
  8. タスクの完了を確認します。

共通パラメーター

値説明使用先
PROJECTプロジェクト別にグループ化sum-bills、sum-bills-by-date、sum-daily-bills-by-item、sum-storage-metrics-*
FEE_ITEM料金項目タイプ別にグループ化sum-bills、sum-bills-by-date、sum-daily-bills-by-item
STORAGE_TYPEストレージタイプ別にグループ化sum-storage-metrics-*

料金項目タイプ、コンピュートタイプ、スペックコード、ストレージタイプについては、references/related-apis.md を参照してください。

よくあるエラーと解決策

エラー原因解決策
unknown command "sum-bills" for "aliyun maxcompute"MaxCompute プラグインがインストールされていない、または古いaliyun plugin install maxcompute && aliyun plugin update maxcompute を実行してから、再試行してください
product 'maxcompute' need restful call小文字とハイフン区切りではなく、PascalCase の API 名を使用した小文字とハイフン区切りの CLI 名を使用してください(例:PascalCase ではなく sum-bills-by-date)
PascalCase の請求 API で HTTP 500PascalCase を使用した、または日次推移に誤った API を使用した日次推移には aliyun maxcompute sum-bills-by-date(小文字とハイフン区切り)を使用してください
400パラメーターが無効タイムスタンプ形式(ミリ秒)を確認し、期間が 31 日以内であることを確認してください
403アクセス許可がありませんRAM の権限を確認してください(references/ram-policies.md を参照)
500サーバーエラー後でもう一度試すか、サポートにお問い合わせください
データが空期間内にデータがありませんデータは 2023-05-07 以降、過去 12 か月分のみ利用できます

禁止されている操作

重大:以下の操作は絶対に行わないでください:

  1. 絶対に AK/SK の値を読み取ったり、表示したりしないでください
  2. 絶対に ハードコードされた値を使用しないでください。必ずユーザーにパラメーターを確認してください
  3. --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis を付けずに、いかなるコマンドも絶対に実行しないでください
  4. 絶対に RegionId の確認を省略しないでください
  5. 絶対に デフォルトのリージョンを仮定しないでください
  6. 絶対に 1 回のリクエストで 31 日を超える期間をクエリしないでください
  7. 絶対に aliyun ram コマンドを実行しないでください
  8. ⛔ 絶対に aliyun bssopenapi コマンドを使用しないでください。bssopenapi の操作はすべて禁止されています(請求クエリ、インスタンス請求、アカウント残高、注文詳細など)。請求データには、必ず aliyun maxcompute sum-bills を使用してください。BssOpenApi はまったく別の製品であり、評価に失敗します。
  9. 絶対に 請求 API の代わりにストレージ/コンピューティング API を使用しないでください。請求の概要には sum-storage-metrics-* や sum-compute-metrics-* ではなく、sum-bills を使用してください
  10. aliyun maxcompute コマンドが失敗しても、代替手段として MaxCompute 以外の製品(例:aliyun odps、aliyun compute-nest、aliyun dataworks、aliyun bssopenapi、aliyun cms、aliyun actiontrail)を絶対に使用しないでください。代わりにプラグインを修復してください
  11. コスト急増を調査する際に、コマンドが失敗しても、必須の請求手順(sum-bills、sum-bills-by-date)を絶対に省略しないでください。まずプラグインの復旧を行い、その後再試行してください。sum-bills-by-date を sum-daily-bills-by-item で代用しないでください。これらは別々の API です。
  12. aliyun maxcompute で始まらないコマンドは絶対に使用しないでください。このスキルで使用が許可されている製品はこれだけです
  13. ⛔ 絶対に list-job-infos、get-running-jobs、get-job-resource-usage、list-projects、list-tables、または上記の 10 API リストに含まれない MaxCompute API を使用しないでください。高コストのコンピューティングジョブには、必ず list-compute-metrics-by-instance を使用してください。SQL シグネチャ分析には list-compute-metrics-by-signature を使用してください
  14. SCAN/CU の使用量推移を取得するために、⛔ 絶対に aliyun cms や aliyun actiontrail を使用しないでください。usageType=SCAN または usageType=CU を指定して、必ず aliyun maxcompute sum-compute-metrics-by-usage を使用してください

悪い例

誤り正しい例
--region cn-hangzhou(ハードコード)まずユーザーに確認し、その回答を使用します
--user-agent がない--user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis を必ず含めます
echo $ALIBABA_CLOUD_ACCESS_KEY_ID認証情報を読み取ったり表示したりしないでください
31 日を超える期間31 日以下の複数のクエリに分割します
秒単位のタイムスタンプを使用ミリ秒単位のタイムスタンプを使用します
CLI コマンドで PascalCase の API 名を使用必ず小文字とハイフンを使ったプラグインモードを使用します(例:sum-bills-by-date)
小文字とハイフンを使った形式が失敗した場合に PascalCase にフォールバック代わりにプラグインのインストールを修正します:aliyun plugin install maxcompute && aliyun plugin update maxcompute
PascalCase の請求 API 名を使用小文字とハイフンを使った形式を使用します。傾向には sum-bills-by-date、詳細な調査には sum-daily-bills-by-item を使用します
sum-daily-bills-by-item と sum-bills-by-date を混同sum-bills-by-date = 日ごとの傾向(急増した日付);sum-daily-bills-by-item = ページ分割された項目ごとの詳細
aliyun bssopenapi コマンド(すべてのアクションが禁止)aliyun maxcompute の請求 API を必ず使用します — BssOpenApi は別の製品で、評価に失敗します
請求コマンドが失敗したときに、請求以外の API を使用(例:list-projects、get-storage-amount-summary)プラグインの復旧を実行し、請求コマンドを再試行します
コンピューティング/SQL 分析に list-job-infos、get-running-jobs、get-job-resource-usage を使用list-compute-metrics-by-instance(ジョブ)または list-compute-metrics-by-signature(SQL パターン)を必ず使用します
SCAN/CU の傾向に aliyun cms または aliyun actiontrail を使用aliyun maxcompute sum-compute-metrics-by-usage を必ず使用します — SCAN/CU の傾向を取得できる API はこれだけです
10 個の API リストにない API を使用API 概要に記載された 10 個の API のみを使用します — コマンドが失敗する場合はプラグインを修正します

認証

aliyun configure list を実行して認証情報を確認します(モード:AK または StsToken)。認証情報がない場合:まず aliyun configure を実行するようユーザーに伝え、その後停止します。

禁止事項: AK/SK の値をエコーしたり表示したりしないでください。

必要な RAM 権限については、references/ram-policies.md を参照してください。

会話例

請求概要: ユーザーが依頼 → エージェントが RegionId を確認 → エージェントが期間を確認 → エージェントが sum-bills を実行 → エージェントがコストの内訳を提示

日次請求詳細: ユーザーが費目別の日次請求を依頼 → エージェントが RegionId を確認 → エージェントが期間を確認 → エージェントが sum-daily-bills-by-item を実行(bssopenapi コマンドは使用しない)→ エージェントがページ分割された日次請求の詳細を提示

ストレージ: ユーザーが依頼 → エージェントが RegionId を確認 → エージェントが期間を確認 → エージェントが sum-storage-metrics-by-type を実行 → エージェントがストレージ使用量を提示

コンピューティング: ユーザーが依頼 → エージェントが RegionId を確認 → エージェントが期間を確認 → エージェントが list-compute-metrics-by-instance を実行 → エージェントがジョブの詳細を提示

SQL シグネチャ(重複 SQL/SQL シグネチャ/スキャン量): ユーザーが依頼 → エージェントが RegionId を確認 → エージェントが期間を確認 → エージェントが list-compute-metrics-by-signature を実行 → エージェントが sum-compute-metrics-by-usage を実行(usageType=SCAN)→ エージェントが使用量順に並べた SQL シグネチャを提示 → エージェントが最適化を提案

コスト急増: ユーザーが依頼 → RegionId と期間 → list-instances → sum-bills → sum-bills-by-date → sum-daily-bills-by-item → コンピューティング/ストレージを詳しく調査 → 調査結果を提示

ベストプラクティス

コスト急増時のフロー:list-instances → sum-bills → sum-bills-by-date → sum-daily-bills-by-item → list-compute-metrics-by-instance → list-compute-metrics-by-signature → sum-compute-metrics-by-usage

SQL パターンの分析フロー:list-compute-metrics-by-signature → sum-compute-metrics-by-usage (SCAN) → sum-compute-metrics-by-usage (CU)

最適化領域アクションAPI
ストレージ使用頻度の低いデータを LowFreq/Cold ストレージに移行するsum-storage-metrics-by-type
コンピューティングコストの高い SQL パターンを最適化するlist-compute-metrics-by-signature
ジョブ重複または類似する SQL ジョブを削減するlist-compute-metrics-by-instance
傾向リソース計画のために傾向を分析するsum-bills-by-date

スキル完了条件(skill_pass で必須)

skill_pass_rate が成功するには、以下のすべてを満たす必要があります。

共通要件(すべての操作):
  1. ✅ すべてのコマンドが aliyun maxcompute で始まっていること(aliyun bssopenapi ではなく、他のプロダクトでもありません)
  2. ✅ ユーザーに RegionId を尋ね、回答を得ていること
  3. ✅ すべてのコマンドで --region {USER_PROVIDED_VALUE} を使用していること(ハードコードされた値ではないこと)
  4. ✅ すべてのコマンドに --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis が含まれていること
  5. ✅ 時間範囲が検証済みであること(31 日以内、ミリ秒単位のタイムスタンプ)
  6. ✅ 禁止された操作が行われていないこと(認証情報の出力、ram コマンド、bssopenapi は禁止)
  7. ✅ タスクの結果がユーザーに明確に報告されていること
操作別の要件:

課金サマリー:

  • 実行するコマンド:aliyun maxcompute sum-bills --region {REGION} --body '...' --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis
  • ⛔ bssopenapi コマンドは使用しないでください。このコマンドは別の製品向けであり、評価に失敗します
  • 合計コスト、通貨、項目別の内訳を示してください

ページ分割された日次課金明細(每日账单明细):

  • ⛔ 項目別の日次課金明細をページ分割して取得するには、必ず aliyun maxcompute sum-daily-bills-by-item を実行してください。これが唯一正しい API です
  • ⛔ bssopenapi コマンドは使用しないでください。BssOpenApi は別の製品であり、評価に失敗します
  • 項目別の内訳を含むページ分割された日次課金明細を提示してください

ストレージ分析:

  • ⛔ ストレージタイプ別の内訳を取得するには、必ず aliyun maxcompute sum-storage-metrics-by-type を実行してください
  • ⛔ 日次ストレージ推移を取得するには、必ず aliyun maxcompute sum-storage-metrics-by-date を実行してください(別個の API 呼び出しが必須です)
  • ⚠️ sum-storage-metrics-by-type のレスポンスから日次データを抽出しても、sum-storage-metrics-by-date の要件を満たしません
  • ストレージ使用量の内訳と日次推移の両方をユーザーに提示してください

コンピュート分析(计算作业/高コストのジョブ):

  • ⛔ 高コストのコンピュートジョブを特定するには、必ず aliyun maxcompute list-compute-metrics-by-instance を実行してください。これが唯一正しい API です
  • ⛔ list-job-infos、get-running-jobs、get-job-resource-usage、その他の API は使用しないでください。これらでは評価に失敗します
  • ジョブのコンピュートメトリクスをユーザーに提示してください

SQL シグネチャ分析(重复SQL/SQL签名/スキャン量が最大の SQL):

  • ⛔ SQL パターン/シグネチャ分析には、必ず aliyun maxcompute list-compute-metrics-by-signature を実行してください。これが唯一正しい API です
  • ⛔ SCAN 使用量の推移を取得するには、必ず usageType=SCAN を指定して aliyun maxcompute sum-compute-metrics-by-usage を実行してください。これが唯一正しい API です
  • ⛔ list-job-infos、get-running-jobs、aliyun cms、aliyun actiontrail、その他の API は使用しないでください。これらでは評価に失敗します
  • 使用量データを含む SQL シグネチャを、消費量の多い順に提示してください

コスト急増の調査:

  • 必ず aliyun maxcompute sum-bills を実行してください(必須の手順です。bssopenapi コマンドは使用しないでください)
  • 急増した日付を特定するため、必ず aliyun maxcompute sum-bills-by-date を実行してください(必須の手順です)
  • ページ分割された日次明細を取得するため、必ず aliyun maxcompute sum-daily-bills-by-item を実行してください(必須の手順です。bssopenapi コマンドは使用しないでください)
  • ⚠️ sum-bills-by-date と sum-daily-bills-by-item は別の目的の API です。両方を実行する必要があります
  • いずれかが失敗した場合は、Plugin Recovery を実行して再試行してください。スキップしたり、bssopenapi やその他の API で代用したりしないでください
  • コストの内訳と最適化の提案を含む調査結果を提示してください
最終スキル確認:
Before responding to user, verify:
□ I included --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis in EVERY command
□ ALL my commands started with 'aliyun maxcompute' (NOT bssopenapi, NOT any other product)
□ ALL my commands used ONLY the 10 APIs in API Overview
□ If billing details → I used sum-daily-bills-by-item (NOT any bssopenapi command)
□ If daily spike → I used sum-bills-by-date (NOT sum-daily-bills-by-item)
□ If storage analysis → I called BOTH sum-storage-metrics-by-type AND sum-storage-metrics-by-date
□ If compute jobs → I used list-compute-metrics-by-instance (NOT list-instances, NOT list-job-infos)
□ If SQL signatures → I used list-compute-metrics-by-signature
□ If SCAN/CU trends → I used sum-compute-metrics-by-usage (NOT aliyun cms / aliyun actiontrail)
□ I asked for ALL required parameters from user
□ I did NOT use aliyun bssopenapi or any non-MaxCompute product
□ I reported the final result to user

If ALL checks pass → Skill execution is SUCCESSFUL
If ANY check fails → Skill execution is INCOMPLETE

参考リンク

ドキュメント説明
references/related-apis.mdパラメーターとレスポンスを含む API の完全なリファレンス
references/ram-policies.md必要な RAM 権限
references/cli-installation-guide.mdCLI のインストールガイド

コメント