Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 23 additions & 71 deletions docs/微服务可观测性建设技术设计.md
Original file line number Diff line number Diff line change
Expand Up @@ -144,31 +144,43 @@ flowchart TB

```mermaid
flowchart TB
subgraph BIZ["业务集群 ×12 · 跨 4 个 Region<br/>cn-north-12 ×4 | guizhou 贵州 ×6 | hongkong 香港 ×1 | wulanchabu 乌兰察布 ×1"]
subgraph BIZ["【范围 + 采集】业务集群 ×12 · 跨 4 个 Region<br/>cn-north-12 ×4 | guizhou 贵州 ×6 | hongkong 香港 ×1 | wulanchabu 乌兰察布 ×1"]
direction LR
AG["Prometheus Agent<br/>--agent(本地只抓不存)<br/>scrape kube-state-metrics / node-exporter"]
CJ["拨测 CronJob<br/>github-probe · cloud-account · cert-expiry …<br/>产出 Prometheus text 格式"]
AG["Prometheus Agent<br/>--agent(本地只抓不存)"]
CJ["拨测 CronJob<br/>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<br/>LoadBalancer + 持久化"]
PROM["Prometheus<br/>TSDB + PrometheusRule 评估<br/>replicas 1 · 保留 15d · 100Gi"]
AM["Alertmanager<br/>告警路由 + 邮件模板<br/>replicas 1"]
end

subgraph VIEW["视图(只读)"]
subgraph VIEW["视图(只读)"]
GRAF["Grafana<br/>数据源 = 中心 Prometheus"]
end

subgraph ALERT["【告警】"]
AM["Alertmanager<br/>告警路由 + 邮件模板<br/>replicas 1"]
MAIL["运维团队<br/>HTML 邮件"]
end

AG -->|"① remote_write"| PROM
CJ -->|"② HTTP push"| PGW
PGW -->|"scrape"| PROM
PROM -->|"规则触发"| AM
AM -->|"SMTP"| MAIL["运维团队<br/>HTML 邮件"]
PROM --> GRAF
PROM -->|"规则触发"| AM
AM -->|"SMTP"| MAIL
```

**图的读法(三层,自上而下)**:

| 层 | 内容 | 与下层的连接 |
| --- | --- | --- |
| **上层 · 范围 + 采集** | 业务集群里的两类采集者——Agent(拉)与拨测 CronJob(推) | 各自把数据送进中层 |
| **中层 · 存储** | 中心集群的 Pushgateway + Prometheus | 存入中心后,**只读地**分出左右两条 |
| **下层 · 视图 / 告警** | **左:视图**(Grafana);**右:告警**(Alertmanager → 邮件) | 两条**并列、互不依赖**——Grafana 挂了不影响告警(§4.7.4) |

**两条上报路径**是本图的关键,也是本方案要复用的形态:

| 路径 | 机制 | 数据来源 |
Expand Down Expand Up @@ -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)。**
工作量口径、各子任务完成状态、试点数据回填都维护在该文件,本章不再重复正文,避免两处漂移。

---

Expand Down
71 changes: 71 additions & 0 deletions docs/进度追踪.md
Original file line number Diff line number Diff line change
@@ -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 **先做技术验证再报价**,避免按经验值低估;
Loading