数据保留与清理
平台运行一段时间后,事件、通知投递、Worker 任务轨迹和构建部署日志会持续增长。平台管理员可以在 站点设置 > 数据保留 中设置自动保留天数,也可以预览并清理指定时间段的数据。
自动保留
Worker 每 24 小时独立运行一次数据保留任务。每类数据可以分别设置保留天数:
设置为 0 会停用该类数据的自动清理。修改设置只影响之后运行的清理任务,不会立即删除数据。
自动清理使用固定数据目录和小批次删除。构建、发布或 Hook 仍在运行时,其日志不会被清理;有效会话也不会因为管理员选择了未来时间而被提前删除。
手动清理
只有平台管理员可以使用手动清理。启用平台二次验证策略后,执行清理前还需要完成一次对应的 Step-up MFA 验证:
- 选择一个或多个数据类型。
- 选择开始和结束时间。时间范围按
[开始时间, 结束时间)计算。 - 先执行预览,确认每类数据的匹配数量。
- 在二次确认对话框中执行清理。
预览不会修改数据库。修改数据类型或时间范围后,之前的预览会失效,必须重新预览。实际清理结果会写入审计日志,但不会把被清理的日志正文写入审计记录。
不在清理范围内的数据
以下数据不会出现在数据保留目录中,也不能通过手动清理接口删除:
- 审计日志;
- 计费用量、钱包和不可变账本;
- 构建记录、构建任务元数据和镜像记录;
- 发布记录、revision 和回滚关系;
- Hook 运行结果与脚本快照;
- Secret、Token、镜像凭据和身份源配置;
- Kubernetes PVC 和应用运行数据。
日志清理后,构建和发布列表仍然存在,但过期日志正文将不再可查看。需要长期留存日志时,应先接入外部日志系统或归档存储。
多副本与故障处理
自动清理由 Asynq 的周期任务触发,每个已经入队的任务只会由一个 Worker 消费。多副本意外重复触发也不会扩大清理范围:每次删除按固定批次执行,中途失败时已完成批次不会回滚,下一次运行会从剩余数据继续。