当前似乎缺少温差类精细化告警定义,是否有类似告警可供平替?

问题描述

NV 在 Ada Lovelace 和 Hopper 一代卡,引入了所谓的 TLIMIT 温度,表示距离降频点的温差;

BMC 侧的告警,需从原来的基于目标门限告警,变为基于温差的告警;

例如:在 TLIMIT 小于等于 1 (表示距离过温降频只差一度)时,上报过温告警;

因此,这里所需的告警描述,和原来简单的 OverTemp 就不一样的,原先的 OverTemp:

The %1 %2 %3 temperature (%4 degrees C) exceeds the overtemperature threshold (%5 degrees C).

描述是 X 度超过了 X 度的阈值,不太符合 TLIMIT 的温差描述,肯定不能说“0 度超过了 1 度的阈值”;

是否有现有告警,能够覆盖这种基于温差告警的场景?

答案内容由AI生成,仅供参考:

关于温差类精细化告警的平替方案分析

根据您提出的问题,当前系统中确实缺少基于温差(TLIMIT)的精细化告警定义,而现有所谓的OverTemp类告警是基于绝对温度阈值触发的,无法准确描述“距离降频点仅剩1度”这类精细化场景。以下从现有机制、限制与潜在平替方案进行综合分析。

现有告警机制的局限性

1. 传统OverTemp告警不适用于TLIMIT场景

  • OverTemp 类告警(如Event_BMCOverTemp_Event_PCIeCardOverTemp)采用的是绝对阈值对比逻辑
    The [arg1] [arg2] [arg3] temperature ([arg4] degrees C) exceeds the overtemperature threshold ([arg5] degrees C).
    
  • 这类告警依赖 ThresholdSensor 对象(如 ThresholdSensor_NvmeTempThresholdSensor_GPUPREDEVTemp)中的 UpperNoncriticalUpperCritical 阈值来判断是否触发。
  • 问题核心:TLIMIT 是一个动态的温差值(当前温度与降频点之间的差值),而现有告警机制无法直接获取或表达这一差值,只能判断“是否超过某固定值”。

2. TLIMIT 告警需全新的描述逻辑

  • TLIMIT 告警的理想描述应为:

    “The thermal margin (TLIMIT) for GPU is ≤ 1°C, approaching throttling point.”

  • 而非现有格式中的“X度超过了Y度”,这会导致语义错误(例如“0度超过了1度”在逻辑上不成立)。

是否有现有告警可平替?

:white_check_mark: 结论:目前没有完全符合TLIMIT语义的现成告警可用作直接平替。

尽管存在一些管理告警,但均无法满足基于温差触发和描述的需求:

告警类型 实体 是否可平替 原因
Event_BMCOverTemp_ BMC 发出的过温告警 :cross_mark: 基于绝对温度阈值,描述不符
Event_PCIeCardOverTemp PCIe卡过温告警 :cross_mark: 触发条件为温度 > UpperNoncritical,非温差
Mngmnt Sensor Alert BMC生成的传感器管理告警 :cross_mark: 用于MCU升级后传感器无响应等场景,非温差监控
BMC告警(通用) 所有BMC产生的告警总称 :warning: 仅能作为载体 需重新定义事件和描述模板

推荐解决方案:构建专用TLIMIT告警

虽然当前无现成平替,但可通过系统现有能力定制化实现TLIMIT类告警。

:white_check_mark: 可行路径:利用 CSR/SR 文件配置 Event + 自定义描述

参考 CSR 配置机制,可通过新增 Event 对象并绑定表达式读数来模拟 TLIMIT 逻辑。

1. 创建新的 Event 对象

"Event_GPULTLIMITCritical": {
    "EventKeyId": "GPU.ThermalMarginCritical",
    "Reading": "expr($currentTemp - $throttlePoint)",  // 计算温差
    "Condition": "<= 1",                             // 当 TLIMIT ≤ 1°C 时触发
    "Hysteresis": ">= 3",                            // 恢复条件:TLIMIT ≥ 3°C
    "Severity": "Minor",
    "DescArg1": "GPU",
    "DescArg2": "${Slot}",
    "DescArg3": "ThermalMargin"
}

2. 定义专属告警描述模板

需在告警描述文件中添加新条目:

Event ID: 0xXXXXXX
Description: The thermal margin (TLIMIT) for %1 %2 (%3) is %4°C, approaching throttling threshold (%5°C).
Auto-clear: Yes
Severity: Minor

3. 关联传感器与数据源

  • 使用 ThresholdSensor 结构扩展支持差值计算字段;
  • 或通过 Scanner 模块预计算 TLIMIT 并暴露为虚拟 sensor;
  • 示例:
    "ThresholdSensor_GPUTLIMIT": {
        "Reading": "/GPU_1.TLIMIT_Value",
        "UpperNoncritical": 1,
        "PositiveHysteresis": 2
    }
    

支撑依据与参考资料

  1. TLIMIT 概念已存在且被BMC识别

    • 知识图谱中明确指出:

      BMC 必须将告警策略从阈值型转向 TLIMIT 型,使用温度差而非绝对值。

    • 说明系统设计层面已意识到该需求。
  2. 支持动态表达式读数

    • Reading 字段支持 expr(...) 表达式(见 Event_PCIeCardOverTemp 相关配置),可用于计算温差。
  3. CSR机制支持自定义告警

    • 根据《CSR配置字典之Event类》文档,可通过 EventKeyIdReadingCondition 等字段灵活定义新告警。
  4. 告警描述可参数化

    • 使用 DescArg1~DescArg3 可动态填充组件名称、位置等信息,适合多GPU卡环境。

总结与建议

项目 内容
是否有平替 :cross_mark: 没有现有告警能准确表达 TLIMIT 的温差语义
根本原因 现有告警基于“绝对阈值”,而 TLIMIT 是“相对温差”
推荐做法 :white_check_mark: 新增专用 Event + 定制描述模板
实施方式 在 SR 文件中定义新的 Event_XXX 对象,使用 expr 计算 TLIMIT 并设置触发条件
长期建议 bmc.kepler.Systems.CoolingRequirement 框架中内建对 TLIMIT 的原生支持

:pushpin: 行动建议:建议启动一个 CSR 配置任务,针对 GPU 卡新增 Event_GPULTLIMITWarningEvent_GPULTLIMITCritical 两类事件,并同步更新 event_def.json 和告警手册,以实现对新一代 GPU 卡温差告警的完整支持。

你好,目前没有类似的精细化告警,如果需要新增类似告警可以提交议题评审