| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
coordinator多进程版本合入主干 Co-authored-by: ganglv<lvgang1@huawei.com> Co-authored-by: tobking<wangjun292@huawei.com> Co-authored-by: j00813896<jiangwentao7@huawei.com> # message auto-generated for no-merge-commit merge: !251 merge br_home_base_multiprocess into master coordinator多进程版本合入主干 Created-by: tobking Commit-by: tobking;j00813896;ganglv Merged-by: ascend-robot Description: ## **1. 合入背景** > 请描述为什么要做这个PR内的改动。\ > 如涉及,请关联前序PR或同特性/需求下的其他PR。\ > 如果是修复之前PR引入的问题,请关联引入问题的PR。\ > 请通过#ISSUE ID关联issue。\ > 注意: Fixes #ISSUE ID会自动关闭issue,如问题部分解决请不要使用Fixes,可以用Fix part of #ISSUE ID替代. coordinator优化为多进程版本,提升高QPS场景下推理性能 [#158](https://gitcode.com/Ascend/MindIE-pyMotor-private/issues/158) ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 1.coordinator拆分为mgmt,scheduler,infer 三种独立进程 2.coordinator主进程为deamon进程,其负责拉起上述三种子进程 ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 涉及,userconfig新增多进程相关配置项 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-pyMotor-private!251 | 5 个月前 | |
[metric] 移除Controller metrics接口,统一使用Coordinator提供的接口【提供新端口】,CCAE_Reporter改为对接Coordinator Co-authored-by: 吕有辉<lvyouhui@huawei.com> # message auto-generated for no-merge-commit merge: !165 merge metrics_optimize into master [metric] 移除Controller metrics接口,统一使用Coordinator提供的接口【提供新端口】,CCAE_Reporter改为对接Coordinator Created-by: codeDogPro Commit-by: 吕有辉 Merged-by: towncharlie Description: ## **1. 合入背景** https://gitcode.com/Ascend/MindIE-PyMotor/issues/106 ## **2. 修改内容** 1、弃用Controller对外metrics接口【保留接口,增加warning告知用户弃用了,引导其使用Coordinator的接口】 2、ccae_reporter对接Coordinator metrics接口 3、Coordinator新增Observability API-Server,独立进程,MetricsCollector模块移动到该进程中,新增1027可观测性接口(NodePort) ## **3. 资料变更** 涉及 ## **4. 接口变更** 涉及 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!165 | 2 个月前 | |
修复日志刷屏问题 Co-authored-by: hxy<huxinyi9@huawei.com> # message auto-generated for no-merge-commit merge: !306 merge chore/downgrade-periodic-logs-to-debug into master 修复日志刷屏问题 Created-by: hu-xinyi_555 Commit-by: hxy Merged-by: towncharlie Description: ## **1. 合入背景** 部分日志打印过于频繁,影响问题定位 ## **2. 修改内容** 修改部分刷屏日志等级 ## **3. 资料变更** 不涉及 ## **4. 接口变更** 不涉及 ## **5. 测试结果** before:   after:  before:  after:  ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!306 | 1 个月前 | |
[openlibing.ci] auto fixes by pre-commit | 20 天前 | |
[feature]增加告警清除逻辑 Co-authored-by: hxy<huxinyi9@huawei.com> # message auto-generated for no-merge-commit merge: !598 merge feat/hybrid-precision-detection into master [feature]增加告警清除逻辑 Created-by: hu-xinyi_555 Commit-by: hxy Merged-by: towncharlie Description: ## **1. 合入背景** 可见https://gitcode.com/Ascend/MindIE-Motor/issues/359 精度检测特性(前序合入 61b0475 [feature]支持混布场景的精度异常检测)已具备 **告警产生** 与 **auto-recovery 实例终止** 能力,但缺少完整的 **告警清除(CLEAR)闭环**: - auto-recovery 终止 P/D 实例后,OM 侧精度告警仍可能残留; - CCAE 手动下发 precision control 终止实例后,未同步清除对应 PD Group 告警; - 未开启 auto-recovery 时,实例恢复后无法通过连续正常检测自动清除活动告警; - Coordinator Scheduler 侧 alarm_active 状态无统一清理入口,影响后续同 PD Group 重复告警。 ## **2. 修改内容** 详细设计见:[docs/zh/design/fault_tolerance/precision_detection.md](../../pymotor/MindIE-PyMotor_8989/docs/zh/design/fault_tolerance/precision_detection.md)(告警清除章节) ### 2.1 三条清除路径 | 路径 | 触发方 | 行为 | |------|--------|------| | **auto-recovery 清除** | Controller | 精度 ALARM 触发终止 P/D 全部成功后,上报 CLEAR 至 OM,并通知 Coordinator 清理 Scheduler 活动状态 | | **CCAE 手动清除** | CCAE Reporter → Controller | 终止 P/D 时携带 precision_alarm_clear=true,复用统一恢复入口清除 OM 告警 + 通知 Coordinator | | **连续正常清除** | Coordinator | 活动告警下连续 precision_clear_threshold(默认 10)次有效正常检测后,上报 CLEAR | ### 2.2 组件交互(实现要点) 1. **Controller recovery_service.py(新增统一入口)** - complete_precision_pd_group_recovery():可选终止 P/D → 从 AlarmStore 查找活动精度告警 → 深拷贝原 Alarm 并 clear() 上报 OM → 调用 CoordinatorApiClient.notify_precision_alarm_cleared() 清理 Scheduler 状态 - terminate_pd_group() / is_precision_raise_alarm() 等辅助函数供 API 层复用 2. **Controller alarm_store.py** - 新增 _active_precision_alarms 索引与 find_active_precision_alarm(p_id, d_id),按 PD Group 追踪活动精度告警及其 moi 3. **Controller controller_api.py** - 精度 auto-recovery 成功后走 complete_precision_pd_group_recovery,响应携带 precision_alarm_cleared / precision_alarm_cleared_by_auto_recovery - POST /controller/terminate_instance 支持 precision_alarm_clear=true,CCAE 手动清除走同一恢复入口 4. **Coordinator Scheduler(scheduler.py + runtime)** - 新增 alarm_active、clear_probing、clear_tokens 等 per-PD-Group 状态 - record_precision_result() 在活动告警下累计连续正常样本,达 clear_threshold 触发 clear action - finish_precision_action(action_type=clear|raise) 提交 action 结果;auto-recovery 已清除时直接删除整组状态 - 新增 ZMQ 协议与 client/server 透传 finish_precision_action / record_precision_result(clear_threshold=...) 5. **Coordinator PrecisionReporter + PrecisionAlarm** - Reporter 支持 raise / clear 双 action 编排,clear_threshold_hit 时异步触发 CLEAR 上报 - PrecisionAlarm.execute(action=clear) 构造 build_precision_issue_clear_alarm() 并上报 Controller;CLEAR 必须使用与产生告警相同的 moi 6. **Coordinator Management API(新增)** - POST /precision/alarm_cleared:Controller 通知 Coordinator 删除 Scheduler 活动告警状态(Mgmt 进程 → Scheduler) 7. **CCAE Reporter + MotorBackend** - precision control 终止成功后调用带 precision_alarm_clear=true 的 group terminate - 新增 precision task 上报窗口与 controlCode 抑制逻辑 8. **公共层** - 新增 motor/common/alarm/deserialize.py:告警反序列化 - precision_issue_alarm.py:新增 build_precision_issue_clear_alarm() - coordinator.py:新增 precision_clear_threshold 配置项 ### 2.3 时序(auto-recovery 清除) mermaid sequenceDiagram participant CR as Coordinator PrecisionAlarm participant CT as Controller participant OM as OM/CCAE participant SCH as Coordinator Scheduler CR->>CT: POST report_alarms (ALARM) CT->>CT: terminate P/D instances CT->>OM: report ALARM + CLEAR (same moi) CT->>SCH: POST /precision/alarm_cleared SCH->>SCH: clear alarm_active state CT-->>CR: precision_alarm_cleared_by_auto_recovery=true --- ## **3. 资料变更** **涉及**,修改如下: | 文件 | 变更说明 | |------|----------| | docs/zh/design/fault_tolerance/precision_detection.md | 补充告警清除设计:三条清除路径、moi 一致性约束、Scheduler 状态清理、CCAE 手动清除时序 | | docs/zh/user_guide/features/precision_detection.md | 补充 precision_clear_threshold 配置说明 | | docs/zh/user_guide/api/observability_interface.md | 补充 CCAE precision control 调用 /controller/terminate_instance 时 precision_alarm_clear 字段说明 | --- ## **4. 接口变更** **涉及**,均为客户面/跨组件可见接口: | 接口 | 变更类型 | 说明 | |------|----------|------| | POST /controller/terminate_instance | **请求体扩展** | 新增可选字段 precision_alarm_clear: bool(默认 false)。为 true 时按 PD Group 终止 P/D 并清除精度告警;响应 data 新增 precision_alarm_cleared、scheduler_state_cleared、moi | | POST /controller/report_alarms(精度 ALARM 响应) | **响应扩展** | auto-recovery 成功后 data 新增 precision_alarm_cleared、precision_alarm_cleared_by_auto_recovery、scheduler_state_cleared | | POST /precision/alarm_cleared(Coordinator Mgmt) | **新增** | Controller → Coordinator,请求体 {p_instance_id, d_instance_id},清除 Scheduler 侧活动精度告警状态 | | Coordinator 配置 | **新增字段** | precision_detection_config.precision_clear_threshold(默认 10) | | CCAE precision control → MotorBackend | **行为变更** | 终止实例时携带 precision_alarm_clear=true | --- ## **5. 测试结果**  --- ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-Motor!598 | 14 天前 | |
[feature] 31017服务端口需支持https能力 Co-authored-by: zhoujing101<zhoujing101@huawei.com> # message auto-generated for no-merge-commit merge: !500 merge EPD_2 into master [feature] 31017服务端口需支持https能力 Created-by: zhoujing101 Commit-by: zhoujing101 Merged-by: towncharlie Description: ## **1. 合入背景** https://gitcode.com/Ascend/MindIE-PyMotor/issues/302 为 Coordinator Observability API(端口 1027,对应 Kubernetes NodePort 31017)添加 HTTPS 支持。此前 Management Server 已有 TLS 支持,Observability Server 缺失该能力。 ## **2. 修改内容** 1. **Coordinator Observability API 支持 HTTPS** - motor/coordinator/api_server/observability_server.py:ObservabilityServer 在 __init__() 中保存 self._obs_ssl_config = self.coordinator_config.mgmt_tls_config(复用 Management TLS 证书配置);run() 方法中检测 enable_tls 并创建 SSL 上下文赋值给 uvicorn config(成功时打 https:// 日志,失败时打告警日志并回退 HTTP);_apply_config_changes 从 pass 改为更新 _obs_ssl_config,支持热更新 TLS 配置 **使用方式**:在 motor_coordinator_config 中配置 mgmt_tls_config 即可同时启用 Management 和 Observability 端口的 HTTPS,无需额外配置项。 2. **Coordinator 配置摘要格式修正** - 将 ?? 等 unicode 字符替换为 ├─ / └─ / │ 树形结构 - 对齐各字段缩进,多级嵌套(如 ETCD / Master-Standby)也正确使用树形分支 3. **控制器侧验证**:Controller Observability API(端口 31027)此前已通过 observability_tls_config 支持 HTTPS,本次仅补充测试验证,确认其实现完整。 ## **3. 资料变更** 不涉及。 ## **4. 接口变更** 不涉及。无新增配置项,Observability Server 复用已有 mgmt_tls_config。 ## **5. 测试结果** - 全量测试 2320 passed, 1 skipped, 0 failed - 新增 14 个 UT 测试用例覆盖:ObservabilityServer 初始化/热更新/mock 行为验证、配置摘要格式、控制器已有 TLS 实现验证 - 测试环境:串行 + 并行执行均通过 | 测试类 | 数量 | 覆盖内容 | |---|---|---| | TestObservabilityServerTls | 11 | 初始化存储、默认禁用、证书路径、热更新、mock 行为验证(SSL 创建/跳过/失败告警/HTTPS 日志) | | TestCoordinatorConfigSummaryFormat | 1 | 配置摘要格式中 hybrid 字段缩进对齐(test_config_summary_includes_hybrid_fields) | | TestControllerApiObservabilityTls | 3 | AST 验证控制器已有 TLS 实现完整(配置字段 / init 引用 / enable_tls 分支) |   ## **6. CheckList** [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有 UT 用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!500 | 27 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 5 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 20 天前 | ||
| 14 天前 | ||
| 27 天前 |