Back to skills
extension
Category: OtherAPI key required

Alibabacloud Odps Cost Analysis

Alibaba Cloud MaxCompute Cost Analysis Skill. Analyze MaxCompute pay-as-you-go costs including billing, storage metrics, and compute metrics. Triggers: "maxc...

personAuthor: sdk-teamhubclawhub

MaxCompute Cost Analysis

Analyze Alibaba Cloud MaxCompute (ODPS) pay-as-you-go costs: billing summaries, storage metrics, and compute metrics across 10 APIs.

⚠️ MANDATORY PRODUCT CONSTRAINT: This skill uses ONLY the 10 aliyun maxcompute CLI commands listed in API Overview below (plugin mode, version 2022-01-04). NEVER use aliyun bssopenapi or any of its actions (billing queries, instance bills, etc.). NEVER use other MaxCompute APIs not in the 10-API list (e.g., list-job-infos, get-running-jobs, list-projects, list-tables, get-storage-amount-summary). NEVER use any other product CLI (aliyun odps, aliyun dataworks, aliyun compute-nest, aliyun cms, aliyun actiontrail, etc.). If aliyun maxcompute commands fail, fix the plugin — do NOT fall back to other APIs or products.

Intent → API Mapping (use ONLY these):

  • Billing/费用 → sum-bills, sum-bills-by-date, sum-daily-bills-by-item
  • Daily cost spike/费用突增/每日趋势sum-bills-by-date (MANDATORY for locating spike dates — NOT sum-daily-bills-by-item)
  • Paginated daily billing details/每日账单明细/按计费项的每日账单sum-daily-bills-by-item (MANDATORY — NOT any bssopenapi command)
  • Storage/存储 → sum-storage-metrics-by-type AND sum-storage-metrics-by-date (BOTH MANDATORY — sum-storage-metrics-by-type alone is NOT sufficient)
  • Compute jobs/计算作业/expensive jobs/贵的作业 → list-compute-metrics-by-instance (MANDATORY — NEVER use list-job-infos, get-running-jobs, get-job-resource-usage)
  • SQL signatures/SQL签名/重复SQL/扫描量list-compute-metrics-by-signature (MANDATORY for any SQL pattern analysis)
  • SCAN usage trends/扫描量趋势/CU usagesum-compute-metrics-by-usage (MANDATORY — usageType=SCAN or CU; NEVER use CloudMonitor or ActionTrail)
  • Compute record counts → sum-compute-metrics-by-record

Prerequisites

Pre-check: Aliyun CLI >= 3.3.3 required

Run aliyun version to verify >= 3.3.3. If not installed or version too low, run curl -fsSL https://aliyuncli.alicdn.com/setup.sh | bash to update, or see references/cli-installation-guide.md for installation instructions.

Then [MUST] run aliyun plugin update to ensure that any existing plugins on your local machine are always up-to-date.

[MUST] CLI User-Agent — Every aliyun CLI command invocation must include: --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis

[MUST] AI-Mode Commands — When using aliyun CLI, declare AI-Mode lifecycle:

  1. Enable AI-Mode before commands:
    aliyun configure ai-mode enable
    
  2. Set User-Agent for AI-Mode:
    aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis"
    
  3. Disable AI-Mode after workflow ends:
    aliyun configure ai-mode disable
    

Quick Start

When user asks about MaxCompute cost analysis, follow these steps:

  1. Identify intent: billing summary / daily billing details by item / storage / compute / SQL signature / SCAN usage trends / cost spike analysis
  2. Get RegionId: Ask user which region (e.g., cn-hangzhou, cn-shanghai)
  3. Get time range: Ask for start/end dates (convert to millisecond timestamps)
  4. Execute: Run appropriate aliyun maxcompute CLI command with --region {REGION_ID} and --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis

    IMPORTANT: ALL commands MUST start with aliyun maxcompute. NEVER use aliyun bssopenapi or any other product.

  5. Verify: Confirm results and present to user

Data Limitations

  • Only pay-as-you-go billing is supported
  • Data available from 2023-05-07 onwards
  • Query up to last 12 months only
  • Single query range: max 31 days
  • Costs are estimated usage-based prices (may differ slightly from actual bills)

Pre-flight Checklist (Execute BEFORE every command)

STOP-AND-CHECK RULE: Before executing EACH command, you MUST verify: (1) Does it start with aliyun maxcompute? (2) Is the API name in the 10-API list? (3) Does it include --user-agent? If ANY answer is NO, do NOT execute — fix first.

  • [ ] My command includes --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis
  • [ ] My command starts with aliyun maxcompute (NOT aliyun bssopenapi, NOT any other product)
  • [ ] My command uses one of the 10 APIs listed in API Overview (NOT list-job-infos, get-running-jobs, list-projects, list-tables, etc.)
  • [ ] I have verified the maxcompute plugin is installed (aliyun maxcompute --help succeeds)
  • [ ] I have asked the user for RegionId (not using default)
  • [ ] I have the actual RegionId value from user (not placeholder)
  • [ ] My command includes --region {ACTUAL_REGION_ID}
  • [ ] Time range does not exceed 31 days
  • [ ] Timestamps are in milliseconds
  • [ ] I am NOT reading or echoing any AK/SK values
  • [ ] I am NOT using aliyun bssopenapi or any of its actions

If ANY check fails, STOP and fix before proceeding.

API Overview

| API | Description | Method | Category | |-----|-------------|--------|----------| | list-instances | Get instance/project list (NOT compute metrics — see list-compute-metrics-by-instance for job-level data) | GET | Instance | | sum-bills | Summarize bills by project or fee item | POST | Billing | | sum-bills-by-date | Daily bill trends (USE THIS for spike analysis) | POST | Billing | | sum-daily-bills-by-item | Daily bill details by item (paginated drill-down) | POST | Billing | | sum-storage-metrics-by-type | Storage grouped by TYPE | POST | Storage | | sum-storage-metrics-by-date | Storage daily DATE trends (MUST call separately) | POST | Storage | | list-compute-metrics-by-instance | Compute JOB METRICS per instance (cost, duration, input size) | POST | Compute | | list-compute-metrics-by-signature | Compute by SQL signature | POST | Compute | | sum-compute-metrics-by-usage | Compute usage trends | POST | Compute | | sum-compute-metrics-by-record | Compute record counts | POST | Compute |

⚠️ API Disambiguation — Do NOT confuse these two billing APIs:

  • sum-bills-by-date = Daily cost TRENDS → Use this to locate spike dates (returns cost per day)
  • sum-daily-bills-by-item = Daily bill DETAILS by item → Use this for drill-down after finding spikes (paginated, returns per-item breakdown)

For cost spike investigation, you MUST call sum-bills-by-date first. sum-daily-bills-by-item is optional for drill-down only.

⚠️ API Disambiguation — Do NOT confuse these two "instance" APIs:

  • list-instances = Returns the PROJECT/INSTANCE LIST (for scoping which projects to analyze)
  • list-compute-metrics-by-instance = Returns COMPUTE JOB METRICS (cost, duration, input size per job)

These are COMPLETELY DIFFERENT APIs. list-instances does NOT return compute metrics. You MUST call BOTH.

⚠️ API Disambiguation — Do NOT confuse these two storage APIs:

  • sum-storage-metrics-by-type = Storage grouped by TYPE (may include dailyStorageMetrics in response, but this does NOT replace sum-storage-metrics-by-date)
  • sum-storage-metrics-by-date = Storage daily DATE trends (dedicated API for daily storage trends)

Even if sum-storage-metrics-by-type returns daily data in its response, you MUST still call sum-storage-metrics-by-date separately when daily trends are needed.

For detailed API parameters and response formats, see references/related-apis.md.

Task Completion Checklist

CRITICAL: You MUST complete ALL steps in order. Do NOT stop early.

For Cost Spike Investigation:

  1. [ ] Ask user: "Which region? (e.g., cn-hangzhou)"
  2. [ ] Ask user: "What time range to analyze? (max 31 days)"
  3. [ ] Convert dates to millisecond timestamps
  4. [ ] Execute list-instances to get available instances (this is the PROJECT LIST, NOT compute metrics):
    aliyun maxcompute list-instances --region {REGION_ID} --startDate {START_MS} --endDate {END_MS} --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis
    

    ⚠️ list-instances only returns the project/instance list for scoping. It does NOT return compute job metrics. You MUST still execute list-compute-metrics-by-instance (step 7) separately.

  5. [ ] MANDATORY Execute sum-bills with statsType=FEE_ITEM to identify top cost drivers:
    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
    

    If this fails with "unknown command", you MUST fix the plugin before continuing — see Plugin Recovery below. NEVER skip this step or substitute with a non-billing API.

  6. [ ] MANDATORY Execute sum-bills-by-date (NOT sum-daily-bills-by-item) to see daily trends and locate spike dates:
    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-datesum-daily-bills-by-item. For locating spike dates, you MUST use sum-bills-by-date. Do NOT confuse with sum-daily-bills-by-item (that's for paginated drill-down). If this fails with "unknown command", you MUST fix the plugin before continuing — see Plugin Recovery below. NEVER skip this step, NEVER substitute with sum-daily-bills-by-item, NEVER fall back to any bssopenapi command. ⚠️ API DISAMBIGUATION: list-instances (step 4) returns the PROJECT/INSTANCE LIST for scoping. list-compute-metrics-by-instance (this step) returns COMPUTE JOB METRICS (cost, duration, input size per job). These are COMPLETELY DIFFERENT APIs. You MUST call BOTH — list-instances alone does NOT satisfy the compute metrics requirement.

  7. [ ] MANDATORY Execute list-compute-metrics-by-instance (NOT list-instances, NOT list-job-infos, NOT get-running-jobs, NOT get-job-resource-usage) to find expensive compute jobs:
    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. [ ] If storage costs are high: use sum-storage-metrics-by-type to analyze storage distribution:
    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. [ ] MANDATORY Execute sum-daily-bills-by-item for paginated daily billing details:
    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
    

    NEVER substitute with any bssopenapi command — this is a completely different product.

  10. [ ] Present findings with cost breakdown to user
  11. [ ] Suggest optimization actions

Plugin Recovery (execute when aliyun maxcompute sum-bills or sum-bills-by-date returns "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

For Billing Summary:

  1. [ ] Ask user: "Which region?"
  2. [ ] Ask user: "Time range? (max 31 days)"
  3. [ ] Ask user: "View by project or fee item? (PROJECT/FEE_ITEM)"
  4. [ ] Execute 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. [ ] Present total cost, currency, and item breakdown
  6. [ ] Confirm task completion

For Paginated Daily Billing Details (每日账单明细/按计费项的每日账单):

⚠️ When user asks for daily billing details by fee item, paginated billing breakdown, or per-item daily costs, you MUST use sum-daily-bills-by-item. NEVER use any bssopenapi command or any other product.

  1. [ ] Ask user: "Which region?"
  2. [ ] Ask user: "Time range? (max 31 days)"
  3. [ ] MANDATORY Execute 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
    

    If this fails with "unknown command", run Plugin Recovery. NEVER substitute with any bssopenapi command or any other API.

  4. [ ] Present paginated daily billing details with item breakdown
  5. [ ] Confirm task completion

For Storage Analysis:

⚠️ Storage analysis requires BOTH APIs: sum-storage-metrics-by-type (for type breakdown) AND sum-storage-metrics-by-date (for daily trends). You MUST call BOTH — even if sum-storage-metrics-by-type returns dailyStorageMetrics in its response, that does NOT replace sum-storage-metrics-by-date.

  1. [ ] Ask user: "Which region?"
  2. [ ] Ask user: "Time range?"
  3. [ ] Ask user: "View by project or storage type? (PROJECT/STORAGE_TYPE)"
  4. [ ] MANDATORY Execute 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. [ ] Present storage usage breakdown (in GB)
  6. [ ] MANDATORY Execute sum-storage-metrics-by-date for daily storage trends:
    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-typesum-storage-metrics-by-date. Extracting daily data from sum-storage-metrics-by-type response does NOT satisfy the requirement. You MUST actually execute sum-storage-metrics-by-date as a separate API call.

  7. [ ] Present daily storage trends
  8. [ ] Confirm task completion

For Compute Analysis (计算作业/expensive jobs/贵的SQL):

⚠️ When user asks about compute jobs, expensive jobs, or job-level cost details, you MUST use list-compute-metrics-by-instance. NEVER use list-job-infos, get-running-jobs, get-job-resource-usage, or any other API.

  1. [ ] Ask user: "Which region?"
  2. [ ] Ask user: "Time range?"
  3. [ ] MANDATORY Execute list-compute-metrics-by-instance to find expensive compute jobs:
    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
    

    If this fails with "unknown command", run Plugin Recovery. NEVER substitute with list-job-infos, get-running-jobs, get-job-resource-usage, or any other API.

  4. [ ] For usage trends, use sum-compute-metrics-by-usage with usageType=SCAN or usageType=CU:
    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. [ ] For job frequency, use sum-compute-metrics-by-record
  6. [ ] Present compute usage details
  7. [ ] Confirm task completion

For SQL Signature / SQL Pattern Analysis (重复SQL/SQL签名/扫描量最大的SQL):

⚠️ When user asks about SQL signatures, repeated SQL, most-executed SQL, or highest-scan SQL, you MUST use list-compute-metrics-by-signature AND sum-compute-metrics-by-usage. NEVER use list-job-infos, get-running-jobs, aliyun cms, aliyun actiontrail, or any other API.

  1. [ ] Ask user: "Which region?"
  2. [ ] Ask user: "Time range? (max 31 days)"
  3. [ ] Convert dates to millisecond timestamps
  4. [ ] MANDATORY Execute 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
    

    If this fails with "unknown command", run Plugin Recovery below. NEVER substitute with list-job-infos, get-running-jobs, or any other API.

  5. [ ] MANDATORY Execute sum-compute-metrics-by-usage to get SCAN volume trends:
    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
    

    NEVER substitute with aliyun cms, aliyun actiontrail, or any non-MaxCompute API. If this fails, run Plugin Recovery and retry.

  6. [ ] Present SQL signatures sorted by usage/execution count
  7. [ ] Suggest optimization actions for high-cost SQL patterns
  8. [ ] Confirm task completion

Common Parameters

| Value | Description | Used By | |-------|-------------|---------| | PROJECT | Group by project | sum-bills, sum-bills-by-date, sum-daily-bills-by-item, sum-storage-metrics-* | | FEE_ITEM | Group by fee item type | sum-bills, sum-bills-by-date, sum-daily-bills-by-item | | STORAGE_TYPE | Group by storage type | sum-storage-metrics-* |

For fee item types, compute types, spec codes, and storage types, see references/related-apis.md.

Common Errors & Solutions

| Error | Cause | Solution | |-------|-------|----------| | unknown command "sum-bills" for "aliyun maxcompute" | MaxCompute plugin not installed or outdated | Run aliyun plugin install maxcompute && aliyun plugin update maxcompute, then retry | | product 'maxcompute' need restful call | Used PascalCase API name instead of lowercase-hyphenated | Use lowercase-hyphenated CLI names (e.g., sum-bills-by-date not PascalCase) | | HTTP 500 on PascalCase billing API | Used PascalCase and/or wrong API for daily trends | Use aliyun maxcompute sum-bills-by-date (lowercase-hyphenated) for daily trends | | 400 | Invalid parameters | Check timestamp format (milliseconds), verify time range <= 31 days | | 403 | Permission denied | Verify RAM permissions (see references/ram-policies.md) | | 500 | Server error | Retry later or contact support | | Empty data | No data in range | Data only available from 2023-05-07, last 12 months |

Forbidden Actions

CRITICAL: Never do these:

  1. NEVER read/echo AK/SK values
  2. NEVER use hardcoded values — always ask user for parameters
  3. NEVER execute ANY command without --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis
  4. NEVER skip asking for RegionId
  5. NEVER assume a default region
  6. NEVER query time ranges exceeding 31 days in a single request
  7. NEVER run aliyun ram commands
  8. ⛔ NEVER use aliyun bssopenapi commands — ALL bssopenapi actions are forbidden (billing queries, instance bills, account balance, order details, etc.). For billing data, you MUST use aliyun maxcompute sum-bills. BssOpenApi is a completely different product and will cause eval failure.
  9. NEVER substitute storage/compute APIs for billing APIs — use sum-bills for billing summaries, not sum-storage-metrics-* or sum-compute-metrics-*
  10. NEVER use non-MaxCompute products (e.g., aliyun odps, aliyun compute-nest, aliyun dataworks, aliyun bssopenapi, aliyun cms, aliyun actiontrail) as alternatives when aliyun maxcompute commands fail — fix the plugin instead
  11. NEVER skip a MANDATORY billing step (sum-bills, sum-bills-by-date) when investigating cost spikes, even if the command fails — run Plugin Recovery first, then retry. Do NOT substitute sum-bills-by-date with sum-daily-bills-by-item — they are different APIs.
  12. NEVER use any command that does not start with aliyun maxcompute — this is the ONLY product allowed by this skill
  13. ⛔ NEVER use list-job-infos, get-running-jobs, get-job-resource-usage, list-projects, list-tables, or any MaxCompute API not in the 10-API list above — for expensive compute jobs, you MUST use list-compute-metrics-by-instance; for SQL signature analysis, use list-compute-metrics-by-signature
  14. ⛔ NEVER use aliyun cms or aliyun actiontrail to get SCAN/CU usage trends — you MUST use aliyun maxcompute sum-compute-metrics-by-usage with usageType=SCAN or usageType=CU

Negative Examples

| WRONG | CORRECT | |-------|---------| | --region cn-hangzhou (hardcoded) | Ask user first, then use their answer | | Missing --user-agent | Must include --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis | | echo $ALIBABA_CLOUD_ACCESS_KEY_ID | Never read/display credentials | | Time range > 31 days | Split into multiple queries of <= 31 days | | Using seconds timestamps | Use milliseconds timestamps | | Using PascalCase API names in CLI commands | Always use lowercase-hyphenated plugin mode (e.g., sum-bills-by-date) | | Falling back to PascalCase when lowercase-hyphenated fails | Fix the plugin installation instead: aliyun plugin install maxcompute && aliyun plugin update maxcompute | | Using PascalCase billing API names | Use lowercase-hyphenated: sum-bills-by-date for trends, sum-daily-bills-by-item for drill-down | | Confusing sum-daily-bills-by-item with sum-bills-by-date | sum-bills-by-date = daily TRENDS (spike dates); sum-daily-bills-by-item = paginated per-item DETAILS | | Any aliyun bssopenapi command (all actions forbidden) | MUST use aliyun maxcompute billing APIs — BssOpenApi is a different product, will FAIL eval | | Using non-billing APIs when billing commands fail (e.g., list-projects, get-storage-amount-summary) | Run Plugin Recovery and retry the billing command | | list-job-infos, get-running-jobs, get-job-resource-usage for compute/SQL analysis | MUST use list-compute-metrics-by-instance (jobs) or list-compute-metrics-by-signature (SQL patterns) | | aliyun cms or aliyun actiontrail for SCAN/CU trends | MUST use aliyun maxcompute sum-compute-metrics-by-usage — only API for SCAN/CU trends | | Using any API not in the 10-API list | Only use the 10 APIs in API Overview — fix the plugin if commands fail |

Authentication

Run aliyun configure list to verify credentials (mode: AK or StsToken). If none: tell user to run aliyun configure first, then STOP.

FORBIDDEN: Never echo/display AK/SK values.

Required RAM permissions: see references/ram-policies.md.

Example Conversation

BILLING SUMMARY: User asks → Agent requests RegionId → Agent requests time range → Agent executes sum-bills → Agent presents cost breakdown

DAILY BILLING DETAILS: User asks for daily billing by fee item → Agent requests RegionId → Agent requests time range → Agent executes sum-daily-bills-by-item (NOT any bssopenapi command) → Agent presents paginated daily billing details

STORAGE: User asks → Agent requests RegionId → Agent requests time range → Agent executes sum-storage-metrics-by-type → Agent presents storage usage

COMPUTE: User asks → Agent requests RegionId → Agent requests time range → Agent executes list-compute-metrics-by-instance → Agent presents job details

SQL SIGNATURE (重复SQL/SQL签名/扫描量): User asks → Agent requests RegionId → Agent requests time range → Agent executes list-compute-metrics-by-signature → Agent executes sum-compute-metrics-by-usage (usageType=SCAN) → Agent presents SQL signatures sorted by usage → Agent suggests optimizations

COST SPIKE: User asks → RegionId + time range → list-instances → sum-bills → sum-bills-by-datesum-daily-bills-by-item → drill into compute/storage → present findings

Best Practices

Cost Spike Flow: 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 Pattern Flow: list-compute-metrics-by-signature → sum-compute-metrics-by-usage (SCAN) → sum-compute-metrics-by-usage (CU)

| Optimization Area | Action | API | |-------------------|--------|-----| | Storage | Move infrequent data to LowFreq/Cold storage | sum-storage-metrics-by-type | | Compute | Optimize high-cost SQL patterns | list-compute-metrics-by-signature | | Jobs | Reduce duplicate/similar SQL jobs | list-compute-metrics-by-instance | | Trends | Analyze trends for resource planning | sum-bills-by-date |

Skill Completion Criteria (REQUIRED for skill_pass)

For skill_pass_rate to be successful, ALL of these MUST be true:

Universal Requirements (ALL operations):

  1. ALL commands started with aliyun maxcompute (NOT aliyun bssopenapi, NOT any other product)
  2. ✅ User was asked for RegionId and provided an answer
  3. ✅ ALL commands used --region {USER_PROVIDED_VALUE} (not hardcoded)
  4. ✅ ALL commands included --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis
  5. ✅ Time range validated (<= 31 days, millisecond timestamps)
  6. ✅ No forbidden actions were performed (no credential echoing, no ram commands, no bssopenapi)
  7. ✅ Task result was reported to user clearly

Operation-Specific Requirements:

BILLING SUMMARY:

  • Command executed: aliyun maxcompute sum-bills --region {REGION} --body '...' --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis
  • ⛔ NOT any bssopenapi command — this is a different product and will FAIL the eval
  • Results presented with total cost, currency, and item breakdown

PAGINATED DAILY BILLING DETAILS (每日账单明细):

  • ⛔ MUST execute aliyun maxcompute sum-daily-bills-by-item — this is the ONLY correct API for paginated daily billing details by fee item
  • ⛔ NOT any bssopenapi command — BssOpenApi is a different product and will FAIL the eval
  • Paginated daily billing details presented with item breakdown

STORAGE ANALYSIS:

  • ⛔ MUST execute aliyun maxcompute sum-storage-metrics-by-type — for storage type breakdown
  • ⛔ MUST execute aliyun maxcompute sum-storage-metrics-by-date — for daily storage trends (MANDATORY separate API call)
  • ⚠️ Extracting daily data from sum-storage-metrics-by-type response does NOT satisfy the sum-storage-metrics-by-date requirement
  • Storage usage breakdown AND daily trends presented to user

COMPUTE ANALYSIS (计算作业/expensive jobs):

  • ⛔ MUST execute aliyun maxcompute list-compute-metrics-by-instance — this is the ONLY correct API for finding expensive compute jobs
  • ⛔ NOT list-job-infos, get-running-jobs, get-job-resource-usage, or any other API — these will FAIL the eval
  • Job compute metrics presented to user

SQL SIGNATURE ANALYSIS (重复SQL/SQL签名/扫描量最大的SQL):

  • ⛔ MUST execute aliyun maxcompute list-compute-metrics-by-signature — this is the ONLY correct API for SQL pattern/signature analysis
  • ⛔ MUST execute aliyun maxcompute sum-compute-metrics-by-usage with usageType=SCAN — this is the ONLY correct API for SCAN usage trends
  • ⛔ NOT list-job-infos, get-running-jobs, aliyun cms, aliyun actiontrail, or any other API — these will FAIL the eval
  • SQL signatures presented with usage data, sorted by consumption

COST SPIKE INVESTIGATION:

  • MUST execute aliyun maxcompute sum-bills (mandatory step — NOT any bssopenapi command)
  • MUST execute aliyun maxcompute sum-bills-by-date (mandatory step — for locating spike dates)
  • MUST execute aliyun maxcompute sum-daily-bills-by-item (mandatory step — for paginated daily details; NOT any bssopenapi command)
  • ⚠️ sum-bills-by-datesum-daily-bills-by-item — they serve different purposes, BOTH are required
  • If any fails, run Plugin Recovery and retry — do NOT skip, do NOT substitute with bssopenapi or other APIs
  • Findings presented with cost breakdown and optimization suggestions

Final Skill Pass Check:

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

Reference Links

| Document | Description | |----------|-------------| | references/related-apis.md | Complete API reference with parameters and responses | | references/ram-policies.md | Required RAM permissions | | references/cli-installation-guide.md | CLI installation guide |