已合并
merge_client_metrics #417
merge_client_metrics #417
已合并
wangyibing创建于 7月29日
wangyibing
wangyibing成员
7月29日

合入来源

问题/功能描述

motor对接

修改方案描述

  1. 删除/metrics/client,合并到/metrics
  2. 修复warn日志刷屏问题

是否涉及UT/ST

开发自检

likedislike
Pull Request已成功合入, 合并人@zhangjinshi
(感谢 wangyibing 的贡献)
wangyibingwangyibing成员
7月29日 关联了issue:[Usage]: MemCache增加不依赖外部组件的可视化kv pool功能,当前SSD使用情况在用户面是黑盒状态
atomgit-bot
atomgit-bot
7月29日 评论:

变更摘要

本 PR 将原先独立的 /metrics/client 端点合并到 /metrics 端点中,统一对外暴露 Prometheus 格式的 metrics 接口(对接 motor 需求)。核心改动包括:删除 /metrics/client HTTP 路由、将 BuildClientMetricsPrometheus 重构为私有方法 AppendClientMetrics 并嵌入 BuildPrometheusMetrics、统一去掉指标名中的 _client 前缀(如 memcache_client_bandwidth_bytesmemcache_bandwidth_bytes),以及为 MmcUbsIoProxy 增加 IsReady() 方法替代原有的空指针检查。

主要改动

  • 合并 HTTP 端点:在 mmc_http_server.cpp 中删除了 /metrics/client 路由及其 handler,client metrics 不再单独暴露,统一由 /metrics 返回。
  • 重构 metrics 构建逻辑:在 mmc_rest_api_facade.h/.cpp 中,将公有方法 BuildClientMetricsPrometheus 改为私有方法 AppendClientMetrics(std::ostringstream&),并在 BuildPrometheusMetrics 末尾调用它,使 client metrics 嵌入主 metrics 输出流。
  • 统一指标命名:所有 client 相关 Prometheus 指标去掉了 _client 中缀,例如 memcache_client_bandwidth_bytes 变为 memcache_bandwidth_bytesmemcache_client_metric_stale 变为 memcache_metric_stale,并同步更新了 Grafana dashboard JSON 示例文件中的所有 exprdefinition 引用。
  • UBS IO 就绪检查优化:在 mmc_ubs_io_proxy.h 中新增 IsReady() 方法(返回 started_ 成员),并在 mmc_ubs_io_collector.cpp 中将 proxy == nullptr 的空指针检查替换为 !proxy->IsReady() 的就绪状态检查。
likedislike
atomgit-bot
atomgit-bot
7月29日 评论:

代码审查

Closing Summary

对全部 6 个变更文件的审查结论如下:

文件 结论
example/metrics/memcache_dashboard_client_metrics.json 无问题 — 所有 metric 名称从 memcache_client_* 更名为 memcache_*,与 C++ 代码变更一致
src/memcache/csrc/client/metric/mmc_ubs_io_collector.cpp P1:空指针解引用proxy == nullptr 检查被移除但未补回
src/memcache/csrc/meta_service/mmc_http_server.cpp 无问题 — /metrics/client 端点移除干净,无残留引用
src/memcache/csrc/meta_service/mmc_rest_api_facade.cpp 无问题 — 客户端指标合并逻辑正确,stale/fresh 处理与旧行为一致
src/memcache/csrc/meta_service/mmc_rest_api_facade.h 无问题 — #include <sstream> 必要,API 声明变更与实现一致
src/memcache/csrc/under_api/ubs_io/mmc_ubs_io_proxy.h 无问题 — IsReady() 是简单 getter,无副作用

统计:P1 × 1,P0/P2/P3 × 0。

整体风险评估:中。 核心缺陷是 mmc_ubs_io_collector.cpp 中因删除空指针检查而引入的 crash 风险(OOM 场景触发)。建议在合入前修复该问题,其余变更逻辑正确、一致性好。

类型 数量
🔴 阻塞 1
🟡 建议 0

⛔ 需要修改

likedislike
ascend-robot
ascend-robot成员
7月29日 评论:
流水线 PR-pipeline_memcache#1729 [ commitID:d8a9480e ] 已完成
阶段 任务名 状态 详情
编译构建 Build_memcache >>>
恶意代码检查 Antipoison_memcache >>>
编码安全与规范检查 pre-commit >>>
CodeCheck_memcache >>>
开源片段检查 SCA_memcache >>>
开发者测试 UT_memcache >>>
流水线 PR-pipeline_memcache >>>
此流水线已支持下列评论快捷指令,仅PR创建者和白名单成员评论有效
  • compile : 运行流水线
  • retry : 重试流水线所有失败子任务
  • retry <任务名> : 仅重试指定失败子任务
  • stop : 停止流水线
likedislike
此处折叠了64条消息 查看更多
songxiaoyusongxiaoyu成员
7月29日 将nbbb24设为评审人
songxiaoyusongxiaoyu成员
7月29日 通过了评审
mrh1024mrh1024成员
7月29日 将mrh1024设为评审人
mrh1024mrh1024成员
7月29日 通过了评审
Zzhangjinshi成员
7月29日 合入了pull request