convex-cost について
convex-costはConvexデプロイの読み取りデータを分析し、使用量を押し上げる関数とコストの増加傾向を特定します。アプリの支出を確認するチーム向けで、低コストなクエリ変更を提案し、課金を伴う操作の前に明示的な同意を求めます。
主な機能
- 01デプロイの使用量データの取得
- 02読み取り量と呼び出し数による関数の順位付け
- 03クエリの増加傾向の予測
- 04低コストなクエリ変更の提案
- 05課金操作前の確認
活用シーン
- 01使用量を押し上げる読み取りの多い関数の特定
- 02テーブル増加による影響の見積もり
- 03高頻度のクエリと高コストのクエリの比較
- 04課金操作の実行前の確認
MCP 対応
公式MCPを使ってデプロイのインサイト、テーブル行数、関数仕様を読み取ります。検出事項から、変更を行うconvex-expertまたはconvex-advisorを案内できます。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ convex/ agent-skills --skill convex-costインストール後、Claude Code で/convex-costを入力して読み込まれたか確認します。
詳細
このアプリにかかるコストを予測する
コストの予想外の増加は、いくつかの関数が、誰も気づかなかったほど大量のデータを読み込むことから生じます。これは、convex-advisor がパフォーマンス上の問題として指摘する、読み取り負荷の高いパターンを金銭的な観点から見たものです。この機能により、支出が把握しやすくなります。デプロイメント自体のバイト数/読み取りドキュメント数の証拠を読み取り、それを引き起こしている関数に割り当て、トラフィックに応じた増加を予測し、最も安価な修正方法を示します。また、有料アクションに対する Supabase の構造的な同意ルールである、コスト確認の徹底も適用します。従量課金のアクションを実行する前に、料金を明示し、明確な承認を得ます。
ワークフロー
- ガード:deploy-guard — コストの読み取りは dev/prod に対する読み取り専用操作です(insights は cloud+user-auth のみで、プレビューには対応していません)。デプロイメントを明示します。
- 支出の証拠を公式 MCP 経由で収集します。バイト数/読み取りドキュメント数のイベント(直接的なコスト指標です。Convex では関数呼び出しと帯域幅に対して課金されます)には
insights、行数にはtables(テーブルのサイズがスキャンコストの上限になります)、対象範囲にはfunctionSpecを使います。まだ使用状況やトラフィックがない場合は、その旨を伝え、クエリの形状から推定します(たとえば、今のトラフィックがゼロでも、増加が見込まれるテーブルに対する.collect()は将来のコストになります)。 - 割り当て:関数ごとに、1 回あたりの読み取りバイト数/ドキュメント数と、観測された(またはユーザーに確認した)呼び出し回数を掛け合わせて順位付けします。コストを左右するのは積であり、どちらか一方だけではありません。1 回あたりは安価でも頻繁に呼び出される関数が、まれにしか呼び出されない高価な関数を上回ることがあります。両方の要素を示します。
- 予測:主な要因がどのように増加するかを説明します。テーブル全体を取得する
.collect()はテーブルに比例して線形に増加します(データが蓄積するほどコストも累積します)。インデックスを使う.take(n)は一定のままです。偽りの精度を装った金額ではなく、コスト曲線の形をユーザーに示します(「この処理は呼び出しごとにテーブルサイズの O(table size) です。1,000 行なら問題ありませんが、100 万行では請求額に響きます」)。 - 各要因について最も安価な修正方法を示します。スキャンの代わりにインデックスと
.withIndexを使う、.collectの代わりに.paginate/.takeを使う、件数には集計コンポーネントを使う、頻繁に読み取るデータをキャッシュするなどです。そして、コストクラスの検出結果をバスに出力し(証拠:insight イベントと予測される増加)、実際の変更を行う convex-expert/convex-advisor を参照します。 - 有料アクションにはコスト確認を適用します。フローに従量課金の操作(ドメインの購入、クラウドのプロビジョニング、プランの変更など)が含まれる場合は、実行前に料金と請求頻度を明示し、明確な承認を得ます。副作用として有料アクションが発生することは決して認めません(コスト確認ゲート)。
- 報告:現在のコスト要因を順位順に示し、それぞれの証拠、増加の形、修正方法を提示します。さらに、「支出の大半は messages:list が呼び出しごとにテーブル全体を読み取るためです。インデックスを付ければ約 100 分の 1 に減ります」のように、要点を簡潔に伝えます。精度は誠実に保ちます。Convex の料金は変更される可能性があり、プランによって異なります。絶対額を捏造せず、相対的な目安やコストの形を示し、具体的な金額は料金ページを参照します。
ルール
- コスト = 1 回あたりの読み取りデータ量 × 呼び出し回数です。常に両方の要素を示します。頻繁に呼び出される安価な関数が、まれにしか呼び出されない高価な関数よりもコストがかかることがあります。
- 支出については、デプロイメント自体の insights/読み取りバイト数の証拠を読み取ります。まだトラフィックがない場合は、クエリの形状からコストを見積もります(増加するテーブルのスキャンは将来のコストです)。
- 偽りの精度を装った金額ではなく、増加曲線を示します。O(table) のスキャンはデータの蓄積とともにコストが累積し、インデックスを使ったアクセスでは一定に保たれます。具体的な金額は料金ページを参照します。
- すべてのコスト要因について、最も安価な修正方法を示し、その修正を行うツール(convex-expert/advisor)を参照するコストクラスの検出結果をバスに出力します。
- 従量課金/有料アクションには、必ずコスト確認を適用します。料金と請求頻度を明示し、実行前に明確な承認を得ます。副作用として実行することは決してありません。
- dev/prod に対する読み取り専用操作です(deploy-guard)。insights は cloud+user-auth のみです。コスト分析では convex-advisor の証拠を活用しますが、レイテンシではなく金銭の観点から説明します。
コメント
Markdown 対応