Issue #4479 トークン使用量統計の調整
背景
Issue #4479 では、Qwen Code のトークン消費量を日次で把握できるようにすることを求めています。スコープは issue スレッド内で明確化され、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 の実装をこの変更に含めない。- トークン使用量専用のトップレベルのスラッシュコマンドを追加しない。