SuperAPI AI 工具集

convex-cost

部署与运维

查看项目

更新于 10-16 10:07

技能介绍

用途

convex-cost 用于预览 Convex 应用的成本。成本意外通常来自少数几个函数读取了远超预期的数据量——这与 convex-advisor 为性能标记的读密集模式相同,只是换成了花费视角。该技能让支出变得可读:它读取部署自身的 bytes-read / documents-read 证据,将其归因到驱动这些读取的函数,预测其随流量增长的方式,并指出最便宜的修复方案。

主要能力

  • 成本归因:按「每次调用的 bytes/documents 读取量 × 观察到的(或被询问的)调用量」对函数排名。乘积才是成本驱动因素,而非其中任一单项;单次便宜但被持续调用的函数可能超过昂贵但罕见的函数,两者都会被展示。
  • 增长曲线预测:说明主要驱动因素如何扩展——全表 .collect() 随表大小线性增长(成本随数据积累而叠加);带索引的 .take(n) 保持平稳。给用户曲线的形状(如「每次调用是 O(表大小)——1k 行时没问题,1M 行时就是账单」),而不给虚假精确的美元数字。
  • 最便宜修复方案:为每个驱动因素命名最便宜的修复——用索引 + .withIndex 替代扫描、用 .paginate/.take 替代 .collect、计数用 aggregate 组件、缓存热读取——并将其作为 cost-class 发现发布到总线(证据:insight 事件 + 预测增长),指向 convex-expert/convex-advisor 执行实际改动。
  • 计费确认:若流程包含任何计费内容(域名购买、云资源开通、套餐变更),在继续前明确说明价格与周期性并获得明确同意——绝不让计费操作作为副作用发生。
  • 汇报:列出当前排序后的成本驱动因素,每项附带证据、增长形态与修复方案,并给出一句直白的结论(例如「你的支出主要被 messages:list 每次调用读取整表占据;加索引后预计下降约 100 倍」)。

使用方式

  1. GUARD:deploy-guard——成本读取对 dev/prod 只读(insights 仅限云端加用户认证,不含 previews)。先声明部署环境。
  2. GATHER:通过官方 MCP 收集支出证据——insights 获取 bytes-read / documents-read 事件(直接成本信号,Convex 按函数调用 + 带宽计费)、tables 获取行数(表大小限定扫描成本)、functionSpec 获取接口面。若尚无使用/流量,说明并改为从查询形状估算(对预期增长的表做 .collect() 即便当前零流量也是未来成本)。
  3. ATTRIBUTE:按每次调用的 bytes/documents 读取 × 调用量对函数排名。
  4. PROJECT:说明头部驱动因素如何扩展,给出曲线形状而非美元数字。
  5. NAME THE CHEAPEST FIX:为每个驱动因素给出最便宜修复并发布 cost-class 发现。
  6. CONFIRM-COST:对计费操作先说明价格与周期性并获得明确同意。
  7. REPORT:汇报排序后的成本驱动因素及证据、增长形态、修复方案与结论。

适用场景

适用于需要了解 Convex 应用支出构成、识别读密集函数、评估随数据增长的成本风险并寻找低成本优化方向的场景。

限制

  • 对 dev/prod 只读;insights 仅限云端加用户认证环境,不适用于 previews。
  • 无流量时无法提供实测支出,只能基于查询形状估算。
  • Convex 定价会变化且依赖套餐,技能只给相对/形状指引,绝对数字需引用定价页面,不编造美元总额。
  • 实际改动需交由 convex-expert/convex-advisor 执行。