AMR 生产发布影响报告
当前生产发布点
五个服务的最近成功发布点不同。当前目标是
49a640a72
(feat(link): add guarded observable SSE drain rollout (#1537))。最宽比较范围为
a42ed27ca...49a640a72,共 33 个 commit;feature 判断按各 workflow 自己的基线和实际构建/迁移路径去重,不把范围内的文档、测试、CLI 或已由其他 workflow 发布的数据误算为本次上线功能。
8e049fce6a68d64806此次发布的 feature 和影响面
| Feature / Author / Commits | Web | API | Link | Admin | DB schema / migration |
|---|---|---|---|---|---|
|
XLLink SSE 生命周期可观测与受控 drain 能力
为 SSE 流增加 active/completion 指标、退出 drain 状态和结构化完成/强退日志;启用后 Pod 终止时拒绝新业务请求并等待活动流结束,降低滚动发布中断长连接的概率。 Author:Caprika |
无。 | 无。 | 代码能力上线:新增 gateway_active_streams、gateway_stream_completions_total,以及 drain 请求门控、等待和日志。默认不改变行为: ENABLE_SSE_DRAIN=false,且生产 workflow 只同步镜像 tag,不会自动应用仓库内 Helm 生命周期参数;需单独配置策略、preStop、grace period 和 timeout 后才启用 drain。 |
无。 | 无 schema/migration。 |
|
LWorkspace 目录变更实时失效
工作区创建、改名、删除、接受邀请和成员角色/移除后,API 按账号推送 directory dirty signal;支持客户端及时刷新工作区列表,减少多实例、跨端目录陈旧。 Author:lefarcen |
无本次 Web 代码变更;支持该 capability 的客户端可消费事件。 | 新增账号级 workspace-directory-changed PG NOTIFY/SSE;在事件握手暴露 workspace-directory-events-v1,并在六类 workspace/member mutation 成功后发布失效通知。 |
无。 | 无。 | 无 schema/migration;复用现有 workspace event channel。 |
|
LWeb 账单摘要新鲜读取闭环
钱包与 Personal workspace 在 checkout、充值、降级或 portal 返回后请求 Author:Marc Chan |
本次 Web 发布补齐 fresh=true 请求、query cache 回填和异步失败隔离,覆盖 Wallet 与 Team Dashboard 的 billing 收敛路径。 |
服务端缓存与 fresh bypass 已在当前 API 基线 b5e370efa 中,本次 API workflow 不重复带入该 commit。 |
无。 | 无。 | 无 schema/migration。 |
|
MUsage settlement 扫描索引
为成功且需结算的 Author:nettee |
无。 | 无本次 runtime 依赖;结算查询可受益于新索引。 | 无代码依赖;Link 持续写入 usage_events,建索引期间是主要受影响写路径。 |
无。 | 需要 migration:新增 20260813132230_add_usage_events_settlement_scan_index.sql。SQL 使用普通 CREATE INDEX IF NOT EXISTS,不是 CONCURRENTLY;大表建索引期间可能阻塞写入,需先评估表量级、锁等待和执行窗口。 |
|
S模型限额失败日志归因
模型限额 fail-open 与 Author:nettee |
无。 | 无。 | 结构化日志新增 app_user_id、public_model_id;请求放行/拒绝逻辑不变。 |
无。 | 无 schema/migration。 |
|
SAdmin 模型选择状态展示与搜索
模型 Combobox 扩宽下拉框,使用统一状态 badge 展示 active/disabled,并把状态 hint 纳入搜索,避免窄列表裁切并方便筛选。 Author:nettee |
无。 | 无。 | 无。 | 模型相关 Combobox 的状态可见性、宽度和搜索关键字改善;不改变服务端数据。 | 无 schema/migration。 |
发布建议
- 先做 DB migration 的 precheck 与风险确认。本次需要运行 deploy-db-migrations-prod.yml。由于索引不是并发创建,先核对
link.usage_events体量、预估耗时、活跃写流量和锁等待;选择低流量窗口。precheck 或 apply 失败应停止后续发布。 - 建议顺序:DB → API → Link → Web / Admin。API 先上线 directory event capability;Link 随后上线新指标、日志与 guarded drain 代码;Web 和 Admin 无 schema 依赖,可在前述验证通过后并行。Web 的
fresh=true已有当前生产 API 基线支持。 - 不要把 Link 镜像发布等同于启用零中断 drain。Link workflow 只构建镜像并同步 image tag;代码默认
ENABLE_SSE_DRAIN=false。如要启用,应另行评审并同步配置 RollingUpdate budget、preStop、terminationGracePeriodSeconds、progressDeadlineSeconds和 shutdown timeout,不能只开单一开关。 - Catalog 无需追加发布。模型目录生产 workflow 最近成功运行
31783270162已发布到b5e370efa,此后到目标 commit 没有 catalog 数据变化,因此本次不需要运行 deploy-model-routing-catalog-prod.yml。 - 发布后验证。确认 migration run 成功且索引存在;验证 workspace 创建/改名/邀请/成员变更后 SSE 收到
workspace-directory-changed;验证 Wallet/Team Dashboard 在 checkout/portal 返回后立即显示新账单状态;检查 Linkgateway_active_streams、gateway_stream_completions_total与模型限额日志归因字段;验证 Admin 模型下拉状态 badge 和搜索。
范围口径:各服务从自己的最近成功生产 run head SHA 比到 origin/main@49a640a72;DB 只统计 db/schema 与 db/migrations 的 DDL,catalog seed 由独立生产 workflow 判断。