Open
[feat]: 支持可观测gauge仪表 #104
[feat]: 支持可观测gauge仪表 #104
Open
zhangyuxian3Add on 28 days ago
zhangyuxian3Collaborators
28 days ago

当前PR是否有AI参与:

[ ] 否

[x] 是
__1. AI Agent 平台: ZCode
__2. AI 模型: GLM-5.3-Flash
__3. Prompt上下文 : 将 main 分支 gauge 仪表支持(!71)同步到 25.12 LTS 分支(提交信息含 Co-Authored-By: GLM-5.3-Flash)

PR功能描述 / 为什么需要这个合入:

将 main 分支已合入的 gauge 仪表支持(!71)移植到 25.12 LTS 分支(observability 1.90.35 → 1.90.36):

  1. SharedGauge 从基于 ObservableInstrument 回调 + 属性匹配的模拟实现,切换为 opentelemetry 同步 Gauge API(metrics_api::Gauge),移除 attributes_equal 辅助函数
  2. 指标配置 bmc.system.uptime、bmc.system.cpu.usage、bmc.system.memory.usage、bmc.process.cpu.usage、bmc.process.memory.usage、bmc.system.flash.lifeleft 共 6 项类型调整为 Gauge
  3. opentelemetry 依赖 1.13.0.018 → 1.13.0.019(提供同步 Gauge API)

该内容即 main 分支历史版本 1.90.36 的原始变更(!71,2026-01 合入当时的 main 线),LTS 分支基于 1.90.35 尚未包含。

修改方案:

  1. src/lualib-src/otel/metrics/l_metric.cpp:重写 SharedGauge(+6/-61),GetGauge 工厂改用 m_meter->CreateDoubleGauge
  2. 同步 main !101 的指标模块并发修复:GetMeter/ForceFlush 持锁判空、CleanupMetric 持各 map 锁清理、元表注册重构(修复 UT 覆盖率运行下偶发段错误)
  3. 修复 IT 测试数据清理缺陷(clear_test_data 在 skynet.abort 之后清理导致持久化数据跨运行残留)与 IT mock client 缺失的证书监听接口
  4. user_conf/rootfs/opt/bmc/conf/observability.json:6 个指标类型 Counter/UpDownCounter → Gauge
  5. mds/service.json:版本 1.90.35 → 1.90.36,opentelemetry 1.13.0.018 → 1.13.0.019
  6. test/unit/test_otel/init.lua:文件末尾补换行

验证方案:

实机验证 gauge 类型指标(uptime/CPU 使用率等)正常上报;opentelemetry 1.13.0.019 编译与导出链路正常

测试建议

全量 UT 通过情况与增量覆盖率

自验证报告:

补丁与 !71 原始变更一致,基于 LTS 当前基线(1.90.35)干净套用;l_metric.cpp 中旧实现(attributes_equal/ObservableInstrument 回调)已全部移除,无残留引用。本地 bingo test -ut -it -cov -jit 多轮验证:UT/IT 全部通过,lua 增量覆盖率 100%(总增量含 C++ 为 100%)

该PR关联的issue

#64

likedislike
Merge blocked
Zzhangyuxian3Collaborators
28 days ago Created pull request, commit 2f3247b3
Zzhangyuxian3Collaborators
28 days ago Associated issue: 支持可观测gauge仪表
zhangyuxian3Collaborators
28 days ago Comments:

/publish

likedislike
openUBMC-robotopenUBMC-robotCollaborators
28 days ago Set WeliveWelove,DataSculptor,huanghan,aaronlee as approver
openUBMC-robotopenUBMC-robotCollaborators
28 days ago Added label: sig/sig-interface
122 messages are collapsed here。 See more
openUBMC-robot
openUBMC-robotCollaborators
28 days ago Comments:

AI Declaration Check Failed

@zhangyuxian3, AI declaration is not compliant. AI tool: ZCode

Please check:

  1. The AI tool and model declared in the PR description must be real.
  2. Commit messages must include the AI model, and it must be consistent with the PR description.

Details: AI Coding Assistants. ⚠️

likedislike
Oopenubmc-ci-botCollaborators
28 days ago Added label: limit_1k_suc
Oopenubmc-ci-botCollaborators
28 days ago Removed label: ci-running
openubmc-ci-botCollaborators
28 days ago Comments:
任务名称结果
pre-commit检查✅ SUCCESS
PR描述检查✅ SUCCESS
防投毒检查✅ SUCCESS
开源合规检查✅ SUCCESS
编译构建✅ SUCCESS
UT测试✅ SUCCESS
IT测试✅ SUCCESS
代码覆盖率❌ FAILED
依赖校验✅ SUCCESS
ipmi修改✅ SUCCESS
修改行数检查✅ SUCCESS
likedislike
Oopenubmc-ci-botCollaborators
28 days ago Added label: ci-failed