forked from wangziqi/gongxue-base
chore: require real data api benchmark evidence
This commit is contained in:
@@ -88,7 +88,7 @@
|
||||
- 生产 `.env` 模板和 `npm run readiness:production` / `npm run readiness:production:db` 已补,后续上云必须作为验收 gate。
|
||||
- Auth/JWKS 上云后必须临时设置 `AUTH_SMOKE_*` 环境变量并运行 `npm run smoke:auth:remote`,真实 access token 不得写入仓库、前端配置或日志。
|
||||
- 本地/预生产必须同时跑 `npm run test:rls`,它验证运行时 JWT claim 下的租户隔离,和 `readiness:production:db` 的静态 policy 检查互补。
|
||||
- 已补 `npm run launch:gate` 生产上线证据门禁和 `docs/refactor/production-launch-evidence.template.json` 模板;最终切换前必须把 readiness、远程 Auth、RLS、生产 dry-run、导入校验、`pb:import:sample` 业务抽样、API/worker/Taro、运行时审计、`@codex-security`、备份/回滚/真实抽样/生产 provider 等证据填入本地 `production-launch-evidence.json` 并通过门禁。
|
||||
- 已补 `npm run launch:gate` 生产上线证据门禁和 `docs/refactor/production-launch-evidence.template.json` 模板;最终切换前必须把 readiness、远程 Auth、RLS、生产 dry-run、导入校验、`pb:import:sample` 业务抽样、真实数据 API 读路径压测、API/worker/Taro、运行时审计、`@codex-security`、备份/回滚/真实抽样/生产 provider 等证据填入本地 `production-launch-evidence.json` 并通过门禁。
|
||||
- 确认数据库迁移流程、备份恢复、日志、告警。
|
||||
- 准备 API 容器部署和 Supabase 云端/自托管连接方案。
|
||||
- 已补 `npm run perf:api:local` 和 `docs/refactor/performance-benchmark-runbook.md`,可在本地或云端对真实迁移数据做只读混合压测;4 核 16G 正式容量报告需上云后按 6/30/50/100 阶梯并发复跑并归档到本地上线证据。
|
||||
|
||||
@@ -151,4 +151,37 @@ npm run perf:api:local
|
||||
npm run launch:gate
|
||||
```
|
||||
|
||||
`launch:gate` 会强制检查一条真实数据读路径压测证据:
|
||||
|
||||
```json
|
||||
{
|
||||
"id": "performance.api-real-data-read",
|
||||
"status": "pass",
|
||||
"command": "PERF_START_SERVER=false PERF_API_BASE=https://api.example.com PERF_DURATION_SECONDS=300 PERF_CONCURRENCY=30 PERF_RAMP_SECONDS=30 PERF_INCLUDE_WRITES=false npm run perf:api:local > docs/refactor/launch-artifacts/api-real-data-read-benchmark.log",
|
||||
"completedAt": "2026-06-30T10:48:00+08:00",
|
||||
"artifact": "launch-artifacts/api-real-data-read-benchmark.log",
|
||||
"summary": {
|
||||
"errors": 0,
|
||||
"errorRate": 0,
|
||||
"p95Ms": 0,
|
||||
"p99Ms": 0,
|
||||
"concurrency": 30,
|
||||
"durationSeconds": 300,
|
||||
"includeWrites": false
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
上线门禁的最低机器阈值:
|
||||
|
||||
- `errors = 0`
|
||||
- `errorRate <= 0.001`
|
||||
- `p95Ms <= 300`
|
||||
- `p99Ms <= 800`
|
||||
- `concurrency >= 30`
|
||||
- `durationSeconds >= 120`
|
||||
- `includeWrites = false`
|
||||
|
||||
这些字段应从 `perf:api:local` JSON 报告的 `summary.errors`、`summary.errorRate`、`summary.latencyOk.p95Ms`、`summary.latencyOk.p99Ms`、`config.concurrency`、`config.durationSeconds`、`config.includeWrites` 转写到证据摘要。更高的 50/100 并发、写入混合场景和容量结论仍应作为人工容量报告归档;门禁只负责挡住明显不达标的基础读路径。
|
||||
|
||||
证据中只记录报告路径、并发矩阵、P95/P99、错误率和结论,不保存真实 token、支付密钥、用户隐私或完整响应。
|
||||
|
||||
@@ -87,6 +87,22 @@
|
||||
"pass": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "performance.api-real-data-read",
|
||||
"status": "pass",
|
||||
"command": "PERF_START_SERVER=false PERF_API_BASE=https://api.example.com PERF_DURATION_SECONDS=300 PERF_CONCURRENCY=30 PERF_RAMP_SECONDS=30 PERF_INCLUDE_WRITES=false npm run perf:api:local > docs/refactor/launch-artifacts/api-real-data-read-benchmark.log",
|
||||
"completedAt": "2026-06-30T10:48:00+08:00",
|
||||
"artifact": "launch-artifacts/api-real-data-read-benchmark.log",
|
||||
"summary": {
|
||||
"errors": 0,
|
||||
"errorRate": 0,
|
||||
"p95Ms": 0,
|
||||
"p99Ms": 0,
|
||||
"concurrency": 30,
|
||||
"durationSeconds": 300,
|
||||
"includeWrites": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "api.integration",
|
||||
"status": "pass",
|
||||
|
||||
Reference in New Issue
Block a user