@f5-sales-demo/xcsh-stats 页面存档备份,存于互联网档案馆
AI使用统计的本地可观察仪表板.
特征
- 会话日志解析:从
~/.xcsh/agent/sessions/ - SQLite 聚合: 使用高效数据存储和查询
bun:sqlite - 网络仪表板: 图.js的实时可视化计量
- 递增同步: 只处理新/已修改的日志条目
跟踪到的量子
| 度量衡 | 计算 |
|---|---|
| 键/秒 | output_tokens / (duration / 1000) |
| 缓存率 | cache_read / (input + cache_read) * 100 |
| 错误率 | count(stopReason=error) / total_calls * 100 |
| 费用共计 | 总计 usage.cost.total |
| Avg 纬度 | 平均值 duration |
| TTFT 电话 | 平均值 ttft (时间到第一令牌) |
使用量
通过 CLI
# Start dashboard server (default: http://localhost:3847)
xcsh stats
# Custom port
xcsh stats --port 8080
# Print summary to console
xcsh stats --summary
# Output as JSON (for scripting)
xcsh stats --json
程序化
import { getDashboardStats, syncAllSessions } from "@f5-sales-demo/xcsh-stats";
// Sync session logs to database
const { processed, files } = await syncAllSessions();
// Get aggregated stats
const stats = await getDashboardStats();
console.log(stats.overall.totalCost);
console.log(stats.byModel[0].avgTokensPerSecond);
API 终点
| 终点 | 说明 |
|---|---|
GET /api/stats | 总体统计数据及所有细目 |
GET /api/stats/models | 按模式统计 |
GET /api/stats/folders | 每个文件夹/项目统计 |
GET /api/stats/timeseries | 小时时间序列数据 |
GET /api/sync | 触发同步并返回计数 |
数据存储
- 会话日志数字 :
~/.xcsh/agent/sessions/(JSONL档案) - 数据库数字 :
~/.xcsh/stats.db(SQLite) (英语)
盘子
网络仪表板提供:
- 总的衡量卡(要求、成本、缓存率、出错率、持续时间、信使)
- 显示请求和长期错误的时间序列图表
- 按模型分列的表格
- 每个文件夹的细分表
- 每30秒自动刷新一次
许可证
麻省理工学院