Issue #4479 Koordination der Token-Verbrauchsstatistiken
Kontext
Issue #4479 fordert tägliche Transparenz über den Token-Verbrauch von Qwen Code. Der Umfang wurde im Issue-Thread präzisiert: Bevorzugt werden ein CLI-Befehl, Exportunterstützung, monatliche Zusammenfassungen und der Token-Verbrauch pro Modell. Ein Kommentar eines Maintainers wies auch auf die Koordination mit benachbarten Statistikarbeiten hin:
- #4252: Generierungs-Timing-Metriken in
/statswie TTFT, Generierungsdauer und TPS. - #4182: inhaltsfreie Sitzungszähler im Sitzungsmaßstab für Speicherdiagnosen.
Koordinationsentscheidungen
-
/statsverwenden, keinen neuen Befehl auf oberster Ebene. Der Token-Verbrauch wird als/stats daily,/stats monthlyund/stats exportbereitgestellt, sodass er die bestehende Statistik-Befehlsoberfläche mit Sitzungsstatistiken und zukünftigen Generierungsmetriken teilt. -
Token-Zähler als lokales JSONL persistieren. Jede API-Antwort fügt einen inhaltsfreien Datensatz an
usage/token-usage-YYYY-MM.jsonlim Runtime-Verzeichnis an. Dies erfüllt die tägliche/monatliche Aggregation, ohne SQLite als neue Abhängigkeit hinzuzufügen. -
Timing-Semantik von #4252 getrennt halten. Token-Verbrauchszusammenfassungen 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 für Generierungs-Timing-Metriken zuständig. -
Datenschutz- und Speicherdiagnosegrenzen von #4182 beibehalten. Verbrauchsdatensä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 aggregiert. CSV- und JSON-Exporte sind Zusammenfassungen, keine Rohdatenexporte. Sie gruppieren nach Gesamt, Modell, Authentifizierungstyp, Modell/Authentifizierungstyp und Quelle.
Nicht-Ziele
- Die TTFT/TPS/Generierungsdauer-Instrumentierung von #4252 hier nicht implementieren.
/doctor memorynicht erweitern oder #4182 in dieser Änderung implementieren.- Keinen separaten Token-Verbrauchs-Slash-Befehl auf oberster Ebene hinzufügen.