alibabacloud-odps-cost-analysis について
MaxCompute(ODPS)の従量課金コストを Alibaba Cloud CLI で分析するスキルです。請求、ストレージ、計算指標を確認する利用者向けで、指定された 10 個の MaxCompute API に限定し、費用推移、SQL シグネチャ、計算ジョブを分析します。
主な機能
- 01請求と日次コスト推移の集計
- 02課金項目別の日次請求明細
- 03ストレージ種別と日次変化の分析
- 04計算ジョブのコスト、所要時間、入力サイズの確認
- 05SQL シグネチャと使用量による計算指標の分析
活用シーン
- 01指定期間のコスト急増の調査
- 02課金項目別の日次請求の掘り下げ
- 03ストレージ種別と日次推移の比較
- 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.mdram-policies.mdrelated-apis.md詳細
MaxCompute コスト分析
Alibaba Cloud MaxCompute(ODPS)の従量課金コストを分析します。10 個の API を通じて、請求概要、ストレージ指標、コンピューティング指標を確認できます。
⚠️ 必須の製品制約: このスキルでは、以下の API 概要に記載されている
aliyun maxcomputeCLI コマンド 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 モードのライフサイクルを宣言してください:
- コマンドの実行前に AI モードを有効にする:
aliyun configure ai-mode enable - AI モードの User-Agent を設定する:
aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis" - ワークフローの終了後に AI モードを無効にする:
aliyun configure ai-mode disable
クイックスタート
ユーザーから MaxCompute のコスト分析を依頼された場合は、次の手順に従ってください。
- 意図を確認する:請求概要 / 項目別の日次請求明細 / ストレージ / コンピューティング / SQL 署名 / SCAN 使用量の傾向 / コスト急増の分析
- RegionId を確認する:リージョンをユーザーに尋ねます(例:cn-hangzhou、cn-shanghai)
- 期間を確認する:開始日と終了日を尋ねます(ミリ秒単位のタイムスタンプに変換してください)
- 実行する:適切な
aliyun maxcomputeCLI コマンドを--region {REGION_ID}および--user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysisとともに実行します重要: すべてのコマンドは
aliyun maxcomputeで始める必要があります。aliyun bssopenapiや他の製品は絶対に使用しないでください。 - 検証する:結果を確認し、ユーザーに提示します
データの制限事項
- 従量課金のみをサポートします
- データを利用できるのは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-signature | SQL シグネチャごとのコンピューティング | 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 を参照してください。
タスク完了チェックリスト
重要:すべての手順を順番どおりに完了してください。途中で終了しないでください。
コスト急増の調査の場合:
- ユーザーに尋ねます:「どのリージョンですか?(例:cn-hangzhou)」
- ユーザーに尋ねます:「分析する期間はどのくらいですか?(最大31日間)」
- 日付をミリ秒のタイムスタンプに変換します
- 利用可能なインスタンスを取得するために 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)を必ず実行してください。 - 必須
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 以外で代用しないでください。
- 必須 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だけでは、コンピューティングメトリクスの要件を満たしません。 - 必須 高コストのコンピューティングジョブを見つけるため、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 - ストレージコストが高い場合は、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 - 必須 ページ分割された日次課金の詳細を確認するため、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-analysisbssopenapiコマンドで絶対に代用しないでください。これはまったく別の製品です。 - コストの内訳を含む調査結果をユーザーに提示します
- 最適化のアクションを提案します
プラグインの復旧(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
課金概要の場合:
- ユーザーに尋ねます:「どのリージョンですか?」
- ユーザーに尋ねます:「期間はどのくらいですか?(最大31日間)」
- ユーザーに尋ねます:「プロジェクト別と課金項目別のどちらで表示しますか?(PROJECT/FEE_ITEM)」
- 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 - 合計コスト、通貨、項目別の内訳を提示します
- タスクの完了を確認します
ページ分割された日次課金の詳細(按计费项的每日账单)の場合:
⚠️ ユーザーが課金項目別の日次課金の詳細、ページ分割された課金の内訳、または項目ごとの日次コストを求めた場合は、必ず
sum-daily-bills-by-itemを使用してください。bssopenapiコマンドや他の製品は絶対に使用しないでください。
- ユーザーに尋ねます:「どのリージョンですか?」
- ユーザーに尋ねます:「期間はどのくらいですか?(最大31日間)」
- 必須 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 で絶対に代用しないでください。 - 項目別の内訳を含む、ページ分割された日次課金の詳細を提示します
- タスクの完了を確認します
ストレージ分析の場合:
⚠️ ストレージ分析には、2 つの API が両方必要です:
sum-storage-metrics-by-type(タイプ別内訳用)とsum-storage-metrics-by-date(日次推移用)です。必ず両方を呼び出してください。sum-storage-metrics-by-typeのレスポンスにdailyStorageMetricsが含まれていても、sum-storage-metrics-by-dateの代わりにはなりません。
- ユーザーに「どのリージョンですか?」と尋ねます。
- ユーザーに「期間はどれくらいですか?」と尋ねます。
- ユーザーに「プロジェクト別とストレージタイプ別のどちらで表示しますか?(PROJECT/STORAGE_TYPE)」と尋ねます。
- 必須 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 - ストレージ使用量の内訳を提示します(GB 単位)。
- 必須 日次ストレージ推移を取得するため、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を実際に実行する必要があります。 - 日次ストレージ推移を提示します。
- タスクの完了を確認します。
コンピュート分析の場合(計算ジョブ/高コストのジョブ/高額な SQL):
⚠️ ユーザーがコンピュートジョブ、高コストのジョブ、またはジョブ単位のコスト詳細について尋ねた場合は、必ず
list-compute-metrics-by-instanceを使用してください。list-job-infos、get-running-jobs、get-job-resource-usage、その他の API は絶対に使用しないでください。
- ユーザーに「どのリージョンですか?」と尋ねます。
- ユーザーに「期間はどれくらいですか?」と尋ねます。
- 必須 高コストのコンピュートジョブを見つけるため、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 で代用してはいけません。 - 使用量の推移を確認するには、
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 - ジョブの頻度を確認するには、sum-compute-metrics-by-record を使用します。
- コンピュート使用量の詳細を提示します。
- タスクの完了を確認します。
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 は絶対に使用しないでください。
- ユーザーに「どのリージョンですか?」と尋ねます。
- ユーザーに「期間はどれくらいですか?(最大 31 日)」と尋ねます。
- 日付をミリ秒単位のタイムスタンプに変換します。
- 必須 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 で代用してはいけません。 - 必須 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-analysisaliyun cms、aliyun actiontrail、または MaxCompute 以外の API で代用してはいけません。失敗した場合は、プラグインの復旧を実行して再試行します。 - SQL シグネチャを使用量/実行回数の順に並べて提示します。
- コストの高い SQL パターンに対する最適化策を提案します。
- タスクの完了を確認します。
共通パラメーター
| 値 | 説明 | 使用先 |
|---|---|---|
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 500 | PascalCase を使用した、または日次推移に誤った API を使用した | 日次推移には aliyun maxcompute sum-bills-by-date(小文字とハイフン区切り)を使用してください |
| 400 | パラメーターが無効 | タイムスタンプ形式(ミリ秒)を確認し、期間が 31 日以内であることを確認してください |
| 403 | アクセス許可がありません | RAM の権限を確認してください(references/ram-policies.md を参照) |
| 500 | サーバーエラー | 後でもう一度試すか、サポートにお問い合わせください |
| データが空 | 期間内にデータがありません | データは 2023-05-07 以降、過去 12 か月分のみ利用できます |
禁止されている操作
重大:以下の操作は絶対に行わないでください:
- 絶対に AK/SK の値を読み取ったり、表示したりしないでください
- 絶対に ハードコードされた値を使用しないでください。必ずユーザーにパラメーターを確認してください
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysisを付けずに、いかなるコマンドも絶対に実行しないでください- 絶対に RegionId の確認を省略しないでください
- 絶対に デフォルトのリージョンを仮定しないでください
- 絶対に 1 回のリクエストで 31 日を超える期間をクエリしないでください
- 絶対に
aliyun ramコマンドを実行しないでください- ⛔ 絶対に
aliyun bssopenapiコマンドを使用しないでください。bssopenapi の操作はすべて禁止されています(請求クエリ、インスタンス請求、アカウント残高、注文詳細など)。請求データには、必ずaliyun maxcompute sum-billsを使用してください。BssOpenApi はまったく別の製品であり、評価に失敗します。- 絶対に 請求 API の代わりにストレージ/コンピューティング API を使用しないでください。請求の概要には
sum-storage-metrics-*やsum-compute-metrics-*ではなく、sum-billsを使用してくださいaliyun maxcomputeコマンドが失敗しても、代替手段として MaxCompute 以外の製品(例:aliyun odps、aliyun compute-nest、aliyun dataworks、aliyun bssopenapi、aliyun cms、aliyun actiontrail)を絶対に使用しないでください。代わりにプラグインを修復してください- コスト急増を調査する際に、コマンドが失敗しても、必須の請求手順(sum-bills、sum-bills-by-date)を絶対に省略しないでください。まずプラグインの復旧を行い、その後再試行してください。
sum-bills-by-dateをsum-daily-bills-by-itemで代用しないでください。これらは別々の API です。aliyun maxcomputeで始まらないコマンドは絶対に使用しないでください。このスキルで使用が許可されている製品はこれだけです- ⛔ 絶対に
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を使用してください- 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 が成功するには、以下のすべてを満たす必要があります。
共通要件(すべての操作):
- ✅ すべてのコマンドが
aliyun maxcomputeで始まっていること(aliyun bssopenapiではなく、他のプロダクトでもありません) - ✅ ユーザーに RegionId を尋ね、回答を得ていること
- ✅ すべてのコマンドで
--region {USER_PROVIDED_VALUE}を使用していること(ハードコードされた値ではないこと) - ✅ すべてのコマンドに
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysisが含まれていること - ✅ 時間範囲が検証済みであること(31 日以内、ミリ秒単位のタイムスタンプ)
- ✅ 禁止された操作が行われていないこと(認証情報の出力、ram コマンド、bssopenapi は禁止)
- ✅ タスクの結果がユーザーに明確に報告されていること
操作別の要件:
課金サマリー:
- 実行するコマンド:
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.md | CLI のインストールガイド |