Was ein Budget ist
Ein Budget ist eine Ausgabenregel mit einem Scope. Der Scope ist entweder ein API-Key oder ein Label. Die Regel hat ein Dollar-Limit und ein Zeitfenster — taeglich oder monatlich. Waehrend Requests durch den Proxy kommen, werden ihre Kosten berechnet und zum Budget addiert. Wenn die Summe das Limit erreicht, lehnt der Proxy neue passende Requests mit HTTP 402 Payment Required ab.
Das ist das ganze Feature. Zwei Dinge passieren, waehrend der Cap sich fuellt:
- E-Mail-Alerts feuern bei 50%, 80% und 100% des Limits an die Adressen, die Sie am Budget hinterlegen.
- Sobald das Limit erreicht ist, lehnt der Proxy neue passende Requests mit einer 402-Antwort ab, die Budget, Scope und Periode benennt.
Alles andere — laufende Summen, Aufschluesselungen, Alert-Dedupe — ist nur das Dashboard rund um diese zwei Verhaltensweisen.
Scope per API-Key vs. Label
Pro-Key-Budgets sind der einfache Fall: Begrenzen Sie die Gesamtausgaben fuer einen bestimmten Grepture-API-Key. Nuetzlich, wenn Sie separate Keys fuer Produktion und Staging haben oder einen pro Kunde.
Pro-Label-Budgets sind der interessante Fall. Wenn Ihre Anwendung bei jedem Summarizer-Request X-Grepture-Label: feature:summarizer sendet, koennen Sie dieses Feature unabhaengig vom Rest Ihres Traffics begrenzen. Sie sind nicht limitiert durch die Anzahl der API-Keys, die Sie ausgegeben haben — Sie sind limitiert dadurch, wie Sie Ihre eigenen Requests klassifizieren. Labels, fuer die Sie kein Budget haben, werden still ignoriert. Keine impliziten Budget-Erstellungen, keine Regeln zum Debuggen.
Sie koennen mehrere Budgets parallel laufen lassen. Einen monatlichen Cap auf den gesamten API-Key, einen taeglichen Cap auf das ausser Kontrolle geratene Summarizer-Feature, einen engeren Cap auf den experimentellen Endpoint, mit dem ein Teammitglied gerade testet. Der Proxy prueft jedes aktive Budget bei jedem Request, und das erste, das aufgebraucht ist, gewinnt.
Wie "aufgebraucht" tatsaechlich funktioniert
Zwei Dinge zur Durchsetzung, beide auf Geschwindigkeit ausgelegt:
Der Cap wird eventually-consistent durchgesetzt. Wenn ein Request kommt, prueft der Proxy in Redis die aktuellen Periodenausgaben des Budgets. Wenn schon ueberzogen, ablehnen. Wenn nicht, Request weiterleiten und danach inkrementieren. Wenn Sie viele gleichzeitige Requests in Flight haben, wenn der Cap erreicht wird, koennen einige die Periodensumme leicht ueber das Limit treiben. Der Overshoot ist begrenzt durch gleichzeitige_requests × max_einzel_request_kosten — meist ein paar Dollar bei ernsthafter Last, praktisch nichts.
Budgets zaehlen Ausgaben ab Erstellung. Wenn Sie am 15. eines Monats einen $5-Monatscap erstellen, verfolgt das Budget, was ab dem 15. ausgegeben wird, nicht was Sie vorher im Monat schon verbrannt haben. Das entspricht dem, was Sie wahrscheinlich mit "jetzt einen Cap setzen" meinen. In der naechsten Kalenderperiode setzt sich das Budget zurueck und zaehlt ab Periodenstart, wie Sie es erwarten wuerden. Das Budget-Erstellungsformular zeigt Ihnen die bisherigen Periodenausgaben fuer den gewaehlten Scope, damit Sie den Cap mit diesem Kontext im Hinterkopf dimensionieren koennen.
Wie "passend" tatsaechlich funktioniert
Der Proxy haelt einen 60-Sekunden-Cache der aktiven Budgets Ihres Teams und holt sie neu, wenn Sie eines erstellen, bearbeiten oder loeschen. Bei jedem Request:
- Laedt er die Budgets Ihres Teams aus dem Cache.
- Filtert auf die, die zu diesem Request passen — gleiche
api_settings_idfuer Pro-Key-Budgets, gleiches Label fuer Pro-Label-Budgets. - Prueft fuer jedes Match den Redis-Ausgabenzaehler gegen das Limit.
- Lehnt mit 402 ab, wenn eines aufgebraucht ist; sonst weiterleiten und danach Ausgaben erfassen.
Wenn Redis nicht verfuegbar ist, faellt der Proxy offen. Ihr Traffic fliesst; Budgets setzen kurz aus; Alerts funktionieren beim naechsten Cron-Tick weiter. Gleiches Verhalten wie die bestehenden Rate-Limit- und Quota-Systeme.
Alerts bei 50%, 80%, 100%
Ein App-Layer-Cron laeuft alle fuenf Minuten. Fuer jedes aktivierte Budget berechnet er die aktuellen Periodenausgaben aus Ihren Traffic-Logs (also enthalten Kosten Provider-spezifische Dinge wie Anthropic-Prompt-Cache-Reads zu 10% und OpenAI-Cached-Input zu 50%), prueft, welche Schwellen ueberschritten wurden, und sendet eine E-Mail pro neu ueberschrittener Schwelle.
Das Dedupe liegt auf Datenbankebene — ein eindeutiger Primaerschluessel (budget_id, period_key, threshold) — also kann kein erneuter Cron-Lauf, kein Restart, kein transienter Fehler, kein wiederholter Versand zu einer Duplikat-E-Mail fuehren. Wenn die Periode umschlaegt (ein neuer Tag, ein neuer Monat), setzt sich das Budget zurueck und die Schwellen-E-Mails feuern wieder, wenn Sie sie in der neuen Periode ueberschreiten.
Vorerst nur E-Mail. Slack und Webhook-Kanaele sind fuer die naechste Iteration eingeplant.
Ein durchgespieltes Beispiel
Sie betreiben einen kundenfreundlichen Chatbot. Sie geben einen Grepture-API-Key fuer Produktion aus und taggen bestimmte Features:
POST /v1/messages
X-Grepture-Target: https://api.anthropic.com/v1/messages
X-Grepture-Label: feature:onboarding-chat
Sie erstellen drei Budgets:
- Pro-Key, $2.000/Monat — alert@yourteam.com, oncall@yourteam.com. Das uebergeordnete Sicherheitsnetz. Wenn irgendwo etwas schiefgeht und Ausgaben verbrennt, ist das die Obergrenze.
- Pro-Label
feature:onboarding-chat, $400/Monat — product@yourteam.com. Sie erwarten, dass dieses Feature etwa $300/Monat kostet. Wenn es heiss laeuft, wollen Sie es wissen. - Pro-Label
feature:experimental, $50/Tag — alice@yourteam.com. Alice iteriert den ganzen Tag daran. Wenn sie in eine Endlosschleife geraet, stoppt der Proxy sie, bevor es teuer wird.
Drei verschiedene Zeitfenster, drei verschiedene Alert-Listen, drei unabhaengige Caps. Keines stoert die anderen.
Wo Sie es finden
/budgets im Dashboard, unter der Guardrails-Gruppe in der Navigation. Erstellen Sie ein Budget, beobachten Sie, wie die Ausgabenleiste sich fuellt, wenn Traffic kommt, bekommen Sie eine E-Mail, wenn Sie sich naehern, und eine 402-Antwort in Ihrer Anwendung, falls jemals etwas ueber den Cap hinausschiesst.
Siehe die Preisseite, um zu sehen, welche Plaene Budgets enthalten, oder springen Sie direkt aus dem Dashboard hinein.