mcpField
A
alibabacloud-odps-cost-analysis

alibabacloud-odps-cost-analysis

github.com/aliyun云与 DevOps281191 次安装1 天前更新
代码仓库

关于 alibabacloud-odps-cost-analysis

该 Skill 使用 Alibaba Cloud CLI 分析 MaxCompute(ODPS)的按量付费成本,适用于需要查看账单、存储和计算指标的用户。它限定使用指定的 10 个 MaxCompute API,并涵盖费用趋势、SQL 签名和计算作业分析。

主要功能

  1. 01汇总账单及每日费用趋势
  2. 02按计费项查看每日账单明细
  3. 03分析存储类型和每日变化
  4. 04查看计算作业成本、时长与输入量
  5. 05按 SQL 签名和用量分析计算指标

适用场景

  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 成本分析

分析阿里云 MaxCompute(ODPS)的按量付费成本:跨 10 个 API 查看账单汇总、存储指标和计算指标。

⚠️ 强制产品限制: 此技能仅使用下方 API 概览中列出的 10 个 aliyun maxcompute CLI 命令(插件模式,版本 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 映射(仅使用以下 API):

  • 账单/费用 → 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 个月的数据
  • 单次查询范围最长为 31 天
  • 成本是基于预估用量的价格(可能与实际账单略有差异)

执行前检查清单(每条命令执行前)

停止并检查规则: 执行每条命令前,必须确认:(1) 是否以 aliyun maxcompute 开头?(2) API 名称是否在 10 个 API 的列表中?(3) 是否包含 --user-agent?如果任一答案为否,请勿执行,先修正。

  • 我的命令包含 --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis
  • 我的命令以 aliyun maxcompute 开头(不是 aliyun bssopenapi,也不是任何其他产品)
  • 我的命令使用 API 概览中列出的 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 或其任何操作

如果任一项未通过,请停止并先修正。

API 概览

API描述方法类别
list-instances获取实例/项目列表(不是计算指标——作业级数据请参见 list-compute-metrics-by-instance)GET实例
sum-bills按项目或费用项汇总账单POST账单
sum-bills-by-date每日账单趋势(分析峰值时使用此 API)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 区分说明——不要混淆这两个账单 API:

  • sum-bills-by-date = 每日费用趋势 → 用于定位费用峰值日期(返回每日费用)
  • sum-daily-bills-by-item = 按费用项查看每日账单详情 → 用于发现峰值后下钻分析(支持分页,返回各费用项明细)

调查费用峰值时,必须先调用 sum-bills-by-date。sum-daily-bills-by-item 仅用于可选的下钻分析。

⚠️ API 区分说明——不要混淆这两个“实例”API:

  • list-instances = 返回项目/实例列表(用于确定要分析的项目范围)
  • list-compute-metrics-by-instance = 返回计算作业指标(每个作业的费用、时长、输入大小)

这两个 API 完全不同。list-instances 不会返回计算指标。必须同时调用两者。

⚠️ API 区分说明——不要混淆这两个存储 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. 必须执行 sum-bills,并设置 statsType=FEE_ITEM,以识别主要成本来源:
    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-bills-by-date(而不是 sum-daily-bills-by-item),查看每日趋势并定位激增日期:
    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 区分说明:list-instances(步骤 4)返回用于界定范围的项目/实例列表。list-compute-metrics-by-instance(此步骤)返回计算作业指标(每个作业的成本、时长、输入大小)。这是完全不同的 API。你必须同时调用二者——仅调用 list-instances 并不能满足计算指标要求。

  7. 必须执行 list-compute-metrics-by-instance(而不是 list-instances、list-job-infos、get-running-jobs 或 get-job-resource-usage),以查找成本高昂的计算作业:
    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. 确认任务已完成
存储分析:

⚠️ 存储分析需要同时调用两个 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 响应中提取每日数据并不满足要求。你必须实际执行 sum-storage-metrics-by-date,将其作为单独的 API 调用。

  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. 如需查看用量趋势,使用 sum-compute-metrics-by-usage,并设置 usageType=SCAN 或 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. 如需查看作业频率,使用 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. 必须执行 sum-compute-metrics-by-usage,以获取 SCAN 量趋势:
    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 名称(例如,使用 sum-bills-by-date,而不是 PascalCase)
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 个月的数据

禁止的操作

重要:绝不要执行以下操作:

  1. 绝不要读取/回显 AK/SK 值
  2. 绝不要使用硬编码值——务必向用户询问参数
  3. 绝不要执行任何未带有 --user-agent AlibabaCloud-Agent-Skills/alibabacloud-odps-cost-analysis 的命令
  4. 绝不要跳过询问 RegionId
  5. 绝不要假定默认区域
  6. 绝不要在单个请求中查询超过 31 天的时间范围
  7. 绝不要运行 aliyun ram 命令
  8. ⛔ 绝不要使用 aliyun bssopenapi 命令——所有 bssopenapi 操作均被禁止(账单查询、实例账单、账户余额、订单详情等)。查询账单数据时,必须使用 aliyun maxcompute sum-bills。BssOpenApi 是完全不同的产品,使用它会导致评估失败。
  9. 绝不要用存储/计算 API 替代账单 API——账单汇总应使用 sum-bills,而不是 sum-storage-metrics-* 或 sum-compute-metrics-*
  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-daily-bills-by-item 替代 sum-bills-by-date——它们是不同的 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. ⛔ 绝不要使用 aliyun cms 或 aliyun actiontrail 获取 SCAN/CU 使用量趋势——必须使用 aliyun maxcompute sum-compute-metrics-by-usage,并将 usageType 设为 SCAN 或 CU

错误示例

错误正确
--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-datesum-bills-by-date = 每日趋势(费用激增日期);sum-daily-bills-by-item = 分页的逐项明细
任何 aliyun bssopenapi 命令(禁止所有操作)必须使用 aliyun maxcompute 账单 API — BssOpenApi 是不同的产品,评估时会失败
账单命令失败时改用非账单 API(例如,list-projects、get-storage-amount-summary)运行插件恢复流程并重试账单命令
使用 list-job-infos、get-running-jobs、get-job-resource-usage 进行计算/SQL 分析必须使用 list-compute-metrics-by-instance(作业)或 list-compute-metrics-by-signature(SQL 模式)
使用 aliyun cms 或 aliyun actiontrail 查询 SCAN/CU 趋势必须使用 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。

对话示例

账单摘要: 用户提出请求 → Agent 询问 RegionId → Agent 询问时间范围 → Agent 执行 sum-bills → Agent 展示费用明细

每日账单明细: 用户要求按费用项查看每日账单 → Agent 询问 RegionId → Agent 询问时间范围 → Agent 执行 sum-daily-bills-by-item(不是任何 bssopenapi 命令)→ Agent 展示分页的每日账单明细

存储: 用户提出请求 → Agent 询问 RegionId → Agent 询问时间范围 → Agent 执行 sum-storage-metrics-by-type → Agent 展示存储用量

计算: 用户提出请求 → Agent 询问 RegionId → Agent 询问时间范围 → Agent 执行 list-compute-metrics-by-instance → Agent 展示作业详情

SQL 签名(重复 SQL/SQL 签名/扫描量): 用户提出请求 → Agent 询问 RegionId → Agent 询问时间范围 → Agent 执行 list-compute-metrics-by-signature → Agent 执行 sum-compute-metrics-by-usage(usageType=SCAN)→ Agent 按用量排序并展示 SQL 签名 → Agent 提出优化建议

费用激增: 用户提出请求 → 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):

  • ⛔ 必须执行 aliyun maxcompute list-compute-metrics-by-signature——这是分析 SQL 模式/签名的唯一正确 API
  • ⛔ 必须执行 aliyun maxcompute sum-compute-metrics-by-usage,并设置 usageType=SCAN——这是分析 SCAN 用量趋势的唯一正确 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——两者用途不同,均为必需
  • 如果任一步骤失败,请运行 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 安装指南

评论

支持 Markdown