AMR 生产发布影响报告
全量发布确认
- 四个服务:Grafana / Prometheus(datasource
prometheus,namespacenexu)观察到的 Ready Pod 全部运行 feb5eb7fa,与本次发布的 workflow run(admin #384、api #385、link #386、web #387,由nettee于 2026-09-21 02:22–02:36Z 触发)完全一致,无滚动中或回滚的混合版本。 - DB migration:发布点仍为
ff912897d(run #47209 @ 2026-09-20 08:16Z)。其后到 HEAD 的 4 个 commit 均未触及db/migrations/db/schema,本次发布不含 migration,也不需要补跑 migration。 - Model Routing Catalog:发布点
feb5eb7fa(run #47325 @ 2026-09-20 12:10Z)已等于 HEAD,catalog 维度无净新增。 - 结论:本次全量发布把窗口内的待发布内容全部上线。以当前生产发布点为基线,Web / API / Link / Admin / DB / Catalog 六个维度净待发布 commit 数为 0,无需再次发布;后续任何发布都需要新的 main commit 触发。
当前生产发布点(四个服务取 EKS Pod 实态,DB / Catalog 取 Forgejo workflow 记录)
Web、API、Link、Admin 的发布点来自 Grafana / Prometheus 查询 kube_pod_container_info 与 kube_pod_status_ready{condition="true"} 按 (namespace, pod) 关联后的 Ready Pod 镜像;DB migration 与 Catalog 的发布点来自 Forgejo workflow 最近一次成功运行的 commit_sha。越新的发布点意味着该维度已上线越多内容,feature 表里只允许列出发布点之后的变更;发布点之前的内容归入「已在生产生效」一节。
nexu/amr-web · container web · 镜像仓库 amr-webfeb5eb7fa(= origin/main HEAD)sha256:5978fd2e2a31a121a61947292689e59a64e9964ab7b172559466e6d6bd74de13186593931982.dkr.ecr.us-east-1.amazonaws.com/amr-web:prod-feb5eb7fa7df3c997d10460c7c856861d166ac1b0abec4e99…feb5eb7fa,起点 2026-09-21 02:04Z):32 commits,其中 1 个触及该服务目录nexu/amr-api · container api · 镜像仓库 amr-apifeb5eb7fa(= origin/main HEAD)sha256:ce9939f10b5da205dfc354e7d41fb63462eb46d097238edf40c590f10fca7740186593931982.dkr.ecr.us-east-1.amazonaws.com/amr-api:prod-feb5eb7fa7df3c997d10460c7c856861d166ac1b0abec4e99…feb5eb7fa,起点 2026-09-21 02:04Z):32 commits,其中 0 个触及该服务目录nexu/amr-link · container link · 镜像仓库 amr-linkfeb5eb7fa(= origin/main HEAD)sha256:fb52aa1b671f110d1615f560017703b85ecf38d9f613b158f358b821d454adca186593931982.dkr.ecr.us-east-1.amazonaws.com/amr-link:prod-feb5eb7fa7df3c997d10460c7c856861d166ac1b180a48b23…feb5eb7fa,起点 2026-09-21 02:04Z):34 commits,其中 2 个触及该服务目录nexu/amr-admin · container admin · 镜像仓库 amr-adminfeb5eb7fa(= origin/main HEAD)sha256:38602be657776d73314da9fc33fb4696fc4ecdd6323100829e26e446fa87ddfa186593931982.dkr.ecr.us-east-1.amazonaws.com/amr-admin:prod-feb5eb7fa7df3c997d10460c7c856861d166ac1b58e310d6f…feb5eb7fa,起点 2026-09-21 02:04Z):33 commits,其中 0 个触及该服务目录ff912897d(Deploy DB Migrations Prod)ff912897d…feb5eb7fa):4 commits,其中 0 个命中该维度目录db/migrations 或 db/schema:无待执行 migrationfeb5eb7fa(Deploy Model Routing Catalog Prod)feb5eb7fa…feb5eb7fa):0 commits,其中 0 个命中该维度目录EKS 观察口径:每个服务先用业务容器 + 镜像仓库精确过滤 kube_pod_container_info{container="…", image=~".*/amr-…:prod-[0-9a-f]{40}"},再按 (namespace, pod) 关联 Ready 指标,因此结果不含 API CronJob、Link Redis、metrics exporter 等附属工作负载。四个服务的 Ready Pod 在各自集合内 commit 与 digest 完全一致,spec / updated / available 副本数一致(2/2/2、2/2/2、3/3/3、2/2/2),样本时间距查询时刻均小于 5 分钟。四个服务的 deploy-*-eks-prod.yml 此前在 Forgejo 无运行记录,本次发布已产生可审计的成功记录,且与 Pod 实态一致。
本次全量发布涉及的 feature 和影响面
| Feature / Author / Commits | Web | API | Link | Admin | DB schema / migration | DB catalog(seed) |
|---|---|---|---|---|---|---|
|
MProvider 失败诊断与余额耗尽检测(Link)
Provider 调用失败时不再只留下合成的 Author:nettee |
无。 | 无。 | 变更 services/link/internal/bifrostengine/engine.go(attempt 结构化日志)、third_party/bifrost-core/bifrost.go 与 schemas/bifrost.go(透传原始 provider 错误)、internal/handlers/openai.go;新增 internal/providerfailure/classifier.go(余额耗尽分类契约)、internal/server/server.go(装配与指标预热)、internal/usage/metrics.go(指标注册),含单测与 e2e 回归。 |
无。 | 无。 | 无。 |
|
S认证定价页年付文案去重(Web)
AMR 两处定价面(Public Pricing embed 与 Cloud Pricing)的简体中文年付副行去掉重复的省钱金额: Author:Liu Yi |
变更 apps/web/src/components/commerce/plans/landing-pricing-content.ts、pricing-plans.tsx(各 1~2 行文案)与 apps/web/tests/unit/landing-pricing-sync.test.ts;仅影响 /pricing 云订阅与公共定价嵌入的中文年付副行渲染。 |
无。 | 无。 | 无。 | 无。 | 无 catalog 变更(data/json/public_pricing.json 早在 deploy-public-pricing-prod run #47216 @ 2026-09-20 08:27Z 就已在 057e94ed1 上发布,本次无净新增)。 |
|
S生产发布工作流授权收敛(CI,不产生 runtime 变更)
生产发布入口鉴权从「固定审批人名单」改为「Forgejo 授权 workflow + 运行时授权」: Author:Liu Yi |
无 runtime 变更。 | 无 runtime 变更。 | 无 runtime 变更。 | 无。 | 不影响 migration 执行内容(只决定谁能触发 workflow)。 | 不影响 seed 内容(只决定谁能触发 workflow)。 |
范围说明:本次发布窗口的 commit 区间里还包含 apps/cli(vela CLI:#8/#22/#29/#31 等)、docs/ops(#30 发布 runbook 迁移到 Forgejo)、tools/、e2e/ 与其余 CI / dev 变更。它们不由 Web / API / Link / Admin / DB / Catalog 六个维度发布(CLI 走 vela-cli-release.yml),因此不计入本次 AMR 生产发布的影响面,也不影响上表结论。
已在生产生效(本次发布窗口之前,本次未变化)
以下内容的 commit 均在本次发布窗口起点(2026-09-21 02:04Z 的生产发布点)之前,已在生产运行,本次发布没有变化。
- Catalog(发布点 feb5eb7fa = HEAD,run #47325 @ 2026-09-20 12:10Z):该 run 已在 HEAD 上成功执行,catalog 与 main 完全对齐。已上线内容包括
8241f4cebGLM-5.3-FlashX(#18 feat(catalog): add GLM-5.3-FlashX:data/json/models.json、provider_routes.json、route_policies.json、provider_pricing/provider_zai.json、db/seeds/seed-model-routing-catalog.sql)、627a376c1+ec26c78caprovider model preflight 命令与--recent-days发布窗口(#23 #23、#28 #28)、b5bdfb782下线 legacy GPT-6 catalog workflow(#20 #20)、3374fc6d0本地 seed 防误连远程库(#13 #13)。 - DB migration(发布点 ff912897d,run #47209 @ 2026-09-20 08:16Z):已执行的最新 migration 为
db/migrations/20260914115313_account_erasure.sql与db/migrations/20260914101138_touchpoint_test_context_realtime.sql,均早于本发布点;本次发布没有触发 migration。 - Web / API(发布点前 0abec4e99):
0abec4e99GitHub PR #2066—— 生产构建不再挂载 Test campaign 控制台(不再每 30s 轮询/runtime/test-deployments得到 404),并支持「无活动」的 200 语义;该 commit 的 Web 与 API 侧改动(services/api/src/metrics.ts、services/api/src/touchpoints/routes.ts)先前已在生产运行,本次窗口内 API 目录新增 0 个 commit。 - Link(发布点前 180a48b23):该 commit 本身是 CLI 变更(
GitHub PR #2037),说明 amr-link 镜像恰好构建于此;窗口之前已上线的 Link 侧内容为e736d1b3dGitHub PR #2049等内部模型目录 / provider 路由可观测性改动。 - Admin(发布点前 58e310d6f):
58e310d6fGitHub PR #2064—— 审计行仍持久化,但被拒绝或不可达的 Bell 事件只记日志,不再把额度发放等操作变成 500;本次窗口内 Admin 目录新增 0 个 commit。 - 范围内已回退:无。窗口内没有 revert commit,也没有需要特殊处理的「曾部署过的 migration」。
发布后验证与后续观测
- 发布结果确认(已完成):admin / api / link / web 四个 workflow run(#384–#387)均为 success;四个 Deployment 的 spec / updated / available 副本数一致,Ready Pod 的 commit 与 digest 完全一致,均运行 feb5eb7fa。
- Link 观测:
- 日志:
{namespace="nexu", pod=~"amr-link-.*"} |= "provider_attempt_failed" | json,确认upstream_status_code、failure_reason与最终 502 可按 request 上下文关联。 - 指标:
gateway_provider_balance_exhausted_total的零值序列应在启动 / 目录重载后即可见(increase()可观测首个事件)。 - 健康:错误率 / 延迟与
upstream_credentials_exhausted比例不应因日志与分类逻辑变化而改变(重试与响应语义未变);如有偏差优先回看e3ac842fb/ba534f3f6。 - 配套 GitOps 余额耗尽告警 PR powerformer/apps#573 的前置依赖(Link 变更)本次已上线,可进入启用阶段。
- 日志:
- Web 观测:中文环境下
/pricing与公共定价嵌入的年付副行应显示为按年计费 · $168/年,折扣标签仍显示一次优惠、无重复省钱提示;必要时清理 CDN / 浏览器缓存后复看。 - 发布流程注意:授权收敛后(
#35–#37),生产发布必须由有权限的操作人从main发起一次新的workflow_dispatch,不能复用历史 run 的原生重跑。 - 下一次发布:当前生产发布点 = HEAD,净待发布为 0;下一次只需在
main有新 commit 后按 DB → Catalog → Link → API → Web → Admin 的依赖顺序评估,并重新生成本报告。
备注:本报告的 workflow、commit、PR 与 compare range 均使用 Forgejo 链接(code.powerformer.net/core/amr);四个服务的 compare range 基于 EKS Pod 观察到的 BASE,DB / Catalog 基于各自 workflow 最近成功 run 的 commit。本次发布窗口起点取自 2026-09-21 02:04Z 的一次生产 Ready Pod 观测记录,仅用于界定「本次全量发布带入了什么」,不改变「当前生产发布点 = feb5eb7fa」的结论。