9Router Quota Tracking 深度指南:实时 Token 监控、成本估算与预警
发布时间:2026/9/11 21:49:11 作者:尧图编辑部 阅读量:1,286

9Router Quota Tracking 深度指南实时 Token 监控、成本估算与预警【免费下载链接】9routerUnlimited FREE AI coding. Connect Claude Code, Codex, Cursor, Cline, Copilot, Antigravity to FREE Claude/GPT/Gemini via 40 providers. Auto-fallback, RTK -40% tokens, never hit limits.项目地址: https://gitcode.com/GitHub_Trending/9r/9router本篇技术指南以 9Router 的 Quota Tracking配额追踪功能为核心讲解如何通过 Dashboard 与 HTTP API 实时追踪所有 Provider 的 token 消耗、监控 quota 上限与重置时间、估算付费支出并在额度耗尽前收到预警。读完本文你将掌握 9Router 的配额/用量数据从请求 → 提取 → 规范化 → 持久化 → 展示的完整链路能够配置预算告警与成本异常检测并学会利用 Combo 顺序优化来把每月 AI 编码成本压到最低。功能总览9Router 为接入的每一个 Provider 提供全维度的 quota 追踪能力实时 token 消耗—— 查看每次请求使用的 token 数输入/输出/缓存/思考Quota 限制与剩余量—— 对照 provider 官方限额追踪使用进度重置倒计时—— 明确知道 quota 何时刷新滚动窗口 / 每日 / 每周 / 每月成本估算—— 为付费 tier 精确计算开销区分普通输入、缓存读取与缓存写入价格月度报告—— 分析长期使用模式与成本结构告警与通知—— 在到达限制之前获得预警支持 Dashboard / 邮件 / Webhook从源码结构看这套能力由三层支撑open-sse/utils/usageTracking.jsusage 提取与规范化、open-sse/services/usage/各 Provider 的 quota 拉取 handler以及src/lib/db/repos/usageRepo.js用量持久化与统计聚合。Dashboard 概览Quota 汇总卡片9Router Dashboard 的首页Dashboard → Home → Quota Overview以卡片形式汇总每个连接Connection的配额状态。以文档中的典型展示为例Dashboard → Home → Quota Overview ┌─────────────────────────────────────────────┐ │ Claude Code (cc/) │ │ ████████████░░░░░░░░ 2.5h / 5h (50%) │ │ Resets in: 2h 30m │ │ Cost: $0 (subscription) │ └─────────────────────────────────────────────┘ ┌─────────────────────────────────────────────┐ │ Gemini CLI (gc/) │ │ ████████░░░░░░░░░░░░ 450 / 1000 (45%) │ │ Daily reset in: 18h 30m │ │ Monthly: 45K / 180K (25%) │ │ Cost: $0 (free tier) │ └─────────────────────────────────────────────┘ ┌─────────────────────────────────────────────┐ │ GLM-4.7 (glm/) │ │ ██████████████░░░░░░ 7M / 10M tokens (70%) │ │ Resets: Daily 10:00 AM (in 5h 35m) │ │ Cost today: $4.20 │ └─────────────────────────────────────────────┘ ┌─────────────────────────────────────────────┐ │ MiniMax M2.1 (minimax/) │ │ ████████████████░░░░ 4M / 5M tokens (80%) │ │ Rolling 5h window │ │ Cost (5h): $0.80 │ └─────────────────────────────────────────────┘ ┌─────────────────────────────────────────────┐ │ iFlow (if/) │ │ ████████████████████ Unlimited │ │ Cost: $0 (free forever) │ └─────────────────────────────────────────────┘卡片的核心信息维度包括已用 / 总量百分比、剩余百分比、重置时间或倒计时resets in ...、成本归属订阅 $0 / 免费 tier $0 / 按量计费金额。对应源码中的渲染层位于 src/app/(dashboard)/dashboard/usage/components/ProviderLimits/QuotaTable.js/dashboard/usage/components/ProviderLimits/QuotaTable.js#L152-L205)每一行 quota 数据渲染进度条quota.remaining驱动的宽度、used / total总量为 0 时显示∞、剩余百分比按剩余量分级配色getColorClasses以及重置倒计时formatResetTime。特别地recurring标志控制文案 —— 周期性配额显示in 5h 35m而一次性/赠量包bonus pack会显示expires in ...避免把硬性过期误读为循环刷新。实时 Token 消耗追踪逐请求追踪Dashboard → Activity → Recent Requests页面为每次请求记录完整的 usage 明细Request #1234 Model: cc/claude-opus-4-5-20251101 Timestamp: 2026-02-04 04:15:32 Tokens: Input: 1,250 tokens Output: 850 tokens Total: 2,100 tokens Cost: $0 (subscription quota) Duration: 3.2s Status: ✅ Success实时用量监视器Dashboard → Live Monitor展示正在进行的请求的流式统计Current request: Model: glm/glm-4.7 Tokens streamed: 450 / ~800 estimated Cost so far: $0.0009 Duration: 1.8s这里的实时能力与 src/lib/db/repos/usageRepo.js 中的trackPendingRequest相关它以global._pendingRequests按模型 / 按账号两级聚合追踪在途请求配合 60 秒超时清理与节流后的statsEmitter事件推送前端刷新这正是 Live Monitor 数据的来源。按模型拆解 TokenDashboard → Analytics → Token Usage提供按模型维度的用量视图Today (Feb 4, 2026): cc/claude-opus-4-5: 15M tokens ($0, subscription) glm/glm-4.7: 8M tokens ($4.80) if/kimi-k2-thinking: 3M tokens ($0, free) Total: 26M tokens Cost: $4.80源码级原理usage 的提取与规范化为什么不同 providerClaude / OpenAI / Gemini / Ollama……上报的 usage 结构千差万别最终却能统一聚合关键在于 open-sse/utils/usageTracking.js 中的三个函数extractUsage(chunk)usageTracking.js识别各协议的事件结构并提取 token 字段 —— Claude 的message_start/message_delta事件、OpenAI Responses API 的response.completed、OpenAI 兼容格式含 DeepSeek 的prompt_cache_hit_tokens、Gemini/Antigravity 的usageMetadata乃至 Ollama NDJSON 的prompt_eval_count/eval_count。mergeUsage(prev, next)usageTracking.jsAnthropic 把 usage 拆在两个事件里message_start携带真实输入缓存、message_delta携带累计输出因此必须按字段取最大值合并而不是覆盖。canonicalizeUsage(usage)usageTracking.js把各类格式归一到统一约定 ——prompt_tokens为包含缓存读取与缓存写入的输入总量cached_tokens为缓存读取子集cache_creation_input_tokens为缓存写入子集。Claude 路径会把缓存字段折叠进 prompt 并置cached_tokens从而保证幂等重复执行不会重复累加。当 provider 不返回 usage 时9Router 还会兜底估算estimateInputTokens按 JSON 序列化后约每 4 字符 1 token 估算输入estimateOutputTokens按输出长度估算addBufferToUsage为结果追加 2000 token 缓冲以预防上下文截断usageTracking.js。相关的缓存语义与成本正确性由测试 tests/unit/cached-token-e2e.test.js 与 tests/unit/cached-token-usage.test.js 专门验证。Quota 限制与重置时间9Router 按 provider 的类型区分三种配额模型文档逐一给出了限额与重置规则订阅型 ProviderClaude CodePro/MaxQuota type: Time-based (5-hour rolling) Limit: 5 hours of usage Reset: Rolling 5-hour window Weekly refresh Tracking: Usage time per model Dashboard shows: Opus: 2.5h / 5h used Sonnet: 1.2h / 5h used Haiku: 0.8h / 5h used Weekly reset: Every Monday 00:00 UTCOpenAI CodexPlus/ProQuota type: Time-based (5-hour rolling) Limit: 5 hours (Plus) / 10 hours (Pro) Reset: Rolling 5-hour window Weekly refresh Dashboard shows: GPT-5.2 Codex: 3.5h / 5h used Resets in: 1h 30mGemini CLI免费Quota type: Request count Monthly tokens Daily limit: 1,000 requests Monthly limit: 180,000 completions Reset: Daily 00:00 UTC Monthly 1st Dashboard shows: Today: 450 / 1,000 requests (45%) This month: 45K / 180K completions (25%) Daily reset in: 18h 30m Monthly reset in: 26 daysGitHub CopilotQuota type: Monthly usage Limit: Varies by plan Reset: 1st of each month Dashboard shows: Usage: 60% of monthly quota Resets: March 1, 2026 (in 25 days)低价型 ProviderGLM-4.7Quota type: Daily token limit Limit: 10M tokens/day (Coding Plan) Reset: Daily 10:00 AM Beijing Time (UTC8) Dashboard shows: Used: 7M / 10M tokens (70%) Remaining: 3M tokens Resets in: 5h 35m Cost today: $4.20MiniMax M2.1Quota type: Rolling 5-hour window Limit: 5M tokens per 5 hours Reset: Continuous rolling window Dashboard shows: Used (5h): 4M / 5M tokens (80%) Oldest usage expires in: 45m Cost (5h): $0.80Kimi K2Quota type: Monthly subscription Limit: 10M tokens/month ($9 flat) Reset: Monthly on subscription date Dashboard shows: Used: 6M / 10M tokens (60%) Resets: Feb 15, 2026 (in 11 days) Cost: $9/month (prepaid)免费型 ProvideriFlow / Qwen / KiroQuota type: Unlimited (rate-limited) Limit: No hard limit Reset: N/A Dashboard shows: Used today: 5M tokens Cost: $0 (free forever) Status: ✅ Available源码级原理quota 数据从哪来Quota 数据并非拍脑袋计算而是由各 Provider 的官方 usage 接口实时拉取。调度中心是 open-sse/services/usage.js 中的USAGE_HANDLERS映射表claude → getClaudeUsage、gemini-cli → getGeminiUsage、glm → getGlmUsage、minimax → getMiniMaxUsage、grok-cli → getGrokCliUsage等覆盖 OAuth 型与 API Key 型两类认证。Claudeopen-sse/services/usage/claude.js优先调用 OAuth usage 端点读取five_hour5 小时滚动窗口与seven_day7 天周窗口以及seven_day_sonnet/seven_day_opus等模型级窗口把官方返回的utilization已用百分比转换为{ used, total: 100, remaining, resetAt }结构遇到 429 会对该 token 冷却 3 分钟OAUTH_429_COOLDOWN_MS并回退到旧的 settings org usage 端点。GLMopen-sse/services/usage/misc.js按glm/glm-cn区分国际与国内区域请求 quota 端点后筛选TOKENS_LIMIT类型的 limit读取percentage已用百分比与nextResetTime下次重置时间戳填充 session quota —— 这正是文档中Resets: Daily 10:00 AM (UTC8)字段的来源。grok-cliopen-sse/services/usage/grokCliQuotaFrame.jsxAI 没有公开 REST quota 接口9Router 直接解码 gRPC-web 的GetGrokCreditsConfig响应帧从 protobuf 嵌套消息中提取usage ratio已用比例 0~1与 credit-pool 重置时间戳得到{ percentUsed, resetAt }。各 handler 返回的resetAt统一经过 shared.js 的 parseResetTime 归一化兼容 Date 对象、秒级/毫秒级 Unix 时间戳自动判断 1e12为秒、纯数字字符串与 ISO 字符串最终统一输出 ISO 格式供前端倒计时渲染。成本估算实时成本追踪Dashboard → Costs → Today按订阅 / 付费 / 免费三档归并当日开销Subscription providers: $0 Claude Code: 15M tokens ($0, included) Gemini CLI: 3M tokens ($0, free tier) Paid providers: $4.80 GLM-4.7: 8M tokens ($4.80) Input: 6M × $0.60/1M $3.60 Output: 2M × $2.20/1M $4.40 Total: $4.80 Free providers: $0 iFlow: 3M tokens ($0) Total today: $4.80月度支出报告Dashboard → Costs → This Month提供按周拆分的月度视图与成本结构分析Week 1 (Feb 1-7): Subscription: $0 (80M tokens) Paid: $15.20 (25M tokens) Free: $0 (10M tokens) Total: $15.20 Week 2 (Feb 8-14): Subscription: $0 (75M tokens) Paid: $12.80 (20M tokens) Free: $0 (8M tokens) Total: $12.80 Month to date: $28.00 Projected (30 days): ~$120 Breakdown by provider: GLM-4.7: $22.00 (78%) MiniMax M2.1: $6.00 (22%) Average cost per 1M tokens: $0.62 Savings vs ChatGPT API: 97% ($4,000 → $120)成本预测Dashboard → Costs → Projections基于最近 7 天数据外推月度开销Based on last 7 days usage: Daily average: 50M tokens Daily cost: $4.50 Monthly projection: Tokens: 1,500M (1.5B) Cost: $135 Breakdown: Subscription: 900M tokens ($0) GLM-4.7: 450M tokens ($90) MiniMax: 120M tokens ($24) Free: 30M tokens ($0) Budget status: Daily limit: $5 → 90% used today Monthly limit: $150 → 90% projected ⚠️ Warning: May exceed monthly budget源码级原理成本如何被计算成本计算有单一事实来源open-sse/providers/pricing.js。getPricingForModel(provider, model)pricing.js按三级回退链解析模型单价 —— ① provider 专属定价表PROVIDER_PRICING② 全局模型定价表MODEL_PRICING如claude-opus-4-5-20251101为 input $5.00 / output $25.00 / cached $0.50 / cache_creation $6.25③ 通配符模式定价PATTERN_PRICING。模型名带 vendor 前缀如deepseek/deepseek-chat时自动剥离前缀再查表。calculateCostFromTokens(tokens, pricing)pricing.js按规范化的 usage 结构分档计价 —— 普通输入按input单价、缓存读取按cached单价、缓存写入按cache_creation单价。由于prompt_tokens已包含缓存部分计算前先从输入中减去cached cache_creation的 token 数避免缓存 token 被重复按全价计费。在持久化层usageRepo.js 的 calculateCost 把每条请求的 tokens 交给calculateCostFromTokens结算随后按日粒度 多维聚合落库aggregateEntryToDay同时维护byProvider、byModel、byAccount、byApiKey、byEndpoint五组计数器usageRepo.js为后续 Analytics 的各种切面统计提供数据基础。Usage 仪表盘概览统计Dashboard → Analytics → Overview汇总多时间跨度核心指标Today (Feb 4, 2026): Requests: 1,234 Tokens: 26M Cost: $4.80 Avg response time: 2.1s This week: Requests: 8,456 Tokens: 180M Cost: $28.00 Success rate: 99.2% This month: Requests: 15,234 Tokens: 320M Cost: $52.00 Top model: cc/claude-opus-4-5 (45%)按模型维度Dashboard → Analytics → Models展示 Top 模型排名与成本归属Top models (this month): 1. cc/claude-opus-4-5: 145M tokens (45%) 2. glm/glm-4.7: 95M tokens (30%) 3. if/kimi-k2-thinking: 50M tokens (16%) 4. minimax/MiniMax-M2.1: 20M tokens (6%) 5. gc/gemini-3-flash: 10M tokens (3%) Cost breakdown: cc/claude-opus: $0 (subscription) glm/glm-4.7: $45.00 if/kimi-k2-thinking: $0 (free) minimax/MiniMax-M2.1: $7.00 gc/gemini-3-flash: $0 (free)按时间维度Dashboard → Analytics → Timeline提供小时级热力分布Hourly usage (today): 00:00 - 01:00: 0.5M tokens 01:00 - 02:00: 0.2M tokens ... 08:00 - 09:00: 3.2M tokens (peak) 09:00 - 10:00: 2.8M tokens ... 23:00 - 00:00: 0.8M tokens Peak hours: 08:00 - 12:00 (morning coding) Low hours: 00:00 - 06:00 (night)按 Combo 维度Dashboard → Analytics → Combos把用量归因到具体的 Combo 链路premium-coding: Requests: 456 Tokens: 12M Cost: $2.40 Breakdown: cc/claude-opus: 8M tokens (67%, $0) glm/glm-4.7: 3M tokens (25%, $1.80) minimax/MiniMax-M2.1: 1M tokens (8%, $0.20) budget-combo: Requests: 234 Tokens: 6M Cost: $1.20 Breakdown: glm/glm-4.7: 4M tokens (67%, $2.40) if/kimi-k2-thinking: 2M tokens (33%, $0)这些统计视图的数据来源于 src/lib/usageDb.js 重新导出shim的新 SQLite 数据库层src/lib/db/其中的getUsageStats、getChartData、getUsageHistory分别支撑概览卡片、图表与历史明细而saveRequestUsage在每次请求结束时把规范化后的 tokens 与成本写入usageHistory表形成实时写入 → 定时聚合 → 多维度查询的完整闭环。告警与通知Quota 告警Dashboard → Settings → Alerts支持多级阈值与多种投递渠道Quota warnings: ✅ Alert at 80% quota used ✅ Alert at 90% quota used ✅ Alert when quota exhausted ✅ Notify when quota resets Delivery: ✅ Dashboard notification ✅ Email (optional) ✅ Webhook (optional)示例通知⚠️ Claude Code quota 80% used 2.5h remaining (resets in 1h 30m) ⚠️ GLM-4.7 quota 90% used 1M tokens remaining (resets in 5h) ✅ Gemini CLI quota reset 1,000 requests available (daily limit)预算告警Dashboard → Settings → Budget Alerts为每日 / 每月预算配置百分比阈值并在超额时自动切换到免费 tierDaily budget: $5 ✅ Alert at 80% ($4) ✅ Alert at 100% ($5) ✅ Auto-switch to free tier when exceeded Monthly budget: $150 ✅ Alert at 50% ($75) ✅ Alert at 80% ($120) ✅ Alert at 100% ($150)示例通知⚠️ Daily budget 80% used $4.00 / $5.00 spent today ⚠️ Monthly budget 50% reached $75 / $150 spent this month Projected: $135 (within budget) Daily budget exceeded $5.20 / $5.00 spent today Auto-switched to free tierAuto-switch 到免费 tier这一行为与 9Router 的智能路由机制联动 —— 当 quota 耗尽或预算触顶时请求自动 fallback 到路由链中的下一个可用 provider详见本文末相关文档链接。成本异常检测Dashboard → Settings → Anomaly Detection主动识别异常支出模式✅ Detect unusual spending patterns ✅ Alert on cost spikes (2× daily average) ✅ Warn on quota exhaustion patterns Example alert: ⚠️ Cost spike detected Today: $12.50 (2.5× daily average) Reason: High GLM-4.7 usage (20M tokens) Suggestion: Check if primary models quota-exhausted这类检测之所以可行正是因为有usageHistory中的逐请求成本数据可以计算日均成本基线从而识别超过 2 倍的突增。最佳实践1. 每日检查 QuotaDaily routine: 1. Check dashboard quota overview (30 seconds) 2. Review reset times 3. Plan usage around quota availability示例Morning check: ✅ Claude Code: 5h available (fresh reset) ✅ Gemini CLI: 1K requests available ⚠️ GLM-4.7: 2M tokens left (resets 10AM) Action: Use Claude Code for morning work2. 设置预算上限Dashboard → Settings → Budget: Daily: $5 (prevents overspending) Monthly: $150 (aligns with budget)效果达到上限后自动切换到免费 tier从机制上杜绝超支。3. 优化 Combo 用量结构Dashboard → Analytics → Combos: Review which models are used most Adjust combo order to minimize costs示例Current: cc/claude-opus → glm/glm-4.7 80% via Claude (good) 20% via GLM ($12/month) Optimized: gc/gemini-3-flash → cc/claude-opus → glm/glm-4.7 50% via Gemini (free) 40% via Claude (subscription) 10% via GLM ($6/month) Savings: $6/month4. 掌握各 Provider 的重置节奏Dashboard → Quota → Reset Schedule: Claude Code: 5h rolling Weekly Monday Gemini CLI: Daily 00:00 UTC Monthly 1st GLM-4.7: Daily 10:00 AM Beijing Time MiniMax: Rolling 5h window策略优先在 quota 刚刚刷新的时间段使用对应 provider例如 GLM-4.7 在北京时间每天 10:00 重置后使用让免费额度/订阅额度发挥最大价值。5. 定期复盘月度报告Dashboard → Analytics → Monthly Report: Total tokens: 1.5B Total cost: $120 Savings: 97% vs ChatGPT API Insights: - 60% usage via subscriptions ($0) - 30% via GLM ($90) - 10% via free tier ($0) Optimization: - Increase Gemini CLI usage (free) - Reduce GLM usage (expensive)API 访问除了 Dashboard9Router 还通过本地 HTTP API 暴露 quota 与 usage 数据便于脚本化监控与自动化集成。获取 Quota 状态GET http://localhost:20128/api/quota Authorization: Bearer your-api-key Response: { providers: [ { id: cc, name: Claude Code, quota: { used: 2.5, limit: 5, unit: hours, percentage: 50 }, reset: { type: rolling, window: 5h, nextReset: 2026-02-04T06:45:00Z }, cost: { today: 0, month: 0, currency: USD } }, { id: glm, name: GLM-4.7, quota: { used: 7000000, limit: 10000000, unit: tokens, percentage: 70 }, reset: { type: daily, time: 10:00 AM UTC8, nextReset: 2026-02-04T10:00:0008:00 }, cost: { today: 4.20, month: 52.00, currency: USD } } ] }注意响应的结构差异Claude Code 的 quota 单位为hoursused: 2.5 / limit: 5而 GLM-4.7 的单位为tokensused: 7000000 / limit: 10000000reset.type也从rolling与daily两个维度区分了两种配额模型。这正是文档所描述的聚合端点。获取 Usage 统计GET http://localhost:20128/api/usage?periodtoday Authorization: Bearer your-api-key Response: { period: today, date: 2026-02-04, summary: { requests: 1234, tokens: 26000000, cost: 4.80 }, byModel: [ { model: cc/claude-opus-4-5, requests: 456, tokens: 15000000, cost: 0 }, { model: glm/glm-4.7, requests: 234, tokens: 8000000, cost: 4.80 } ] }源码级说明真实的路由实现从源码看连接级connection-level的 quota 拉取由 src/app/api/usage/[connectionId]/route.js 实现其流程为按connectionId从数据库取出连接记录不存在返回 404校验认证类型仅 OAuth 连接以及USAGE_APIKEY_PROVIDERS白名单内的 API Key 型连接glm / minimax / kiro 等apikey与api_key两种拼写均接受可获取 usage对 OAuth 连接先执行凭证刷新refreshAndUpdateCredentials仅在needsRefresh时触发再调用getUsageForProvider从 provider 官方接口拉取配额若返回的消息命中过期/未授权特征AUTH_EXPIRED_PATTERNS则强制刷新令牌并重试一次route.js避免因 token 过期导致 quota 数据永久拉取失败。对于文档中/api/usage与/api/quota这类聚合端点可以推断其数据来源即为上述连接级 usage 之上叠加src/lib/db层的持久化统计getUsageStats、getChartData聚合而来periodtoday等参数对应PERIOD_MS中的24h、7d、30d、60d窗口见 usageRepo.js。故障排查问题Quota 显示 0% 但请求仍然失败解决步骤检查 provider 连接状态Dashboard → Providers确认 API keys 有效查看 provider 服务状态页确认是否宕机尝试重新连接 OAuth providers从源码角度补充若 handler 因鉴权失败返回了含 expired / authentication / unauthorized 等关键字的 messageisAuthExpiredMessageAPI 层会自动触发强制刷新重试route.js而 Claude 的 usage 端点若频繁 429会触发 3 分钟冷却并回退到旧端点claude.js——因此0% 但请求失败时优先检查凭证与网络连通性而非配额本身。问题成本估算不准解决步骤进入 Dashboard → Settings → Pricing核对各 provider 的单价是否与官方当前费率一致provider 调价后及时更新定价仍有偏差时联系支持问题重置时间不更新解决步骤刷新 DashboardF5检查系统时间是否正确核对时区设置如 GLM 的 10:00 AM 为北京时间 UTC8仍异常则重启 9Router问题收不到告警解决步骤进入 Dashboard → Settings → Alerts确认邮箱地址填写正确检查垃圾邮件文件夹使用 Send Test 按钮测试通知链路相关文档Smart Routing —— 基于 quota 的自动 fallback 路由Combos —— 创建自定义 fallback 链二者与 Quota Tracking 构成闭环Quota Tracking 负责看得见Smart Routing 与 Combos 负责用得好——当主 provider 配额耗尽或预算触顶时请求自动沿路由链降级实现永不中断、成本可控的 AI 编码体验。【免费下载链接】9routerUnlimited FREE AI coding. Connect Claude Code, Codex, Cursor, Cline, Copilot, Antigravity to FREE Claude/GPT/Gemini via 40 providers. Auto-fallback, RTK -40% tokens, never hit limits.项目地址: https://gitcode.com/GitHub_Trending/9r/9router创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考