拓冰建站拓冰建站
首页 / 资讯中心 / 正文

RTK Analytics 模块解析:用 rtk gain、cc-economics 与 session 构建只读节省量仪表盘

RTK Analytics 模块解析用 rtk gain、cc-economics 与 session 构建只读节省量仪表盘【免费下载链接】rtkCLI proxy that reduces LLM token consumption by 60-90% on common dev commands. Single Rust binary, zero dependencies项目地址: https://gitcode.com/GitHub_Trending/rtk4/rtkRTKRust 编写的 CLI 代理通过压缩常见开发命令的输出减少进入 LLM 上下文的 token 数量src/analytics/模块则是这套机制的“账房”——它对 tracking 数据库做只读查询产出三类仪表盘rtk gaintoken 节省量、rtk cc-economics结合 Claude Code 花费的成本化估算和rtk sessionClaude Code 会话的 RTK 采用率分析。读完本文你能理解 RTK 各项节省指标的确切含义尤其是“字节比例而非账单占比”这一关键语义边界、掌握三个命令的完整用法与导出格式并了解如何按照模块规范为 analytics 新增一个只读分析视图。模块定位只读仪表盘永不写库模块定义来自 src/analytics/README.md它用几段话划清了 analytics 在整个 RTK 中的位置职责Ownsrtk gain节省量仪表盘、rtk cc-economics成本化节省估算、rtk session采用率分析以及对 Claude Code 用量数据的解析ccusage。非职责Does not own记录 token 节省是core/tracking的事由cmds/各命令调用命令过滤本身属于cmds/模块。边界规则如果新模块要写 tracking DB它属于core/或cmds/而不属于 analytics。工具特化的分析是允许的——例如cc_economics读取 Claude Code 数据完全合规因为边界是“只读呈现”而不是“工具无关”。模块的入口声明在 src/analytics/mod.rs只有四行pub mod cc_economics; pub mod ccusage; pub mod gain; pub mod session_cmd;对应关系清晰gain.rs对应rtk gaincc_economics.rsccusage.rs对应rtk cc-economicssession_cmd.rs对应rtk session。README 还强调了模块的目的与一个必须牢记的语义细节Bash output reduction analytics, economic modeling, and adoption metrics. The stored percentages measure output bytes; token counts arebytes / 4estimates, not billed tokens.即存储的百分比度量的是bash 输出字节的削减所有 token 数都是bytes / 4的估算值不是计费 token。这个约束贯穿所有子命令的输出解读后文会反复出现。数据底座tracking 数据库与 bytes/4 估算analytics 的一切查询都来自 SQLite tracking 库。按 docs/usage/TRACKING.md 的记载存储位置Linux 为~/.local/share/rtk/tracking.dbmacOS 为~/Library/Application Support/rtk/tracking.dbWindows 为%APPDATA%\rtk\tracking.db保留策略超过 90 天的记录在每次写入时自动清理防止数据库无限增长核心表commands的字段包括timestampRFC3339 UTC、original_cmd、rtk_cmd、input_tokens、output_tokens、saved_tokens、savings_pct、exec_time_ms并对timestamp建了索引。数据流是单向的命令执行时由TimedExecution::track()调Tracker::record()写入analytics 侧只通过Tracker的聚合 APIget_summary_filtered、get_all_days_filtered、get_by_week_filtered、get_by_month_filtered等见 src/core/tracking.rs读取。token 估算公式与 docs/guide/analytics/gain.md 一致Input Tokens estimate_tokens(raw_command_output) Output Tokens estimate_tokens(rtk_filtered_output) Saved Tokens Input - Output Savings % (Saved / Input) × 100RTK 刻意不内置真实 tokenizer那会增加启动开销且需要逐模型选择 tokenizer 或按会话查模型RTK 均不实现。因为原始输出与过滤后输出使用同一估算器百分比是可靠的绝对 token 数是近似值不会与供应商账单吻合。bash 输出只是输入 token 的一个来源还有你的 prompt、系统提示词与对话历史而输入 token 也只是账单的一部分——所以savings_pct是一个 bash 输出字节比不是费用占比。rtk gain节省量仪表盘rtk gain的实现位于 src/analytics/gain.rsrun()函数签名即完整参数表pub fn run( project: bool, // --project按当前项目作用域过滤 graph: bool, // --graph近 30 天 ASCII 图 history: bool, // --history最近 10 条命令 quota: bool, // --quota月度配额节省估算 tier: str, // -t pro | 5x | 20x daily: bool, // --daily weekly: bool, // --weekly monthly: bool, // --monthly all: bool, // --all一次输出全部时间维度 format: str, // --format text | json | csv failures: bool, // --failures解析失败统计 reset: bool, // --reset清零统计 yes: bool, // --yes跳过 reset 确认 _verbose: u8, ) - Result()快速参考# 默认汇总 rtk gain # 时间维度 rtk gain --daily # 全部有数据的天 rtk gain --weekly # 按周聚合周日起始 rtk gain --monthly # 按月聚合 rtk gain --all # 一次输出全部维度 # 视图增强 rtk gain --graph # ASCII 图近 30 天 rtk gain --history # 最近 10 条命令 rtk gain --quota # 月度配额节省估算 rtk gain --quota -t pro # 使用 Pro 档 token 预算做估算 # 导出 rtk gain --all --format json savings.json rtk gain --all --format csv savings.csv # 作用域与诊断 rtk gain --project # 只看当前项目的记录 rtk gain --failures # 解析失败率与恢复率 rtk gain --reset --yes # 清零有确认交互默认汇总视图不带时间标志时输出 KPI 式汇总Total commands、Input tokens、Output tokens、Tokens saved含平均节省率、Total exec time外加一个 Efficiency meter 进度条。命令名为空数据时会提示 No tracking data yet.。“By Command” 表按节省量排序展示 Top 命令命令、次数、Saved、Avg%、Time、Impact 迷你条百分比按阈值着色70%绿色加粗、40%黄色、其余红色见 src/analytics/gain.rs 的colorize_pct_cell。所有着色都是 TTY 感知的——非终端管道/重定向下自动退化为纯文本这对脚本化使用很重要。汇总视图还会输出三类健康警告写到 stderr不污染 stdout 数据流Hook 状态检查hook_check::status()hook 缺失或过时时提示运行rtk init -g——hook 失效会让节省“静默归零”RTK_DISABLED 滥用扫描check_rtk_disabled_bypasssrc/analytics/gain.rs扫描最近 7 天的 Claude Code 会话超过 200 个会话则跳过以免拖慢若带RTK_DISABLED1前缀的 bash 命令占比超过 10%提示运行rtk discover查看被绕过的命令未信任过滤器警告来自hooks::trust提示有 N 个自定义过滤器因未信任而未生效建议rtk trust。--history追加 “Recent Commands” 列表每条带节省档位符号▲≥70%、■≥30%、•其余。时间维度视图与导出--daily/--weekly/--monthly/--all走print_period_table统一渲染列含义与 docs/guide/analytics/gain.md 一致列含义Cmds执行的 RTK 命令数Input原始命令输出的估算 tokenbytes / 4Output过滤后的估算 tokenbytes / 4SavedInput − OutputSave%Saved / Input × 100bash 输出字节比不是账单占比周视图按周日起始的周聚合月视图按日历月聚合。JSON 导出结构ExportDatasrc/analytics/gain.rs{ summary: { total_commands: 196, total_input: 1276098, total_output: 59244, total_saved: 1220217, avg_savings_pct: 95.62, total_time_ms: 0, avg_time_ms: 0 }, daily: [ /* DayStats按 --daily 或 --all 出现 */ ], weekly: [ /* WeekStats */ ], monthly: [ /* MonthStats */ ] }未请求的维度通过#[serde(skip_serializing_if Option::is_none)]自动省略。CSV 导出则分三段输出每段带注释头与表头例如 daily 段# Daily Data date,commands,input_tokens,output_tokens,saved_tokens,savings_pct,total_time_ms,avg_time_ms 2026-02-03,42,15420,3842,11578,75.08,8450,201这意味着 CSV 是“多表拼接”格式用 pandas 消费时按# Daily Data等标记切段即可guide 中给出了完整示例。配额估算--quota--quota把累计节省的 token 表示为月度订阅预算的占比。源码src/analytics/gain.rs中三档预算为硬编码估算档位月预算估算 token说明pro6,000,000Pro约 $20/月基线约 44K tokens / 5 小时5x30,000,000Max 5×约 $100/月20x120,000,000Max 20×约 $200/月代码输出中明确声明这是启发式估算实际限额使用滚动 5 小时窗口而非月度上限且如 guide 所强调它与所有rtk gain数字一样源自bytes / 4应视为数量级参考而非账单预测。解析失败诊断--failures与重置--reset--failures走show_failures()src/analytics/gain.rs展示总失败数、恢复率fallback 成功占比、按频率排序的 Top 命令以及最近 10 条失败记录含ok/FAIL状态与 16 字节安全截断的时间戳前缀。--reset清空全部统计交互确认默认 No非交互管道环境直接视为拒绝需显式--yes。rtk cc-economics把节省量换算成成本rtk cc-economicssrc/analytics/cc_economics.rs是 analytics 中“工具特化”的样板它把ccusageClaude Code 花费侧数据与RTK tracking节省侧数据按周期关联合并产出双指标经济报告。数据来源ccusage 解析层解析层在 src/analytics/ccusage.rs。它优先使用 PATH 中的ccusage二进制不存在时回退到npx --yes ccusage先探测--help是否可用对 ccusage 完全缺失的情况做优雅降级。它解析日/周/月三种粒度的 JSON其中CcusageMetrics结构保留了输入、输出、缓存写入、缓存读取四类 token 及总成本pub struct CcusageMetrics { pub input_tokens: u64, pub output_tokens: u64, pub cache_creation_tokens: u64, pub cache_read_tokens: u64, pub total_tokens: u64, pub total_cost: f64, }一个值得注意的兼容性细节新旧版 ccusage 的周期字段名不同date/week/month→period解析结构体用#[serde(alias period)]同时接受两种命名src/analytics/ccusage.rs。核心算法加权输入 CPT合并后每个周期PeriodEconomics计算三类成本换算加权输入 CPT主指标利用 Claude API 的价格比源码注释标注 2026-02 验证适用于 ≤200K 上下文的 Claude 模型const WEIGHT_OUTPUT: f64 5.0; // 输出 5× 输入 const WEIGHT_CACHE_CREATE: f64 1.25; // 缓存写 1.25× 输入 const WEIGHT_CACHE_READ: f64 0.1; // 缓存读 0.1× 输入加权单位 input 5×output 1.25×cache_write 0.1×cache_read再用总成本 / 加权单位推出“等效输入单价”节省金额 rtk_saved_tokens × 该单价。这是默认展示的 Savings 列——它把“省下的 bash 输出 token”按输入 token 的价格口径折算成美元。Blended CPT参考偏低估成本 / 总 token含缓存。缓存读占大头时分母被稀释会低估。Active CPT参考高估成本 / (input output)。忽略了廉价缓存 token会高估。后两者仅在--verbose下展示并在输出中明确标注 OVERESTIMATES / UNDERESTIMATES。周期对齐的坑周六变周一周视图的合并有个巧妙的修正ccusage 的周起始是 ISO 周一而 RTK tracking 的历史约定是周六起始。merge_weekly调用convert_saturday_to_monday()周六 2 天 周一把 RTK 侧的 key 对齐到 ISO 周一再入表src/analytics/cc_economics.rs并有单元测试锁定2026-01-18 (Sat) - 2026-01-20 (Mon)的行为。合并本身基于HashMapString, PeriodEconomics任一侧缺失的字段都是Option天然支持“只有花费没有 RTK 数据”或反向的单侧场景。用法与输出rtk cc-economics # 月度汇总视图 rtk cc-economics --daily # 逐日 rtk cc-economics --weekly # 逐周 rtk cc-economics --monthly # 逐月 rtk cc-economics --all # 全部 rtk cc-economics --all --format json economics.json rtk cc-economics --all --format csv economics.csv汇总视图打印 Claude Code 花费、四类 token 明细、RTK 命令数、节省 token 数以及折算后的美元节省含占花费百分比。CSV 导出列包括period,spent,input_tokens,output_tokens,cache_create,cache_read,active_tokens,total_tokens,saved_tokens,weighted_savings,active_savings,blended_savings,rtk_commands——三种口径的节省金额都落在列里方便自行交叉验证。测试同文件mod tests覆盖了双指标计算、零 token 边界、单侧数据合并与排序等路径。rtk sessionClaude Code 采用率分析rtk sessionsrc/analytics/session_cmd.rs回答另一个问题你的 Claude Code 会话里有多少 bash 命令实际上走了 RTK流程通过ClaudeProvider::discover_sessions(None, Some(30))发现最近 30 天的会话 JSONL过滤掉 subagent 文件路径含subagents按修改时间降序取前 10 个对每个会话提取 bash 命令用count_rtk_commands()统计“被覆盖”的命令命令以rtk开头或者按classify_command()判定会被 hook 重写为 RTK 命令Classification::Supported。链式命令如cd ./path rtk ls先用split_command_chain拆分再逐段判定与 discover 模块行为一致——这个判定复用 src/discover/ 的规则注册表输出表含 Session ID8 字符前缀、日期Today/Yesterday/Nd ago、Cmds、RTK 数、Adoption 百分比与进度条、输出 token 量最后一行给出平均采用率并提示运行rtk discover寻找遗漏机会。adoption_pct rtk_cmds / total_cmds × 100分母为 0 时安全返回 0。与 discover 的分工已省下的 vs 漏掉的analytics 只呈现“已发生”的指标。若想计算那些绕过 RTK 运行的命令“损失”了多少 token那是rtk discover的职责见 docs/guide/analytics/discover.md 与 src/discover/README.md——rtk session的输出尾部也会给出这条提示。两个模块共享discover/的会话解析与命令分类基础设施但 discover 做的是“反事实”扫描不属于 analytics 的只读呈现范畴。开发指南如何新增一个 analytics 视图README 给出的四步扩展流程src/analytics/README.md值得原样保留在src/analytics/下新建*_cmd.rs文件通过core/tracking现有的TrackingDbAPI 查询所需指标在 src/main.rs 的Commands枚举中注册命令现有注册点analytics::gain::run(...)、analytics::cc_economics::run(...)、analytics::session_cmd::run(...)均在 main.rs 的命令分发处添加#[cfg(test)]单元测试使用样例 tracking 数据。并重申约束analytics 模块对 tracking 数据库只读永不修改它。若要写库模块应放在core/或cmds/。这个约束在源码中可以被验证——gain.rs等文件全部经由Tracker的get_*查询方法访问数据唯一例外是--reset显式调用tracker.reset_all()而这属于用户显式请求的维护操作。小结语义边界决定指标解读回顾 src/analytics/README.md 的定义analytics 模块的价值在于三点收敛单一数据源所有节省指标来自同一个 SQLite tracking 库由core/tracking写入、analytics 只读消费聚合口径bytes / 4、savings_pct语义全局一致多视角呈现gain给 token 视角cc-economics给成本视角用 API 价格比折算主指标为加权输入 CPTsession给采用率视角诚实的不确定性从 “bytes/4 不是计费 token” 的声明到 quota 的“数量级参考”标注再到 blended/active CPT 的高低估标签每个可能误导的输出处都有显式免责声明。如果你要基于这些指标做仪表盘或 CI 报表最稳妥的姿势是用rtk gain --all --format json/rtk cc-economics --all --format json取数按本文的字段语义尤其savings_pct是 bash 输出字节比解读并避免把估算 token 数直接对账到供应商账单。【免费下载链接】rtkCLI proxy that reduces LLM token consumption by 60-90% on common dev commands. Single Rust binary, zero dependencies项目地址: https://gitcode.com/GitHub_Trending/rtk4/rtk创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门