Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
5.0 KiB
5.0 KiB
日志与运行状态
界面第二轮(2026-10-06)起,侧栏「系统」只有三项:日志、运行状态、设置。原来的任务、审计、工作流引擎面板、计划页都并进日志页,旧地址自动跳转(apps/web/app/routes/console/redirects.ts)。
日志页 /console/logs
一份按时间倒序的列表,不新建表,查询时把四个来源合起来(apps/server/src/modules/logs/):
| 类型 | 来源 | 时间 | 对象 | 结果 |
|---|---|---|---|---|
任务 task |
引擎运行 openworkflow.workflow_runs |
创建时间 | 业务对象(下载任务、整理记录、订阅、定时任务…) | 进行中 / 成功 / 失败;取消、智能体超出预算或停止为警告 |
定时与自动 auto |
定时任务运行 scheduled_job_run(含智能体巡检)、智能体后台调查 agent_run(trigger=event,非子会话) |
开始时间 | 定时任务 / 会话 | 成功 / 失败 / 已跳过(信息)/ 进行中 |
登录 auth |
审计里 admin.*、api_key.*(登录、登录失败、退出、二次验证、Passkey、改密、API Key 增改撤) |
事件时间 | 审计目标 | 登录成功为成功,登录失败为警告,其余为信息 |
审计 audit |
其余审计事件 | 事件时间 | 审计目标 | 智能体操作被拒绝为警告,其余为信息 |
- 筛选(都写在 URL):
type、level(running / success / info / warn / error,可逗号多值)、since(1h / 24h / 7d / 30d)、q(标题、错误、动作、对象 ID、审计负载,不区分大小写)、objectType+objectId(同一对象的任务、定时任务运行与审计一起列出)、system=1。 - 例行记录缺省不列:没有业务对象的引擎运行、定时任务触发且成功的引擎运行、巡检 / 后台调查对应的引擎运行(在「定时与自动」里已有一条)、普通定时任务的成功 / 跳过运行。点「显示例行记录」或按对象筛选时列出。
- 分页:游标 = (时间, 日志 id),各来源各取 limit+1 再合并,逐页与一次取全顺序一致。
- 实时:页面默认连
GET /logs/stream(SSE,同一组筛选),服务端每 2 秒查一次最近 10 分钟,新日志和状态有变化的日志(任务从进行中变成完成)推给页面,按 id 覆盖。「暂停」断开连接,「继续」从已知最新一条续上,暂停期间的日志会补推。 - 详情:点一行开抽屉。任务沿用原任务详情(业务摘要、时间线、引擎步骤、取消 / 重跑,
?run=<引擎运行 id>也能直接打开);其余显示字段、负载与「同一对象的全部日志」。/console/tasks/:id独立页保留。 - 问智能体:勾选一条或一段(按住 Shift)后点「问智能体」,打开智能体抽屉,目标里按时间正序列出这些日志(时间、类型、结果、摘要、日志 id、对象);单条时带上任务 / 下载任务 / 整理记录等上下文 id。超过 6000 字截断。
- 登录失败(用户名 / 密码 / 验证码错误)写一条
admin.login_failed审计(用户名、IP、原因,不含密码);被限速拦下的尝试不写。
「定时任务」页签
原计划页(智能体巡检卡片 + 自动任务列表)放在日志页的第二个页签 /console/logs?tab=schedules(?job= 高亮)。定时任务是配置,但这一页的主要内容是运行状态(上次结果、下次运行、失败原因、立即执行 / 跳过),与它的运行日志放在一起;设置页按约定只放全局参数与凭证(docs/design/console-ia.md §3)。卡片的「运行记录」跳日志按该定时任务筛选。
运行状态 /console/status
在原有横幅、需要关注、数据库、任务引擎、定时任务、磁盘、挂载根、存储之外:
- 资源(参考 MoviePilot 仪表盘):CPU、内存、网络、磁盘读写四块,当前值 + 小趋势(15 分钟 / 1 小时 / 6 小时)。api 进程每 5 秒读一次
/proc与 cgroup v2,采样只放内存、保留 6 小时,进程重启后重新累计(GET /system/resources?minutes=)。- CPU:有 cgroup
cpu.stat时按本容器用量 ÷ 可用核数(cpu.max限额,否则在线核数);否则/proc/stat整机。另给整机 CPU 与 1 / 5 / 15 分钟负载。 - 内存:有 cgroup
memory.current时 = current −memory.stat的 inactive_file(同docker stats),上限memory.max(不限时为整机总量);否则/proc/meminfo整机。 - 网络:
/proc/net/dev除 lo 外合计(容器里即本容器网卡)。磁盘读写:cgroupio.stat,否则/proc/diskstats整盘。 - 读不到的文件按 null 显示「—」,磁贴右上角写口径(本容器 / 整机 / 取不到)。
- CPU:有 cgroup
- 进程表直接展示(不再折叠),每个角色进程(API / Worker(后台任务)/ Worker(智能体)/ 单进程)带 CPU(两次心跳之间占一个核的百分比,心跳
extra.cpuPercent)与内存(RSS)。事件循环与 SSE 的趋势仍在折叠区。
首页「运行状态」卡是简版:整体健康、CPU / 内存(最近 30 分钟小趋势)、用量最高的 3 个磁盘、下载器 / 站点账号 / 媒体库目录的正常数 / 总数,点进去到运行状态页。