レシピ: 予算と FinOps ガードレール
FinOps の予算と支出分析は Business の機能です。Community はセッションごとのコスト追跡とデータのエクスポートを提供します。0.4 より前に保存された予算は引き続き参照・削除でき、FinOps モジュールが有効な間は適用されます。Community では予算の作成・変更はできません。評価とサンドボックスは Community に残ります。
目標: 「このチームのエージェントは月 $500 で支出を止める」——一度宣言すれば ライブで強制され、上昇途中のしきい値でアラートが出る。
予算の強制は、デフォルトバイナリでライブになっているアクチュエーションの
1 つだ: 上限に達した強制予算は、追加のプロビジョニングなしに支出を拒否する
(モジュールカタログはこれを v1 | v1 と
マークしている)。
予算を作成する
Section titled “予算を作成する”curl -ks -X POST "$BASE/v1/m/finops/budgets" \ -H "Authorization: Bearer $TOKEN" -H "X-Olivares-Tenant: $TENANT" \ -H 'Content-Type: application/json' \ -d '{ "dimension": "team", "key": "payments", "limit_micro_usd": 500000000, "period": "monthly", "thresholds": [0.5, 0.8, 1.0], "action": "block" }'- 金額はマイクロ USD だ(
limit_micro_usd: 500000000= $500)。これにより 契約上の浮動小数点の曖昧さがない。 dimension+keyが予算のスコープを定める。スコープ対象の dimension にはglobal、model、provider、agent、session、team、project、workspace、api_key、actor、service_tier、context_window、inference_geo、gateway、identityが含まれる。actionは強制モードだ:
action |
上限到達時 |
|---|---|
alert(デフォルト) |
ショーバックのみ——アラートは発火するが、何も拒否されない |
throttle |
アクチュエーションシームが新規支出を減速させる |
block |
アクチュエーションシームが新規支出を拒否する |
単一のアイデンティティに予算を設定する
Section titled “単一のアイデンティティに予算を設定する”dimension: "identity" は、確かなロスターアイデンティティの external id に
スコープを定める——アイデンティティソース
が登録したワークロードまたはエージェントのアイデンティティだ:
{ "dimension": "identity", "key": "spiffe://corp/agent/billing-reconciler", "limit_micro_usd": 50000000, "period": "monthly", "action": "throttle" }アイデンティティは、コスト取り込み時にサンプルのエージェントバインディング、 API キー、または actor から解決される——そのため予算は、1 つの API キーではなく 複数の面にまたがってアイデンティティに追随する。
動作を確認する
Section titled “動作を確認する”# Live consumption vs limit, with run-rate projection:curl -ks "$BASE/v1/m/finops/budgets/$BUDGET_ID/status" \ -H "Authorization: Bearer $TOKEN" -H "X-Olivares-Tenant: $TENANT"
# Threshold crossings (your 50% / 80% / 100% alerts):curl -ks "$BASE/v1/m/finops/alerts" \ -H "Authorization: Bearer $TOKEN" -H "X-Olivares-Tenant: $TENANT"上限に達すると、強制予算のチェックは allowed: false を、アクション
(throttle または block)と発火した予算とともに返す——拒否はその理由を
名指しする。アラートは通知ストリームにも乗るため、Slack や PagerDuty の
デスティネーションが 100% の拒否より前に
80% の到達を知る。
コンソールでは、Budgets が各上限に対する消費量を、消費ペースに基づく 予測とともに表示する。
支出に分母を与える: アウトカム
Section titled “支出に分母を与える: アウトカム”コスト・パー・アウトカムこそが、予算をビジネスの会話にするものだ。アウトカム (解決したチケット、マージされた PR、クローズしたケース)を報告し、価値パネルを 読む:
curl -ks -X POST "$BASE/v1/m/finops/outcomes" \ -H "Authorization: Bearer $TOKEN" -H "X-Olivares-Tenant: $TENANT" \ -d '{"kind":"ticket.resolved","subject_ref":"agent:support-triage","count":1}'
curl -ks "$BASE/v1/m/finops/value" \ -H "Authorization: Bearer $TOKEN" -H "X-Olivares-Tenant: $TENANT"価値サマリーにはキャンセルリスク——アウトカムのないバーン——が含まれる。 これは成功指標の正直な逆数だ。
- 台帳を読めないときは拒否: 予算のアドミッションを確立できない場合(FinOps が
台帳を読めない場合)、推論プロキシは計測されない支出を通すのではなく、503、
理由
budget store unreachable (deny-closed)、x-should-retry: falseで呼び出しを 拒否する。エンジン自身のゲートのうち、このケースで設定可能な姿勢を保つのは セッション起動だけである(OLIVARES_SESSION_BUDGET_AVAILABILITY)。 - 予約済みキャパシティ(
reserved_micro_usd)は上限に算入されるため、 事前予約によって予算を回避することはできない。 cost_typeは意図的に予算の dimension になっていない——見積もりフォール バックの行は、並行プールを形成するのではなく、本来属する dimension に乗る。