From b524bd0ccec85912cd1300d82986f0bfed88be68 Mon Sep 17 00:00:00 2001 From: TangJia025 <574451426@qq.com> Date: Tue, 15 Sep 2026 19:30:06 +0800 Subject: [PATCH 1/2] =?UTF-8?q?docs(design):=20=C2=A73.1.1=20=E6=9E=B6?= =?UTF-8?q?=E6=9E=84=E5=9B=BE=E6=8C=89=E4=B8=89=E5=B1=82=E9=87=8D=E6=8E=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 上层【范围 + 采集】业务集群(Agent + 拨测 CronJob),原样保留; - 中层【存储】中心集群(Pushgateway + Prometheus),Alertmanager 移出; - 下层【视图】与【告警】并列平齐——二者同为 Prometheus 的下游,互不依赖; 邮件节点一并移入告警分组。 - 图后补一张「三层读法」说明表。 注:同时清掉作者删减标签文字后残留的两处行尾空
,未改动任何正文。 Co-Authored-By: Claude Code --- ...00\346\234\257\350\256\276\350\256\241.md" | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) 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..b2ec7e3 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) | + **两条上报路径**是本图的关键,也是本方案要复用的形态: | 路径 | 机制 | 数据来源 | From 08a914fa59ad4bd5fcc307b874e5ff5cbf873bc1 Mon Sep 17 00:00:00 2001 From: TangJia025 <574451426@qq.com> Date: Wed, 16 Sep 2026 14:12:03 +0800 Subject: [PATCH 2/2] =?UTF-8?q?docs(design):=20=C2=A75=20=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E9=87=8F=E9=A2=84=E4=BC=B0=E6=8A=BD=E5=87=BA=E4=B8=BA?= =?UTF-8?q?=E7=8B=AC=E7=AB=8B=E8=BF=9B=E5=BA=A6=E8=BF=BD=E8=B8=AA=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 docs/进度追踪.md:承接原 §5 的 A/B/C 四张表,补齐状态图例 与人天口径(A 列为剩余预估,B/C 为全量预估),每行都带 状态 + 预估人天; - 设计文档 §5 改题「工作量与进度」,正文替换为指向新文档的链接, 避免同一份数据两处漂移; - 新文档标注「17 集群」口径待重算:以 infrastructure/service.yaml 独立 重算 25 个接入仓的 prod 集群并集得 20 个,与设计文档的 17 存在差异。 Co-Authored-By: Claude Code --- ...00\346\234\257\350\256\276\350\256\241.md" | 66 +---------------- ...33\345\272\246\350\277\275\350\270\252.md" | 71 +++++++++++++++++++ 2 files changed, 74 insertions(+), 63 deletions(-) create mode 100644 "docs/\350\277\233\345\272\246\350\277\275\350\270\252.md" 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 b2ec7e3..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" @@ -834,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 **先做技术验证再报价**,避免按经验值低估;