diff --git "a/docs/\345\276\256\346\234\215\345\212\241\345\217\257\350\247\202\346\265\213\346\200\247\345\273\272\350\256\276\346\212\200\346\234\257\350\256\276\350\256\241.md" "b/docs/\345\276\256\346\234\215\345\212\241\345\217\257\350\247\202\346\265\213\346\200\247\345\273\272\350\256\276\346\212\200\346\234\257\350\256\276\350\256\241.md"
index 19f4526..ced0341 100644
--- "a/docs/\345\276\256\346\234\215\345\212\241\345\217\257\350\247\202\346\265\213\346\200\247\345\273\272\350\256\276\346\212\200\346\234\257\350\256\276\350\256\241.md"
+++ "b/docs/\345\276\256\346\234\215\345\212\241\345\217\257\350\247\202\346\265\213\346\200\247\345\273\272\350\256\276\346\212\200\346\234\257\350\256\276\350\256\241.md"
@@ -144,31 +144,43 @@ flowchart TB
```mermaid
flowchart TB
- subgraph BIZ["业务集群 ×12 · 跨 4 个 Region
cn-north-12 ×4 | guizhou 贵州 ×6 | hongkong 香港 ×1 | wulanchabu 乌兰察布 ×1"]
+ subgraph BIZ["【范围 + 采集】业务集群 ×12 · 跨 4 个 Region
cn-north-12 ×4 | guizhou 贵州 ×6 | hongkong 香港 ×1 | wulanchabu 乌兰察布 ×1"]
direction LR
- AG["Prometheus Agent
--agent(本地只抓不存)
scrape kube-state-metrics / node-exporter"]
- CJ["拨测 CronJob
github-probe · cloud-account · cert-expiry …
产出 Prometheus text 格式"]
+ AG["Prometheus Agent
--agent(本地只抓不存)"]
+ CJ["拨测 CronJob
github-probe · cloud-account · cert-expiry …"]
end
- subgraph CTR["中心监控集群 · infra-cn4-x86-common-cluster(beijing)· ns infra-monitoring"]
+ subgraph CTR["【存储】中心集群 · infra-cn4-x86-common-cluster(beijing)· ns infra-monitoring"]
direction TB
PGW["Pushgateway
LoadBalancer + 持久化"]
PROM["Prometheus
TSDB + PrometheusRule 评估
replicas 1 · 保留 15d · 100Gi"]
- AM["Alertmanager
告警路由 + 邮件模板
replicas 1"]
end
- subgraph VIEW["视图(只读)"]
+ subgraph VIEW["【视图(只读)】"]
GRAF["Grafana
数据源 = 中心 Prometheus"]
end
+ subgraph ALERT["【告警】"]
+ AM["Alertmanager
告警路由 + 邮件模板
replicas 1"]
+ MAIL["运维团队
HTML 邮件"]
+ end
+
AG -->|"① remote_write"| PROM
CJ -->|"② HTTP push"| PGW
PGW -->|"scrape"| PROM
- PROM -->|"规则触发"| AM
- AM -->|"SMTP"| MAIL["运维团队
HTML 邮件"]
PROM --> GRAF
+ PROM -->|"规则触发"| AM
+ AM -->|"SMTP"| MAIL
```
+**图的读法(三层,自上而下)**:
+
+| 层 | 内容 | 与下层的连接 |
+| --- | --- | --- |
+| **上层 · 范围 + 采集** | 业务集群里的两类采集者——Agent(拉)与拨测 CronJob(推) | 各自把数据送进中层 |
+| **中层 · 存储** | 中心集群的 Pushgateway + Prometheus | 存入中心后,**只读地**分出左右两条 |
+| **下层 · 视图 / 告警** | **左:视图**(Grafana);**右:告警**(Alertmanager → 邮件) | 两条**并列、互不依赖**——Grafana 挂了不影响告警(§4.7.4) |
+
**两条上报路径**是本图的关键,也是本方案要复用的形态:
| 路径 | 机制 | 数据来源 |
@@ -822,70 +834,10 @@ flowchart LR
---
-## 5. 工作量预估
+## 5. 工作量与进度
-> **口径说明**:以下为**粗估**,单位人天,含开发 + 自测 + 联调,不含需求评审与排期等待。
-> 单价基于试点实测数据校准前的一般经验;**建议在子任务 A 的试点完成后回填真实数据再修正 C 的估算**。
-
-### 5.1 子任务 A —— SDK 建设与试点接入(#2061)
-
-| 项 | 状态 | 剩余人天 |
-| --- | --- | --- |
-| 契约层 `spec/`(4 份文档) | ✅ 已完成 | 0 |
-| obs-sdk-go(log / metrics / sdkctx / middleware+ginmw,31 UT) | ✅ 已完成,已发 `go/v1.0.0` | 0.5 |
-| obs-sdk-python(15 UT) | ✅ 代码完成 | 0.5(打 tag + 安装验证) |
-| obs-sdk-java(19 UT) | ✅ 代码完成,**存在无兜底缺陷** | 1.5(缺陷修复 + UT + 打 tag) |
-| obs-sdk-node(10 UT) | ✅ 代码完成 | 0.5(打 tag) |
-| 试点接入:`robot-universal-review` 日志([#2161](https://github.com/opensourceways/backlog/issues/2161)) | 📋 已开 issue | 1.5 |
-| 试点接入:`robot-universal-review` 指标([#2162](https://github.com/opensourceways/backlog/issues/2162)) | 📋 已开 issue | 1.5 |
-| 部署侧 `OBS_*` 注入(helm-chart-value,12 个目录) | 📋 待办 | 2~3(含跨团队确认) |
-| **小计** | | **8~9.5** |
-
-### 5.2 子任务 B —— 底座搭建与大盘告警(#2062)
-
-| 项 | 人天 |
-| --- | --- |
-| 中心 Prometheus 集群搭建(kube-prometheus-stack + HA + 存储 + Alertmanager) | 5~8 |
-| 各集群 Prometheus Agent 铺开(17 集群)+ 采集链路验证 | 4~6 |
-| **跨 Region 网络打通**(CC / 专线 / 公网 HTTPS 三选一)+ 安全加固 | 3~6 |
-| 自建 Grafana 部署(独立 Deployment + 持久化 + 入口) | 2~3 |
-| Grafana 大盘(服务健康度 + community 维度 + 日志检索面板) | 6~9 |
-| 中心 Alertmanager 指标告警规则 + LTS 日志告警(17 条)+ SMN 通知 | 4~6 |
-| 容量与成本核算(series 量 / 磁盘 / 跨 Region 流量) | 1~2 |
-| **社区健康度大盘(G6)**——判定口径 + 数据聚合 + 状态页 + 发布流程 | 7~12 |
-| **小计** | **32~52** |
-
-### 5.3 子任务 C —— 26 仓全量铺开与验收(#2063)
-
-按语言与框架的改造复杂度分档:
-
-| 服务分组 | 数量 | 单价(人天) | 小计 |
-| --- | --- | --- | --- |
-| Go · 机器人服务(robot-universal-label / repo-watcher / welcome + 试点已做的 review) | 3 | 1~1.5 | 3~4.5 |
-| Go · 普通 Gin(app-cla-server / cve-sa-backend / cve-manager-ng) | 3 | 0.5~1 | 1.5~3 |
-| Java · Spring Boot(Actuator 原生路径) | 6 | 1~1.5 | 6~9 |
-| Python · Django + DRF | 3 | 1~1.5 | 3~4.5 |
-| Python · FastAPI | 4 | 0.5~1 | 2~4 |
-| Python · Flask | 1 | 0.5~1 | 0.5~1 |
-| Python · **非标准框架待评估**(mailman / copr_docker / hotopic-mining) | 3 | 3~5 | 9~15 |
-| Node · etherpad-lite(上游开源,需保持可合并) | 1 | 2~3 | 2~3 |
-| 编排仓 meeting-server(由子服务覆盖) | 1 | 0 | 0 |
-| 逐服务验收核对(字段 / label / 大盘) | — | — | 3~5 |
-| **小计** | **26** | | **30.5~49** |
-
-### 5.4 汇总
-
-| 子任务 | 人天 | 对应 issue |
-| --- | --- | --- |
-| A · SDK 建设与试点接入 | 8~9.5 | #2061 |
-| B · 底座搭建与大盘告警 | 32~52 | #2062 |
-| C · 26 仓全量铺开与验收 | 30.5~49 | #2063 |
-| **合计** | **70.5~110.5** | 约 **3.5~5.5 人月** |
-
-**估算的最大不确定性**在 C 的「非标准框架待评估」三项(9~15 人天)与 Java 组(6~9 人天)。建议:
-1. 试点完成后用实测数据回填单价;
-2. 三项非标准框架服务(mailman / copr_docker / hotopic-mining)与 Node 的 etherpad-lite **先做技术验证再报价**,避免按经验值低估;
-3. 「26 仓」中 `hotopic-data-clean` / `hotopic-mining` 的 prod 目前挂在 **test 集群**(`infra-hk-test-cluster-001`),`oss-map` / `om-dataarts` 在 service.md 无 prod 部署记录 —— **这 4 个是否纳入本次铺开需先澄清**,否则 C 的范围可能变动。
+**本章已抽出独立维护:[docs/进度追踪.md](进度追踪.md)。**
+工作量口径、各子任务完成状态、试点数据回填都维护在该文件,本章不再重复正文,避免两处漂移。
---
diff --git "a/docs/\350\277\233\345\272\246\350\277\275\350\270\252.md" "b/docs/\350\277\233\345\272\246\350\277\275\350\270\252.md"
new file mode 100644
index 0000000..9fcfa1b
--- /dev/null
+++ "b/docs/\350\277\233\345\272\246\350\277\275\350\270\252.md"
@@ -0,0 +1,71 @@
+# 进度追踪
+
+> 本文档原为《[微服务可观测性建设技术设计](微服务可观测性建设技术设计.md)》§5「工作量预估」,现抽出独立维护,作为**后续进度追踪的唯一入口**。
+> 设计本身(架构、契约、链路、风险)仍以技术设计文档为准;本文只维护**工作量口径与完成状态**。
+
+> **口径说明**:以下为**粗估**,单位人天,含开发 + 自测 + 联调,不含需求评审与排期等待。
+> 单价基于试点实测数据校准前的一般经验;**建议在子任务 A 的试点完成后回填真实数据再修正 C 的估算**。
+> **人天口径**:A 列为**剩余**预估(已完成项记 0);B / C 尚未启动,所列即**全量**预估(剩余 = 全量)。
+
+> **状态图例**:✅ 已完成 | 🔄 进行中 | 📋 待办(未启动)
+
+## 1. 子任务 A —— SDK 建设与试点接入(#2061)
+
+| 项 | 状态 | 预估人天 |
+| --- | --- | --- |
+| 契约层 `spec/`(4 份文档) | ✅ 已完成 | 0 |
+| obs-sdk-go(log / metrics / sdkctx / middleware+ginmw,31 UT) | ✅ 已完成,已发 `go/v1.0.0` | 0.5 |
+| obs-sdk-python(15 UT) | ✅ 代码完成 | 0.5(打 tag + 安装验证) |
+| obs-sdk-java(19 UT) | ✅ 代码完成,**存在无兜底缺陷** | 1.5(缺陷修复 + UT + 打 tag) |
+| obs-sdk-node(10 UT) | ✅ 代码完成 | 0.5(打 tag) |
+| 试点接入:`robot-universal-review` 日志([#2161](https://github.com/opensourceways/backlog/issues/2161)) | 🔄 代码 [PR #90](https://github.com/opensourceways/robot-universal-review/pull/90) 已开;preview 环境已验证日志契约 | 0.5(评审 + 入 test 环境) |
+| 试点接入:`robot-universal-review` 指标([#2162](https://github.com/opensourceways/backlog/issues/2162)) | 📋 待办 | 1.5 |
+| 部署侧 `OBS_*` 注入(helm-chart-value,21 个目录 = 13 prod + 8 test/preview) | 🔄 进行中:8 个 test/preview 已提 [PR #1428](https://github.com/Open-Infra-Ops/helm-chart-value/pull/1428)(待评审);13 个 prod 待办,含 `common/` 两个目录 community 取值待 owner 确认 | 2~3(含跨团队确认) |
+| **小计** | | **8~9.5** |
+
+## 2. 子任务 B —— 底座搭建与大盘告警(#2062)
+
+| 项 | 状态 | 预估人天 |
+| --- | --- | --- |
+| 中心 Prometheus 集群搭建(kube-prometheus-stack + HA + 存储 + Alertmanager) | 📋 待办 | 5~8 |
+| 各集群 Prometheus Agent 铺开(17 集群)+ 采集链路验证 | 📋 待办 | 4~6 |
+| **跨 Region 网络打通**(CC / 专线 / 公网 HTTPS 三选一)+ 安全加固 | 📋 待办 | 3~6 |
+| 自建 Grafana 部署(独立 Deployment + 持久化 + 入口) | 📋 待办 | 2~3 |
+| Grafana 大盘(服务健康度 + community 维度 + 日志检索面板) | 📋 待办 | 6~9 |
+| 中心 Alertmanager 指标告警规则 + LTS 日志告警(17 条)+ SMN 通知 | 📋 待办 | 4~6 |
+| 容量与成本核算(series 量 / 磁盘 / 跨 Region 流量) | 📋 待办 | 1~2 |
+| **社区健康度大盘(G6)**——判定口径 + 数据聚合 + 状态页 + 发布流程 | 📋 待办 | 7~12 |
+| **小计** | | **32~52** |
+
+> ⚠️ **表中「17 集群」口径待重算**(2026-09-16):以 `opensourceways/infrastructure` 的 `service.yaml` 独立重算 25 个接入仓的 **prod** 集群并集,得 **20 个**,与设计文档的 17 存在差异(统计口径差异,非范围变更所致)。重算前,「Agent 铺开」「LTS 日志组」「日志告警」三条链路里的 17 均按**偏低估**看待。
+
+## 3. 子任务 C —— 26 仓全量铺开与验收(#2063)
+
+按语言与框架的改造复杂度分档:
+
+| 服务分组 | 状态 | 数量 | 单价(人天) | 小计 |
+| --- | --- | --- | --- | --- |
+| Go · 机器人服务(robot-universal-label / repo-watcher / welcome + 试点已做的 review) | 📋 待办 | 3 | 1~1.5 | 3~4.5 |
+| Go · 普通 Gin(app-cla-server / cve-sa-backend / cve-manager-ng) | 📋 待办 | 3 | 0.5~1 | 1.5~3 |
+| Java · Spring Boot(Actuator 原生路径) | 📋 待办 | 6 | 1~1.5 | 6~9 |
+| Python · Django + DRF | 📋 待办 | 3 | 1~1.5 | 3~4.5 |
+| Python · FastAPI | 📋 待办 | 4 | 0.5~1 | 2~4 |
+| Python · Flask | 📋 待办 | 1 | 0.5~1 | 0.5~1 |
+| Python · **非标准框架待评估**(mailman / copr_docker / hotopic-mining) | 📋 待办 | 3 | 3~5 | 9~15 |
+| Node · etherpad-lite(上游开源,需保持可合并) | 📋 待办 | 1 | 2~3 | 2~3 |
+| 编排仓 meeting-server(由子服务覆盖) | — | 1 | 0 | 0 |
+| 逐服务验收核对(字段 / label / 大盘) | 📋 待办 | — | — | 3~5 |
+| **小计** | | **26** | | **30.5~49** |
+
+## 4. 汇总
+
+| 子任务 | 状态 | 人天 | 对应 issue |
+| --- | --- | --- | --- |
+| A · SDK 建设与试点接入 | 🔄 进行中 | 8~9.5 | #2061 |
+| B · 底座搭建与大盘告警 | 📋 待办 | 32~52 | #2062 |
+| C · 26 仓全量铺开与验收 | 📋 待办 | 30.5~49 | #2063 |
+| **合计** | | **70.5~110.5** | 约 **3.5~5.5 人月** |
+
+**估算的最大不确定性**在 C 的「非标准框架待评估」三项(9~15 人天)与 Java 组(6~9 人天)。建议:
+1. 试点完成后用实测数据回填单价;
+2. 三项非标准框架服务(mailman / copr_docker / hotopic-mining)与 Node 的 etherpad-lite **先做技术验证再报价**,避免按经验值低估;