2.1 KiB
UniDesk Observability Reference
UniDesk 的可观测性优先级高于静默成功。CLI、服务日志、Docker 日志和数据库状态都必须能通过短命令查询。
CLI Logs
异步 job 的 stdout 和 stderr 位于 .state/jobs/。job status 会返回有限尾部,避免输出爆炸,同时保留完整日志文件路径便于继续排查。
Service Logs
服务日志位于 logs/{YYYYMMDD}/,每次 server start 都生成新的本地时间戳前缀。backend-core、frontend 和 provider-gateway 输出 JSONL 文件;database 通过 PostgreSQL logging collector 写入同一目录。
Log Access
bun scripts/cli.ts server logs 同时读取文件日志和 Docker logs 尾部。文件日志是服务崩溃时的第一现场,Docker logs 是容器启动失败和 stdout/stderr 的辅助来源。
Task Liveness
backend-core 必须把 queued、dispatched、running 视为待处理任务,并通过 TASK_PENDING_TIMEOUT_MS 对长时间没有 provider 终态回报的任务做超时处理。超时任务转为 failed,result 中保留 timeout、previousStatus 和 previousResult 摘要,避免 态势总览 的待处理数量长期卡住且无法解释。
Performance Metrics
backend-core 必须提供 /api/performance,返回滚动窗口内的 HTTP 组件请求统计、最近失败请求、内部操作统计、最近慢操作、进程内存、PGDATA 用量和 Codex Queue PostgreSQL 存储摘要。组件统计必须包含请求数、失败数、失败率、平均延迟和 P95,内部操作统计必须包含服务名、操作名、次数、平均延迟和 P95;失败和慢操作记录必须保留时间、状态、耗时、路径或细节,避免只给汇总数字而无法定位。
frontend Bun server 必须提供同源 /api/frontend-performance,记录 webui 静态资源、登录/session、API 代理和 frontend->core 代理操作耗时。浏览器中的 运行总览 / 性能面板 必须把 frontend 与 backend-core 指标合并展示为 Bwebui 曲线、组件汇总、最近失败请求、内部操作汇总和最近慢操作;完整性能 JSON 只能通过显式 查看原始JSON 打开。