成本分析
在成本分析中,你可以按环境、团队、成员、调用方 API Key、模型、目标模型、日期和成本归属标签查看组织的用量和支出。先筛选用量,再按要比较的维度分组。
如果组织需要按部门、子公司、项目或成本中心等自定义维度分析,可以配置成本归属标签。
前提条件
开始前,请确认以下条件。
- 你有读取组织用量的权限。
- 至少有一个环境已记录网关用量。
- 如果要按当前标签分组或筛选,组织需已声明该标签键,并且已记录的用量中含有该键。只要某个时间范围内的用量仍含有已删除的标签键,该范围内就仍可使用该键。参见成本归属标签。
满足上述前提条件后,先缩小要分析的用量范围。
筛选和分组查看用量
组织级的 成本分析 页面一次按一个维度对组织内所有环境的用量分组。在 筛选 中选定要分析的用量,在 统计 中查看分组结果。例如,先筛选 business_group=cloud,再按 department 标签分组,即可查看该业务组的支出如何分布在各部门。
在 筛选 中设置分析范围。
- 在 时间范围 中选择最近 24 小时、7 天、30 天或自定义范围。页面按整小时读取,开始时间向下取整,结束时间向上取整。
- 在 筛选条件 中选择环境、团队、成员、模型,或添加任意多个
key=value标签条件。不同标签键的条件必须同时满足,同一键的多个值满足其一即可。从 API Key 行下钻时,页面会将该 Key 加为筛选条件。生效的条件显示在控件下方,可用 清除筛选 一次移除。
在 统计 中查看筛选结果。
- 在 分组方式 中选择标签键、团队、成员、API Key、模型、环境、日期或目标模型。参见对比模型的目标模型。按日期分组时显示按天的柱状图,其他分组显示横向条形图。
- 在 排序依据 中选择成本、总 Token、输入 Token、输出 Token、请求数或成功请求数。分组按所选指标降序排列。
- 使用 刷新 重新加载数据、标签键以及团队、成员和环境的名称。
选择一行即可下钻。 页面会将该分组加为筛选条件,并选用尚未被条件限定的下一个分组维度。通过面包屑可以返回先前的步骤。
按团队或标签键分组时,预算(本期) 列显示相应团队预算或标签预算的本期支出和额度。按 API Key 分组时,选择 Key 所在的行可以打开其所属环境的请求日志,页面已按该 Key 筛选。
控制面升级后,此页会显示与用量视图相同的回填提示。数据在回填完成前可能不完整。成本以组织币种显示。
解读特殊分组和标签
即使资源或标签的当前信息发生变化,成本分析仍保留历史用量。可按下表解读显示结果。
| 标签或行 | 含义 | 可以执行的操作 |
|---|---|---|
| 未设置 | 用量在所选分组维度上没有值。 | 查看该行的整体用量。此行不支持下钻。 |
| 日期行 | 某个 UTC 日期内的用量。 | 更改时间范围或分组方式。日期行不支持下钻。 |
| 其他 N 个分组 | 排在前 50 名之后的分组合计。列出的分组与此行相加等于总计。 | 缩小筛选范围,让需要查看的分组进入前 50 名。 |
| 已删除 | 标签键或资源已不存在,但所选用量仍引用它。资源显示其 ID 的前 8 个字符。 | 选择徽标查看并复制完整资源 ID。已删除的标签键没有取值建议,可以手动输入值或从分组行下钻。 |
| 已移出 | 成员已不属于该组织。 | 选择徽标查看并复制成员 ID。 |
| 名称不可用 | 控制台未能加载足够的信息来确认资源的当前状态。 | 重新加载此视图。出现该标签时,资源可能仍然存在。 |
标签控件会列出所有已声明的标签键,以及所选用量中仍存在的已删除标签键。取值建议来自当前调用方 API Key、团队、成员和最近的用量。如果组织尚未声明任何标签键,控件会提供标签键设置的入口。声明标签键后,才可以按标签筛选。
对比模型的目标模型
模型行按调用方指定的模型名称分组。要查看模型组的流量在各目标模型之间的分布,请在模型行选择 查看目标模型,或在 分组方式 中选择 目标模型。
每个目标模型的行显示其 Provider Key、计费金额 和 平台成本。平台成本按目标模型自身的价格计算,不含模型组价格和低峰折扣。金额旁会显示没有目标模型价格的尝试次数。
请求计数按各目标模型上的尝试次数计算,包含失败的尝试和回退。因此,各目标模型的计数相加可能超过该模型的请求数。
直 接调用某个模型的用量记在该模型自己的行,包括由网关缓存返回的响应。调用模型组时,如果请求没有到达任何目标模型,其用量归入 未设置。例如,响应直接从缓存返回,或请求在选择目标模型前失败。
目标模型行和平台成本只覆盖引入该功能的控制面版本之后记录的用量,因此较早的时间范围内,目标模型的汇总值可能低于模型行。按团队、成员、API Key 或标签筛选时,查看目标模型 和目标模型分组均不可用。
例如,假设 chat 模型组会将请求分发给多个目标。以下查询可以比较每个目标处理的用量、计费金额和按其自身价格计算的成本:
GET /usage_analysis?group_by=target_model&model=chat
此端点所需的权限与其他用量读取操作相同。对比目标模型时,如果同时按团队、成员、调用方 API Key 或标签筛选,端点会返回 400。每个分组包含以下字段。
| 字段 | 含义 |
|---|---|
key | 目标模型 ID。调用模型组时,如果没有到达任何目标模型,例如命中缓存,则为 null。 |
name | 目标模型的当前名称。模型已不存在时为 null。 |
environment_id | 目标模型所属的环境。模型已不存在时不返回此字段。 |
provider、provider_key_name | 目标模型的服务提供方密钥所对应的厂商 ID 和显示名称。模型或密钥已不存在时为 null。 |
cost_usd | 以组织币种表示的计费金额。 |
prompt_tokens、completion_tokens、total_tokens | 这些尝试的 Token 数量。 |
request_count | 在该目标模型上的尝试次数,包含每次失败的尝试和回退。 |
success_count | 在该目标模型上成功的尝试次数。 |
upstream_cost | 平台成本合计。所有尝试均未定价时为 null。 |
unpriced_request_count | 在该目标模型上 upstream_cost 为 null 的尝试次数。未到达任何目标模型的尝试不计入。 |
remainder 和 total 也包含 upstream_cost 和 unpriced_request_count。
如果要通过 API 获取控制台中的数据,可调用 GET /usage_analysis。调用 GET /usage_analysis/tag_keys 可以获取指定时间范围内用量所含的标签键,包括已删除的键。参见 AISIX Enterprise / Cloud Admin API 参考。
下一步
如果组织需要自定义成本分摊维度,请配置成本归属标签。如果成本缺失或与服务提供方的计费依据不符,请查看模型定价。要了解组织总用量和上报行为,请参阅用量上报。