Token-Statistiken: Kostenorientierte Statistikdefinitionen und Diagrammanalyse
Sie haben bereits Ihre Clients an Antigravity Tools angeschlossen, aber "wer verursacht die Kosten, wo ist es teurer geworden und hat plötzlich ein Modell extrem zugelegt" lässt sich schwer intuitiv beurteilen. In diesem Lektion geht es nur um eines: Die Datendefinitionen auf der Token-Stats-Seite zu erklären und Ihnen zu zeigen, wie Sie mit Diagrammen schnell Kostenprobleme lokalisieren.
Was Sie nach diesem Lektion können
- Erklären, woher die Token-Stats-Daten stammen (wann wird aufgezeichnet, in welchen Fällen fehlen Daten)
- Zeitfenster zwischen Stunde/Tag/Woche wechseln, um Fehlentscheidungen durch "nur einen Tag" zu vermeiden
- In den beiden Ansichten "Nach Modell / Nach Konto" mit Trenddiagrammen anomale Spitzenwerte finden
- Mit Top-Listen die teuersten Modelle/Kontos identifizieren und dann im Request-Log nach Ursachen suchen
Ihre aktuellen Herausforderungen
- Sie fühlen, dass die Aufrufe teurer geworden sind, wissen aber nicht, ob das Modell geändert wurde, das Konto gewechselt wurde oder an einem Tag plötzlich das Volumen gestiegen ist
- Sie haben
X-Mapped-Modelgesehen, sind sich aber nicht sicher, nach welchem Modellstandard die Statistik berechnet wird - Token-Stats zeigt manchmal 0 oder "keine Daten" an, und Sie wissen nicht, ob kein Verkehr oder keine Statistik erfasst wurde
Wann Sie diese Methode anwenden
- Sie möchten Kosten optimieren: Quantifizieren Sie zuerst "wer am teuersten ist"
- Sie untersuchen plötzliche Rate-Limits/Anomalien: Verwenden Sie Spitzenzeiten für den Abgleich mit Request-Logs
- Sie haben Änderungen am Modell-Routing oder an der Kontingentverwaltung vorgenommen und möchten überprüfen, ob die Kosten wie erwartet gesunken sind
Was sind Token-Stats?
Token-Stats ist die lokale Verbrauchsstatistikseite von Antigravity Tools: Nach der Weiterleitung von Anforderungen versucht der Proxy, die Token-Anzahl aus usage/usageMetadata im Antwort-JSON oder Streaming-Daten zu extrahieren und jede Anforderung nach Konto und Modell in die lokale SQLite (token_stats.db) zu schreiben. In der UI werden die Daten dann nach Zeit/Modell/Konto aggregiert angezeigt.
Ein häufiger Fehler im Voraus
Der "Modell"-Standard von Token-Stats stammt aus dem model-Feld Ihrer Anfrage (oder der Pfadanalyse von Gemins /v1beta/models/<model>), nicht gleich dem X-Mapped-Model nach dem Routing.
🎒 Vorbereitung vor dem Start
- Sie haben bereits mindestens einen Proxy-Aufruf erfolgreich ausgeführt (nicht nur beim
/healthz-Check stehen geblieben) - Ihre Upstream-Antwort gibt Token-Verbrauchs-Felder zurück, die analysiert werden können (andernfalls fehlen die Statistiken)
Empfohlene Beglektüre
Wenn Sie Modell-Mapping verwenden, um model an ein anderes physikalisches Modell zu routen, lesen Sie zuerst Modell-Routing: Benutzerdefiniertes Mapping, Wildcard-Priorität und vordefinierte Strategien. Danach wird die "Statistikdefinition" klarer.
Kernkonzept
Die Datenkette von Token-Stats lässt sich in drei Abschnitte unterteilen:
- Proxy-Middleware versucht, Token-Verbrauch aus der Antwort zu extrahieren (kompatibel mit
usage/usageMetadata, Streaming wird ebenfalls analysiert) - Wenn gleichzeitig
account_email + input_tokens + output_tokensverfügbar sind, wird dies in die lokale SQLite geschrieben (token_stats.db) - UI ruft aggregierte Daten über Tauri
invoke(get_token_stats_*)ab und zeigt sie nach Stunde/Tag/Woche an
Mach es mit mir
Schritt 1: Bestätigen Sie zuerst, dass Sie "Verkehr haben"
Warum Token-Stats-Statistiken stammen aus echten Anforderungen. Wenn Sie nur den Proxy gestartet haben, aber nie eine Modell-Anforderung gesendet haben, zeigt die Seite "keine Daten" an.
Vorgehensweise: Verwenden Sie die Aufrufmethode, die Sie in Lokalen Reverse-Proxy starten und ersten Client anschließen bereits erfolgreich validiert haben, und senden Sie 1-2 Anforderungen.
Was Sie sehen sollten: Die Token-Stats-Seite ändert sich von "wird geladen/keine Daten" zu Diagrammen oder Listen.
Schritt 2: Wählen Sie das richtige Zeitfenster (Stunde/Tag/Woche)
Warum Derselben Daten zeigen unter verschiedenen Fenstern völlig unterschiedliche "Spitzenwerte/Trends". Die drei Fenster in der UI entsprechen auch unterschiedlichen Abrufbereichen:
- Stunde: letzte 24 Stunden
- Tag: letzte 7 Tage
- Woche: letzte 4 Wochen (Trend-Ansicht aggregiert nach letzten 30 Tagen)
Was Sie sehen sollten: Nach dem Wechsel ändert sich die Granularität der Trend-Diagramm-X-Achse (Stunde zeigt "Uhrzeit", Tag zeigt "Monat/Tag", Woche zeigt "Jahr-W-Nummer").
Schritt 3: Schauen Sie zuerst auf die Gesamtübersicht, um die "Kostengröße" zu bestimmen
Warum Die Übersichtskarten können zuerst 3 Fragen beantworten: Ist das Gesamtvolumen groß, ist das Verhältnis Eingabe/Ausgabe anomal, und sind die beteiligten Konten/Modelle plötzlich gestiegen.
Konzentrieren Sie sich auf diese Punkte:
- Gesamt-Tokens (
total_tokens) - Eingabe/Ausgabe-Tokens (
total_input_tokens/total_output_tokens) - Anzahl aktiver Konten (
unique_accounts) - Anzahl verwendeter Modelle (UI verwendet direkt die Länge der "Nach-Modell-Statistikliste")
Was Sie sehen sollten: Wenn die "Anzahl aktiver Konten" plötzlich steigt, bedeutet dies meistens, dass Sie kurzzeitig mehr Konten verwendet haben (z. B. Wechsel auf eine Rotationsstrategie).
Schritt 4: Verwenden Sie "Verwendungstrends nach Modell/Konto", um anomale Spitzenwerte zu erkennen
Warum Trenddiagramme sind der beste Einstiegspunkt, um "plötzlich teurer geworden" zu erkennen. Sie müssen die Ursache vorher nicht kennen, sondern zuerst feststellen, "an welchem Tag/welcher Stunde es gespitzt hat".
Vorgehensweise:
- Wechseln Sie im oberen rechten Bereich des Trenddiagramms zwischen "Nach Modell / Nach Konto"
- Bewegen Sie die Maus darüber (Tooltip), um Top-Werte zu sehen, und achten Sie zuerst auf "diejenige, die plötzlich auf den ersten Platz gesprungen ist"
Was Sie sehen sollten:
- Nach Modell: Ein Modell steigt in einem bestimmten Zeitraum plötzlich an
- Nach Konto: Ein Konto steigt in einem bestimmten Zeitraum plötzlich an
Schritt 5: Verwenden Sie Top-Listen, um das "teuerste Ziel" festzulegen
Warum Trenddiagramme zeigen Ihnen "wann anomale Werte auftreten", Top-Listen zeigen Ihnen "wer am teuersten ist". Wenn Sie diese beiden kreuzen, können Sie schnell den Fehlerbehebungsbereich eingrenzen.
Vorgehensweise:
- In der Ansicht "Nach Modell" sehen Sie die Tabelle "Detaillierte Statistik nach Modell" mit
total_tokens / request_count / Anteil - In der Ansicht "Nach Konto" sehen Sie die Tabelle "Detaillierte Statistik nach Konto" mit
total_tokens / request_count
Was Sie sehen sollten: Die teuersten Modelle/Kontos stehen vorne, und request_count hilft Ihnen zu unterscheiden, ob "einmal besonders teuer" oder "besonders viele Male".
Schritt 6 (optional): Finden Sie token_stats.db und erstellen Sie eine Sicherung/Prüfung
Warum Wenn Sie vermuten, dass "Statistiken fehlen" oder eine Offline-Analyse durchführen möchten, ist das direkte Verwenden der SQLite-Datei am zuverlässigsten.
Vorgehensweise: Gehen Sie in den Advanced-Bereich von Settings, klicken Sie auf "Datadir öffnen", und Sie finden im Datenverzeichnis token_stats.db.
Was Sie sehen sollten: In der Dateiliste ist token_stats.db enthalten (Dateiname ist vom Backend festgeschrieben).
Checkpoint ✅
- Sie können erklären, dass Token-Stats-Statistiken "nach Extraktion aus usage/usageMetadata in Antworten in die lokale SQLite geschrieben werden", nicht Cloud-Abrechnung
- Sie können in den beiden Trendansichten "Nach Modell / Nach Konto" einen spezifischen Spitzenwert-Zeitraum angeben
- Sie können mit Top-Listen eine ausführbare Fehlerbehebungsentscheidung geben: Welches Modell oder welches Konto zuerst überprüfen
Häufige Fehler
| Phänomen | Häufige Ursache | Was Sie tun können |
|---|---|---|
| Token-Stats zeigt "keine Daten" an | Sie haben tatsächlich keine Modell-Anforderungen generiert; oder die Upstream-Antwort enthält keine analysierbaren Token-Felder | Verwenden Sie zuerst einen bereits validierten Client, um Anforderungen zu senden; prüfen Sie dann, ob die Antwort usage/usageMetadata enthält |
| Statistik nach "Modell" sieht falsch aus | Statistikstandard verwendet model in der Anfrage, nicht X-Mapped-Model | Betrachten Sie Modell-Routing als "Anforderungsmodell -> Mapping-Modell"; Statistik zeigt "Anforderungsmodell" |
| --- | --- | --- |
| Statistiken zu groß nach Aktivierung von Proxy Monitor | Wenn Proxy Monitor aktiviert ist, werden die Token jeder Anforderung zweimal aufgezeichnet | Dies ist ein bekanntes Implementierungsdetail, beeinflusst aber die relative Trendanalyse nicht; wenn Sie genaue Werte benötigen, können Sie Monitor vorübergehend deaktivieren und erneut testen |
Zusammenfassung dieses Lektions
- Der Kernwert von Token-Stats ist "Kostenprobleme zu quantifizieren", zuerst lokalisieren, dann optimieren
- Beim Schreiben von Statistiken sind Konto und Token-Verbrauch erforderlich; wenn das Modell fehlt, wird es als
"unknown"aufgezeichnet (verhindert nicht das Schreiben) - Wenn Sie eine feinere Kostensteuerung wünschen, führen Sie normalerweise als nächsten Schritt zurück zu Modell-Routing oder Kontingentverwaltung
Vorschau auf das nächste Lektion
Im nächsten Lektion lösen wir das "implizite Stabilitätsproblem in langen Sitzungen": Lange Sitzungsstabilität: Kontextkompression, Signatur-Cache und Kompression von Tool-Ergebnissen.
Sie werden lernen:
- Was die drei Schichten der progressiven Kontextkompression jeweils tun
- Warum "Signatur-Cache" 400 Signaturfehler reduzieren kann
- Was bei der Tool-Ergebniskompression gelöscht und was beibehalten wird
Anhang: Quellcode-Referenz
Klicken, um Quellcode-Positionen anzuzeigen
Aktualisierungszeit: 2026-01-23
| Funktion | Dateipfad | Zeilennummer |
|---|---|---|
| --- | --- | --- |
| --- | --- | --- |
| --- | --- | --- |
| --- | --- | --- |
| --- | --- | --- |
| --- | --- | --- |
Datenbankdateiname und Tabellenstruktur: token_stats.db / token_usage / token_stats_hourly | src-tauri/src/modules/token_stats.rs | 58-126 |
Schreiblogik: record_usage(account_email, model, input, output) | src-tauri/src/modules/token_stats.rs | 128-159 |
| Abfragelogik: Stunde/Tag/Woche, nach Konto/nach Modell, Trend und Übersicht | src-tauri/src/modules/token_stats.rs | 161-555 |
| --- | --- | --- |
| --- | --- | --- |
Einstellungsseite: Abrufen/Öffnen des Datenverzeichnisses (um token_stats.db zu finden) | src/pages/Settings.tsx | 76-143 |