独家合作CubenceAI 中转平台立减 10%访问

Dashboard 功能

活跃 Session

活跃 Session 页面提供了实时监控功能,让管理员能够查看当前正在进行的 API 请求会话,了解系统的实时运行状态。

功能概述

Session(会话)是 Claude Code Hub 中的核心概念。当用户通过 API 发起请求时,系统会为连续的对话分配一个唯一的 Session ID,用于:

  • 会话追踪:记录同一对话的多次请求
  • 供应商粘性:确保同一会话的请求路由到同一供应商,提高缓存命中率
  • 并发控制:限制单个会话的并发请求数

Session 生命周期

Session 默认有效期为 5 分钟。在此期间的请求会复用同一 Session,超过 5 分钟无活动后 Session 自动过期。

页面布局

活跃 Session 列表

页面顶部显示当前活跃的 Session 列表,包含以下信息:

列名说明
Session ID会话唯一标识(显示前 16 位)
用户发起请求的用户名称
密钥使用的 API 密钥名称
供应商当前绑定的供应商名称
模型请求使用的模型名称
请求数该 Session 累计的请求次数
输入 Token累计输入 Token 数量
输出 Token累计输出 Token 数量
费用累计费用(按系统设置的货币显示)
耗时Session 运行时长
操作查看详情按钮、终止按钮

非活跃 Session 列表

如果存在非活跃但尚未完全过期的 Session,页面会显示第二个列表区域。非活跃 Session 列表以半透明样式显示,并标注「不计入并发数」。

活跃与非活跃的区别

  • 活跃 Session:5 分钟内有请求活动,计入并发限制
  • 非活跃 Session:超过 5 分钟无活动,但 Redis 数据尚未完全清理,不计入并发限制

分页功能

活跃 Session 和非活跃 Session 列表均支持独立分页,方便浏览大量会话记录。

分页说明:

项目说明
每页数量固定每页显示 20 条记录(不可配置)
独立分页活跃和非活跃列表各自维护独立的页码
分页控件显示「当前页 / 总页数」格式
翻页操作点击左右箭头按钮切换上一页/下一页

分页状态在自动刷新时会保持不变,确保浏览体验的连续性。

批量终止 Session

活跃 Session 列表支持批量终止功能,方便管理员快速清理多个会话。

进入多选模式

点击列表右上角的「多选」按钮,进入多选模式。进入后:

  • 表格最左侧会出现复选框列
  • 表头显示全选/取消全选复选框
  • 右上角显示「已选择 N 个」计数器
  • 出现「终止选中」和「取消多选」按钮

选择操作

操作说明
单选点击行首的复选框选中/取消单个 Session
全选点击表头复选框选中当前列表所有 Session
取消全选再次点击表头复选框取消所有选择

批量终止

选中目标 Session 后,点击「终止选中」按钮执行批量终止:

  1. 系统验证每个 Session 的权限
  2. 对有权限的 Session 执行终止操作
  3. 清除相关缓存
  4. 显示操作结果

权限说明

用户角色可终止范围
管理员所有用户的 Session
普通用户仅自己创建的 Session

访问控制

仅管理员可访问

v0.3.33 版本起,Session 管理页面(/dashboard/sessions仅对管理员开放。普通用户访问时会被自动重定向到仪表盘主页。

页面访问权限

用户角色页面访问说明
管理员允许可以访问完整的 Session 管理功能
普通用户禁止访问时重定向到 /dashboard

管理员功能权限

管理员可以执行以下操作:

功能范围
查看活跃 Session 列表所有用户的 Session
查看 Session 详情所有 Session
批量终止 Session所有 Session
查看 Session 消息所有 Session
查看代理状态所有 Session

API 级别权限(纵深防御)

除页面级控制外,后端 API 也实现了数据隔离作为安全纵深防御:

API 功能管理员普通用户(直接调用 API)
获取 Session 列表返回所有用户数据仅返回自己的数据
获取 Session 详情可查看所有 Session仅可查看自己的 Session
获取 Session 消息可查看所有 Session仅可查看自己的 Session
终止 Session可终止所有 Session仅可终止自己的 Session

双重防护

API 级别的权限过滤是安全纵深防御的一部分,防止通过直接调用 API 绕过页面权限检查。

Session 消息可能包含敏感信息。管理员查看用户 Session 消息时应遵守组织的隐私政策。

结果反馈

批量终止完成后,系统会显示详细的操作结果:

反馈类型说明
成功提示显示成功终止的 Session 数量
无权限警告显示因权限不足而跳过的数量
不存在警告显示因 Session 已过期或不存在而跳过的数量
失败警告显示因 Redis 错误等原因失败的数量

注意事项

  • 非活跃 Session 不支持多选终止(已自动过期)
  • 正在终止过程中的 Session 会显示加载状态
  • 终止操作不可撤销

自动刷新

页面默认每 3 秒自动刷新一次数据。刷新时,表格右上角会显示「刷新中...」提示。

Session 详情页

点击任意 Session 行的「查看」按钮,可进入该 Session 的详情页面。

三栏布局

详情页采用三栏布局设计:

区域位置功能
请求列表侧边栏左侧显示 Session 内所有请求,支持切换查看
消息详情区域中间显示选中请求的完整内容
统计信息卡片右侧显示 Session 概览、Token 使用等统计

请求列表侧边栏

左侧侧边栏显示该 Session 内的所有请求记录,支持以下功能:

请求信息展示

元素说明
状态图标绿色勾表示成功(2xx),红色叹号表示错误,旋转图标表示进行中
请求序号显示为 #N 格式,N 为请求在 Session 内的序号
相对时间显示距今时间(如 <1m5m2h1d
模型名称本次请求使用的模型
状态码HTTP 响应状态码(200、400、500 等)

排序功能

请求列表支持按时间排序,点击侧边栏标题栏右侧的排序按钮(ArrowDownUp 图标)可切换排序方式:

排序方式说明
正序(asc)按时间从早到晚排列,最早的请求显示在最上方
倒序(desc)按时间从晚到早排列,最新的请求显示在最上方

排序切换行为

切换排序方式时,分页会自动重置到第一页,确保用户始终从列表开头浏览。

交互操作

  • 点击任意请求行切换到该请求的详情
  • 侧边栏支持分页,每页显示 20 条记录
  • 点击左上角折叠按钮可收起侧边栏,仅显示请求数量

URL 参数驱动

请求切换通过 URL 参数 ?seq=N 实现,其中 N 为请求序号。这意味着:

  • 可以直接通过 URL 访问特定请求:/dashboard/sessions/{sessionId}/messages?seq=3
  • 浏览器前进/后退按钮可以在不同请求间导航
  • 可以分享特定请求的链接给其他用户

消息详情区域

中间区域显示选中请求的完整内容:

客户端信息

显示请求的 User-Agent 信息,帮助识别客户端类型(如 Claude Code CLI 版本、操作系统等)。

Tab 切换视图

v0.3.37 新增

消息详情区域支持通过 Tab 切换查看不同类型的数据,包括请求头、请求体、响应头、响应体四个选项卡。

Tab 名称内容说明
请求头HTTP 请求头信息,以纯文本格式展示
请求体完整的请求 messages 数据,以格式化 JSON 展示
响应头HTTP 响应头信息,以纯文本格式展示
响应体API 返回的完整响应,以格式化 JSON 展示

请求头追踪

v0.3.38 进一步完善了请求头追踪功能,确保请求过滤器修改的 header 能够在 Session 详情中正确显示。

请求体(Request Body)

完整的请求 messages 数据,以格式化的 JSON 展示。包含:

  • 系统提示词(system message)
  • 用户消息(user message)
  • 助手回复(assistant message)
  • 工具调用(tool calls)等

响应体(Response Body)

API 返回的完整响应体,以格式化的 JSON 展示。包含:

  • 模型回复内容
  • Token 使用统计
  • 停止原因等元数据

右侧信息卡片

右侧显示四个统计信息卡片:

1. Session 概览

字段说明
总请求数Session 内累计的请求次数
首次请求时间Session 第一次请求的时间戳
最后请求时间Session 最后一次请求的时间戳
总耗时所有请求的累计耗时

2. 供应商和模型

字段说明
供应商列表Session 中使用过的所有供应商
模型列表Session 中使用过的所有模型

3. Token 使用

字段说明
总输入 Token所有请求的输入 Token 总和
总输出 Token所有请求的输出 Token 总和
缓存创建 Token缓存创建消耗的 Token
缓存读取 Token从缓存读取节省的 Token
Token 总计上述所有 Token 之和

4. 费用信息

显示该 Session 的累计费用,按系统配置的货币单位显示。

操作按钮

详情页顶部提供以下操作:

按钮功能
返回返回 Session 列表页
复制 Messages将当前请求消息复制到剪贴板
下载 Messages将当前请求消息保存为 JSON 文件
复制响应将当前响应内容复制到剪贴板
终止 Session强制终止该 Session(会弹出确认对话框)

需要启用消息存储

要查看请求消息和响应内容,需要在环境变量中设置 STORE_SESSION_MESSAGES=true。启用后会增加 Redis 内存使用,且可能包含敏感信息,请谨慎评估后再开启。

Session 与供应商粘性

Session 机制与供应商粘性(Session Stickiness)紧密相关:

  1. 首次请求:系统根据权重和优先级选择供应商,并将 Session 绑定到该供应商
  2. 后续请求:同一 Session 的请求优先路由到已绑定的供应商
  3. 故障转移:如果绑定的供应商不可用(熔断或禁用),系统会自动切换到其他供应商并更新绑定

这种机制的优势:

  • 提高缓存命中率:连续对话发送到同一供应商,供应商端可利用上下文缓存
  • 降低成本:缓存命中可减少输入 Token 计费
  • 保证一致性:避免对话上下文在不同供应商间频繁切换

Session 状态说明

Session 有三种状态:

状态说明
in_progress请求进行中
completed请求已完成
error请求出错

使用场景

监控系统负载

通过活跃 Session 数量和请求频率,可以了解当前系统的负载情况。

排查问题

当用户反馈请求异常时,可以通过 Session ID 快速定位到具体的请求记录,查看完整的请求和响应内容。

费用审计

查看各 Session 的 Token 使用和费用,了解资源消耗情况。

强制终止异常会话

当发现某个 Session 占用过多资源或存在异常行为时,可以通过单个终止或批量终止功能强制结束会话。

相关配置

以下环境变量与 Session 功能相关:

变量名默认值说明
SESSION_TTL300Session 过期时间(秒)
STORE_SESSION_MESSAGESfalse是否存储请求消息到 Redis
SHORT_CONTEXT_THRESHOLD2短上下文阈值(用于并发检测)
ENABLE_SHORT_CONTEXT_DETECTIONtrue是否启用短上下文检测

下一步

Previous
使用日志