You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure DevOps中监控Azure Pipeline构建的固件ROM/RAM占用趋势?

解决方案:Azure DevOps 固件ROM/RAM占用监控与趋势展示

针对主保护分支构建的微控制器固件ROM/RAM占用监控需求,结合你已有的数据提取能力,以下是可行的落地方案,包含你提到的两种思路的具体操作,以及更高效的替代方案:

方案1:自定义JSON工件+Analytics报表(对应你提到的工件方案)

操作步骤:

  1. 生成结构化JSON数据:
    脚本提取ROM/RAM后,生成包含关键维度的JSON文件,确保区分不同固件配置:
    {
      "buildId": "$(Build.BuildId)",
      "branch": "$(Build.SourceBranchName)",
      "config": "Debug",
      "romUsage": 45600,
      "ramUsage": 8900
    }
    
  2. 发布构建工件:
    在Pipeline中添加PublishBuildArtifacts任务,设置:
    • 工件名称:MemoryUsageReports
    • 要发布的路径:JSON文件所在目录
    • 发布位置:默认选择Azure Pipelines即可,无需额外配置
  3. 配置Analytics趋势报表:
    • 进入Azure DevOps的Analytics模块,创建自定义报表,用Power Query连接到构建工件,读取JSON数据
    • 按config字段分组,筛选branch为main的记录,生成ROM/RAM的趋势图表
    • 将图表添加到DevOps仪表板,实现可视化监控
  4. 分支过滤:
    给发布工件的任务添加条件,仅在主分支执行:
    condition: eq(variables['Build.SourceBranch'], 'refs/heads/main')
    

方案2:利用测试结果系统(对应你提到的CTest思路)

这个方案完全可行,Azure Pipelines支持解析自定义JUnit格式的测试结果,自动收集测量值用于趋势分析:

操作步骤:

  1. 生成JUnit格式的测量文件:
    无需实际运行CTest,直接生成包含ROM/RAM数据的JUnit XML,每个固件配置对应一个测试用例:
    <testsuite name="MemoryUsage" tests="2" failures="0">
      <testcase name="Firmware-Debug" classname="MemoryMetrics">
        <properties>
          <property name="ROM_Usage" value="45600"/>
          <property name="RAM_Usage" value="8900"/>
        </properties>
      </testcase>
      <testcase name="Firmware-Release" classname="MemoryMetrics">
        <properties>
          <property name="ROM_Usage" value="38900"/>
          <property name="RAM_Usage" value="7600"/>
        </properties>
      </testcase>
    </testsuite>
    
  2. 发布测试结果:
    添加PublishTestResults任务,设置:
    • 测试结果格式:JUnit
    • 测试结果文件路径:XML文件所在位置
  3. 配置仪表板趋势:
    • 进入测试>分析页面,找到对应的MemoryUsage测试套件,查看ROM/RAM属性的历史数据
    • 在仪表板添加趋势图表部件,选择对应的测量属性,按config分组,筛选主分支构建
  4. 分支过滤:
    同样给发布任务添加主分支执行条件,避免非主分支数据干扰。

方案3:自定义Pipeline指标(推荐,最直接高效)

直接将ROM/RAM数据上报为Azure Pipelines的自定义指标,无需额外文件处理,原生支持趋势分析:

操作步骤:

  1. 上报指标:
    在提取到ROM/RAM数据的脚本后,添加PowerShell/Bash任务,用Pipeline命令上报指标(区分不同配置):
    # 假设$romUsage、$ramUsage、$config为脚本输出的变量
    Write-Host "##vso[task.logissue type=metric;name=ROM Usage ($config);value=$romUsage;]"
    Write-Host "##vso[task.logissue type=metric;name=RAM Usage ($config);value=$ramUsage;]"
    
  2. 查看与可视化:
    • 每次主分支构建完成后,在构建详情的指标标签页可看到实时数据
    • 在仪表板添加指标趋势部件,选择对应的ROM/RAM指标,按配置分组,筛选主分支,即可生成趋势图表
  3. 分支过滤:
    给上报指标的任务添加主分支执行条件,确保仅监控保护分支的构建数据。

内容的提问来源于stack exchange,提问作者Daniel Beliavskij

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 16:05:12