Dashboard 功能
使用日志
使用日志页面提供了完整的 API 请求历史记录查询功能,让管理员和用户能够追踪、分析和排查所有通过 Claude Code Hub 的请求。
功能概述
使用日志记录了每一次 API 请求的详细信息,包括:
- 请求元数据:时间、用户、API Key、供应商、模型
- Token 统计:输入 Token、输出 Token、缓存 Token
- 成本信息:请求费用(支持多货币显示)
- 性能数据:请求耗时
- 状态信息:HTTP 状态码、错误详情、供应商决策链
权限说明
- 管理员:可查看所有用户的日志,并按用户、供应商等维度筛选
- 普通用户:仅能查看自己的日志记录
页面布局
统计卡片
页面顶部显示四个统计卡片,汇总当前筛选条件下的数据:
| 卡片 | 说明 |
|---|---|
| 总请求数 | 符合筛选条件的请求总数 |
| 总金额 | 累计费用(按系统设置的货币显示) |
| 总 Token 数 | 输入 Token + 输出 Token 的总和 |
| 缓存 Token | 缓存写入 Token + 缓存读取 Token |
筛选器
筛选器区域支持多维度组合查询:
| 筛选项 | 说明 | 权限 |
|---|---|---|
| 日期范围 | 紧凑型日期范围选择器,支持快速选择和前后翻页 | 所有用户 |
| 用户 | 按用户筛选 | 仅管理员 |
| API Key | 按密钥筛选(联动用户选择) | 所有用户 |
| 供应商 | 按供应商筛选 | 仅管理员 |
| 模型 | 按模型名称筛选 | 所有用户 |
| Endpoint | 按 API 端点筛选 | 所有用户 |
| 状态码 | 按 HTTP 状态码筛选 | 所有用户 |
日期范围选择器
日期筛选器支持以下操作:
- 点击选择:打开双月日历视图,选择起始和结束日期
- 前后翻页:使用左右箭头按钮快速切换相同长度的时间段
- 重置:点击重置按钮清空日期筛选条件
日期使用本地时间,系统会根据服务器配置的 TZ 环境变量进行时区转换。
日志表格
表格展示每条请求的详细信息,共 12 列:
| 列名 | 说明 |
|---|---|
| 时间 | 相对时间显示(如「2 分钟前」) |
| 用户 | 发起请求的用户名称 |
| Key | 使用的 API 密钥名称 |
| 供应商 | 实际处理请求的供应商(支持决策链展示) |
| 模型 | 请求使用的模型(支持重定向显示) |
| 输入 Token | 请求的输入 Token 数量 |
| 输出 Token | 响应的输出 Token 数量 |
| 缓存写入 | Cache Creation Input Tokens |
| 缓存读取 | Cache Read Input Tokens |
| 成本 | 请求费用(6 位小数精度) |
| 耗时 | 请求处理时间(ms 或 s) |
| 状态 | HTTP 状态码(点击查看详情) |
自动刷新
页面默认启用自动刷新功能:
- 刷新间隔:每 3 秒自动获取最新数据
- 新增高亮:新增的日志记录会短暂高亮显示(800ms 动画)
- 手动刷新:点击刷新按钮可立即获取最新数据
- 暂停刷新:可通过开关暂停自动刷新
供应商决策链
当请求经历了故障转移或重试时,「供应商」列会显示完整的决策链信息。
单次请求成功
直接显示供应商名称。如果供应商配置了成本倍率(costMultiplier),会显示对应的倍率标签:
- 橙色标签:倍率 > 1.0(成本增加)
- 绿色标签:倍率 < 1.0(成本降低)
多次请求(故障转移)
显示供应商链路,点击可查看详细的决策过程:
Provider1(✗) → Provider2(✗) → Provider3(✓)
决策链记录包括:
- 会话复用判断
- 首次供应商选择逻辑
- 请求失败原因
- 重试选择过程
- 最终成功/失败状态
错误详情弹窗
点击「状态」列的状态码,可打开详情弹窗查看完整信息。
状态码颜色
| 状态码范围 | 颜色 | 说明 |
|---|---|---|
| 2xx | 绿色 | 请求成功 |
| 3xx | 蓝色 | 重定向 |
| 4xx | 黄色 | 客户端错误 |
| 5xx | 红色 | 服务器错误 |
| 进行中 | 灰色 | 请求尚未完成 |
弹窗内容
拦截信息(如果被拦截)
- 拦截类型:
sensitive_word(敏感词) - 拦截原因:匹配的敏感词、匹配类型
- 拦截类型:
Session 信息
- Session ID
- 「查看详情」按钮:跳转到 Session 消息详情页
请求信息
- Messages 数量
- User-Agent
- Endpoint
模型重定向(如果发生重定向)
- 原始模型 → 重定向后模型
- 计费模型标注
错误消息
- 格式化的错误详情
- 限流错误特殊样式
- 被过滤的供应商列表
供应商决策链时间线
- 完整的请求处理过程
- 每个步骤的时间戳
[0000ms] - 供应商选择逻辑
- 熔断器状态
- 错误详情
时间线示例
[0000ms] 开始处理请求
[0005ms] 检查会话绑定:无已绑定供应商
[0010ms] 首次选择供应商
- 选择方式:加权随机
- 候选池大小:3
- 选中:Provider-A (权重: 50, 优先级: 1)
[0015ms] 向 Provider-A 发起请求
[1234ms] Provider-A 请求失败
- 状态码:429
- 错误:Rate limit exceeded
[1240ms] 触发故障转移,重新选择供应商
- 排除:Provider-A
- 选中:Provider-B (权重: 30, 优先级: 1)
[1245ms] 向 Provider-B 发起请求
[2500ms] Provider-B 请求成功
- 状态码:200
---
总耗时:2500ms
特殊标记
非计费端点
某些端点(如 /v1/messages/count_tokens)不产生费用,这类请求在表格中以置灰背景显示。
被拦截请求
被敏感词过滤等规则拦截的请求,供应商列显示橙色「已拦截」标记。
模型重定向
当模型发生重定向时,可点击模型名称旁的箭头图标查看重定向详情:
- 原始请求模型
- 实际使用模型
- 计费依据模型(根据
billingModelSource配置)
相关配置
以下系统设置影响日志显示:
| 配置项 | 说明 |
|---|---|
TZ | 时区设置,影响时间筛选的时区转换 |
currencyDisplay | 货币显示设置(USD/CNY 等) |
billingModelSource | 计费模型来源(original/redirected) |
使用场景
费用审计
通过时间范围和用户筛选,查看特定时段或用户的 API 使用费用。
问题排查
当用户反馈请求异常时,可通过以下方式定位问题:
- 按用户和时间筛选相关请求
- 查看状态码和错误详情
- 分析供应商决策链,了解故障转移过程
- 跳转到 Session 详情查看完整请求内容
性能分析
通过耗时列和供应商决策链,分析请求的性能瓶颈:
- 单次请求耗时
- 故障转移带来的额外延迟
- 不同供应商的响应速度对比
供应商监控
结合供应商筛选和状态码筛选,监控特定供应商的服务质量:
- 错误率统计
- 常见错误类型
- 故障转移频率
下一步
- 活跃 Session - 查看当前正在进行的会话
- 排行榜 - 查看用户使用排名
- 日志设置 - 配置日志保留策略
