Issue #4479 Token-Verbrauchsstatistik-Koordination
Kontext
Issue #4479 fordert eine tägliche Sichtbarkeit des Qwen-Code-Tokenverbrauchs. Der Umfang wurde im Issue-Thread präzisiert: Bevorzugt werden ein CLI-Befehl, Export-Unterstützung, monatliche Zusammenfassungen und der Tokenverbrauch pro Modell. Ein Kommentar eines Maintainers wies außerdem auf die Koordination mit benachbarten Statistikarbeiten hin:
- #4252: Generierungs-Timing-Metriken in
/statswie TTFT, Generierungsdauer und TPS. - #4182: Inhaltsfreie Sitzungszähler für Speicherdiagnose.
Koordinationsentscheidungen
-
Verwende
/stats, keinen neuen Befehl auf oberster Ebene. Der Tokenverbrauch wird als/stats daily,/stats monthlyund/stats exportbereitgestellt, sodass er die bestehende Befehlsfläche der Statistik mit Sitzungsstatistiken und zukünftigen Generierungsmetriken teilt. -
Persistiere Token-Zähler als lokales JSONL. Jede API-Antwort fügt einen inhaltsfreien Datensatz an
usage/token-usage-YYYY-MM.jsonlim Laufzeitverzeichnis an. Dies erfüllt die tägliche/monatliche Aggregation, ohne SQLite als neue Abhängigkeit hinzuzufügen. -
Behalte die Timing-Semantik von #4252 separat. Zusammenfassungen des Tokenverbrauchs können
apiDurationMsenthalten – die bestehende End-to-End-API-Antwortdauer aus der Telemetrie. Sie wird bewusst als API-Dauer bezeichnet und darf nicht als Generierungsdauer, TTFT oder TPS dargestellt werden. #4252 bleibt der Eigentümer für Generierungs-Timing-Metriken. -
Behalte die Datenschutz- und Speicherdiagnose-Grenzen von #4182. Nutzungsdatensätze speichern nur aggregierte Zähler und stabile Dimensionen: lokales Datum, Monat, Sitzungs-ID, Modell, Authentifizierungstyp, Quelle, Token-Zähler und API-Dauer. Sie speichern keinen Prompt-Text, Antworttext, Tool-Inhalt, Projektpfade, Prompt-IDs oder Antwort-IDs.
-
Export bleibt nur aggregiert. CSV- und JSON-Exporte sind Zusammenfassungen, keine Rohdaten-Transkriptexporte. Sie gruppieren nach Gesamt, Modell, Authentifizierungstyp, Modell/Authentifizierungstyp und Quelle.
Nicht-Ziele
- Implementiere hier nicht die TTFT-/TPS-/Generierungsdauer-Instrumentierung von #4252.
- Erweitere
/doctor memorynicht und implementiere #4182 in dieser Änderung nicht. - Füge keinen separaten Tokenverbrauchs-Befehl auf oberster Ebene hinzu.