Issue #4479 トークン使用統計の調整
コンテキスト
Issue #4479 では、Qwen Code のトークン消費量の日次可視化が要求されています。イシュースレッドで スコープが明確化され、CLI コマンド、エクスポート機能、月次サマリー、モデル別トークン消費量が 優先されることになりました。メンテナーのコメントでは、隣接する統計作業との調整も求められています:
- #4252:
/stats内の生成タイミングメトリクス(TTFT、生成時間、TPS など)。 - #4182:メモリ診断用のコンテンツなしセッションスケールカウンター。
調整方針
-
新しいトップレベルコマンドではなく
/statsを使用する。 トークン使用量は/stats daily、/stats monthly、/stats exportとして公開され、 セッション統計や将来の生成メトリクスと既存の統計コマンド体系を共有します。 -
トークンカウンターをローカル JSONL として永続化する。 各 API レスポンスは、ランタイムディレクトリ配下の
usage/token-usage-YYYY-MM.jsonlにコンテンツなしのレコードを1件追記します。 これにより、SQLite を新たな依存関係として追加せずに日次/月次の集計が可能になります。 -
#4252 のタイミングセマンティクスは分離して保持する。 トークン使用サマリーには
apiDurationMsが含まれる場合があります。これはテレメトリから取得した 既存のエンドツーエンド API レスポンス時間です。意図的に API 時間として命名されており、 生成時間、TTFT、TPS として提示してはなりません。 生成タイミングメトリクスの管理は引き続き #4252 が担当します。 -
#4182 のプライバシーとメモリ診断の境界を維持する。 使用レコードには集計カウンターと安定したディメンションのみを格納します:ローカル日付、 月、セッション ID、モデル、認証タイプ、ソース、トークンカウンター、API 時間。 プロンプトテキスト、レスポンステキスト、ツールコンテンツ、プロジェクトパス、 プロンプト ID、レスポンス ID は格納しません。
-
エクスポートは集計のみに限定する。 CSV および JSON エクスポートはサマリーであり、生のトランスクリプトエクスポートではありません。 合計、モデル、認証タイプ、モデル/認証タイプ、ソースでグループ化されます。
非目標
- #4252 の TTFT/TPS/生成時間インストルメンテーションをここでは実装しない。
/doctor memoryを拡張したり、この変更で #4182 を実装したりしない。- トークン使用量専用のトップレベルスラッシュコマンドを追加しない。