cost-projection について
cost-projectionは、セッション記録と指定した測定期間をもとに将来の支出を予測するコスト分析スキルです。現在の日次消費額を線形外挿し、設定済み予算の各しきい値に達する時期も示せます。
主な機能
- 01指定期間の支出を集計
- 02日次消費ペースの算出
- 03期間別の支出予測
- 04予算しきい値到達日の推定
- 05表またはJSONで出力
活用シーン
- 01財務またはSRE予算の計画
- 02予算枯渇予測によるCIゲート
- 03ワークロード変更後の支出確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ ruvnet/ ruflo --skill cost-projectionインストール後、Claude Code で/cost-projectionを入力して読み込まれたか確認します。
詳細
cost-budget-check と組み合わせて使う、将来のコスト予測機能です。
cost-budget-checkは「基準を超えましたか?」に答えます。リアクティブです。cost-projectionは「いつ基準を超えますか?」に答えます。予測的です。
アルゴリズム
cost-tracking名前空間からすべてのsession-*レコードを読み込みます(cost-budget-checkと同じデータソースを使用します)。- 測定期間で絞り込みます(デフォルトは
capturedAt/startedAtの直近 7 日間です)。 - 1 日あたりの消費率を計算します:
windowSpend / windowDays。 - 指定された各期間に対して線形外挿します(デフォルトは 7d/30d/90d/365d です)。
- 予算が設定されている場合(
cost-budget setによってbudget-configキーが設定されます):- 現在の消費率に基づき、予算の 75%/90%/100% に達するまでの日数を計算します。
- しきい値をすでに超えている場合は
ALREADY REACHEDマーカーを付け、別のテーブルブロックに表示します。
フラグ
--window 測定期間。Nh|Nd|Nw|Nm。デフォルトは 7d。
--horizons 予測期間。デフォルトは 7d,30d,90d,365d。
--format table|json デフォルトは table(Markdown)です。
環境変数:PROJECTION_NAMESPACE で名前空間を上書きできます(デフォルトは cost-tracking)。PROJECTION_QUIET=1 は --format json の別名です。
スモークテストのトランスクリプト(7 日間で $1 のセッションが 3 件、予算 $20)
| Sessions in window | 3 |
| Window spend | $3.000000 |
| **USD per day** | **$0.428571** |
| All-time spend | $3.000000 across 3 sessions |
## Projected spend (linear extrapolation)
| Horizon | Days | Projected spend |
|---|---:|---:|
| 7d | 7 | $3.0000 |
| 30d | 30 | $12.8571 |
## Budget exhaustion ($20.00 configured)
| Threshold | Target | Remaining | Time at current rate |
|---|---:|---:|---|
| 75% | $15.00 | $12.00 | 28.0 days |
| 90% | $18.00 | $15.00 | 35.0 days |
| 100% | $20.00 | $17.00 | 39.7 days |
使用する場面
- 財務/SRE 計画:JSON 出力を予算ダッシュボードに渡し、「四半期の目標達成に向けて順調か」を確認します。
- CI ゲート:
cost-projection --format json | jq '.budget.exhaustion[2].daysUntilReached < 7'→ 100% 到達まで 1 週間未満の場合はビルドを失敗させます。 - ワークロード変更後の確認:大きな機能をリリースした後に再実行し、消費率が予想以上に上昇していないことを確認します。
定常性の仮定
線形外挿では、現在の消費率が維持されると仮定します。フッターでは、ワークロードの変更後に再実行するよう運用担当者に促します。複数の期間にわたる変動を検出するには、benchmark-drift をすでにカバーしている cost-trend と組み合わせてください。
コメント
Markdown 対応