【已评审】支持PowerSupplyMetrics接口新标准

背景

当前redfish标准接口存在缺失,需要评审新增redfish标准接口以及资源协作接口属性。

关联ISSUE

[需求]: 支持PowerSupplyMetrics接口新标准

整体方案

1.redfish接口PowerSupplyMetrics北向映射需要关联资源协作接口对应的属性,因此需要新增资源协作接口属性

评审点

评审点1:支持Redfish资源新增PowerSupplyMetrics资源集合
1.新增属性:EnergykWh、FanSpeedsPercent、FrequencyHz、InputCurrentAmps、InputPowerWatts、InputVoltage、OutputPowerWatts、RailCurrentAmps、RailPowerWatts、RailVoltage、TemperatureCelsius、Status、Actions
评审点2:PowerSupplyMetrics 资源新增Action
1.新增POST:PowerSupplyMetrics.ResetMetrics

详细描述

评审点1:支持Redfish资源新增PowerSupplyMetrics资源集合
资源URI:
/redfish/v1/Chassis/:chassisid/PowerSubsystem/PowerSupplies/:powersuppliesid/Metrics
资源版本:PowerSupplyMetrics.v1_1_2
Required属性:新增属性:EnergykWh、FanSpeedsPercent、FrequencyHz、InputCurrentAmps、InputPowerWatts、InputVoltage、OutputPowerWatts、RailCurrentAmps、RailPowerWatts、RailVoltage、TemperatureCelsius、Status
嵌套资源:本资源嵌套于Chassis资源的PowerSubsystem
属性列表:

一级属性 二级属性 三级属性 类型 默认值 取值范围 易变属性 实现PATCH 操作权限 说明
EnergykWh object / / / / 只读,读权限:ReadOnly 设备能耗
ApparentkVAh number 0 / 只读,读权限:ReadOnly 电气能量测量中的显式能量值(单位为千伏安时)
DataSourceUri string “” / 只读,读权限:ReadOnly 传感器所需数据的资源链接
LifetimeReading number 0 / 只读,读权限:ReadOnly 设备能耗总累计值
ReactivekVARh number 0 / 只读,读权限:ReadOnly 电能测量的无功能量(以千伏安时(无功)为单位)
Reading number 0 / 只读,读权限:ReadOnly 设备能耗传感器读值
SensorResetTime string “” 格式为 YYYY-MM-DDThh:mm:ssZ 的合法时间字符串 只读,读权限:ReadOnly 基于时间的属性最后一次被重置的日期和时间
FanSpeedsPercent array / / / / 只读,读权限:ReadOnly 风扇转速
DataSourceUri string “” / 只读,读权限:ReadOnly 风扇转速传感器所需数据的资源链接
DeviceName string “” / 只读,读权限:ReadOnly 风扇转速传感器设备名称
PhysicalContext string “” [PowerSupply] 只读,读权限:ReadOnly 风扇转速传感器测量所需的区域或设备
PhysicalSubContext string “” [Input,Output] 只读,读权限:ReadOnly 风扇转速传感器测量所适用的设备的使用方法和所在位置
Reading number 0 / 只读,读权限:ReadOnly 风扇转速传感器读值
SpeedRPM number 0 / 只读,读权限:ReadOnly 设备转速({rev}/min)
FrequencyHz object / / / / 只读,读权限:ReadOnly 电源频率
DataSourceUri string “” / 只读,读权限:ReadOnly 电源频率传感器所需数据的资源链接
Reading number 0 / 只读,读权限:ReadOnly 电源频率传感器读值
InputCurrentAmps object / / / / 只读,读权限:ReadOnly 电源输出电流
CrestFactor number 0 / 只读,读权限:ReadOnly 电源输出电流传感器的峰值系数
THDPercent number 0 [0,100] 只读,读权限:ReadOnly 电源输出电流传感器总谐波失真百分比
InputPowerWatts object / / / / 只读,读权限:ReadOnly 电源输入功率
ApparentVA number 0 / 只读,读权限:ReadOnly 电源输入功率传感器交流电中电压与电流的乘积
PhaseAngleDegrees number 0 / 只读,读权限:ReadOnly 电源输入功率传感器电流波形与电压波形之间的相位角
PowerFactor number 0 / 只读,读权限:ReadOnly 电源输入功率传感器的功率因数
ReactiveVAR number 0 / 只读,读权限:ReadOnly 电路中表观视在功率与功率之差的平方根值
InputVoltage object / / / / 只读,读权限:ReadOnly 电源输入电压
CrestFactor number 0 / 只读,读权限:ReadOnly 电源输入电压传感器的峰值系数
OutputPowerWatts object / / / / 只读,读权限:ReadOnly 电源输出功率
ApparentVA number 0 / 只读,读权限:ReadOnly 电源输出功率的交流电中电压与电流的乘积
PhaseAngleDegrees number 0 / 只读,读权限:ReadOnly 电源输出功率的电流波形与电压波形之间的相位角
PowerFactor number 0 / 只读,读权限:ReadOnly 电源输出功率传感器的功率因数
ReactiveVAR number 0 / 只读,读权限:ReadOnly 电路中表观视在功率与功率之差的平方根值
RailCurrentAmps array / / / / 只读,读权限:ReadOnly 电源输出电流
CrestFactor number 0 / 只读,读权限:ReadOnly 电源输出电流传感器的峰值系数
DataSourceUri string “” / 只读,读权限:ReadOnly 电源输出电流传感器所需数据的资源链接
Reading number 0 / 只读,读权限:ReadOnly 电源输出电流传感器读值
RailPowerWatts array / / / / 只读,读权限:ReadOnly 电源输出功率
ApparentVA number 0 / 只读,读权限:ReadOnly 电源输出功率的交流电中电压与电流的乘积
PhaseAngleDegrees number 0 / 只读,读权限:ReadOnly 电源输出功率的电流波形与电压波形之间的相位角
PowerFactor number 0 / 只读,读权限:ReadOnly 电源输出功率传感器的功率因数
ReactiveVAR number 0 / 只读,读权限:ReadOnly 电路中表观视在功率与功率之差的平方根值
RailVoltage array / / / / 只读,读权限:ReadOnly 电源输出电压
CrestFactor number 0 / 只读,读权限:ReadOnly 电源输出电压传感器的峰值系数
THDPercent number 0 [0,100] 只读,读权限:ReadOnly 电源输出电压传感器的总谐波失真百分比
Actions object / / / / 只读,读权限:ReadOnly /
#PowerSupplyMetrics.ResetMetrics object / / / / 只读,读权限:ReadOnly /
target string / / 只读,读权限:ReadOnly 资源action链接,重置与此设备相关的汇总指标

RspBody响应体示例:

{
    "@odata.context": "/redfish/v1/$metadata#PowerSupplyMetrics.PowerSupplyMetrics",
    "@odata.id": "/redfish/v1/Chassis/1/PowerSubsystem/PowerSupplies/1/Metrics",
    "@odata.type": "#PowerSupplyMetrics.v1_1_2.PowerSupplyMetrics",
    "Id": "Metrics",
    "Name": "Metrics for Power Supply 1",
    "EnergykWh": {
        "ApparentkVAh": 26,
        "DataSourceUri": "",
        "LifetimeReading": 52,
        "ReactivekVARh": 32,
        "Reading": 23,
        "SensorResetTime": "2020-01-01T00:00:00.000Z"
    },
    "FanSpeedsPercent": {
        "DataSourceUri": "/redfish/v1/Chassis/1/Sensors/FAN1RSpeed.150",
        "DeviceName": "FAN1 R Speed",
        "PhysicalContext": "test",
        "PhysicalSubContext": "test",
        "Reading": 4050,
        "SpeedRPM": 4050
    },
    "FrequencyHz": {
        "DataSourceUri": "",
        "Reading": 65
    },
    "InputCurrentAmps": {
        "DataSourceUri": "/redfish/v1/Chassis/1/Sensors/PS1IIn.33",
        "Reading": 1,
        "CrestFactor": 1.414,
        "THDPercent": 76
    },
    "InputPowerWatts": {
        "DataSourceUri": "/redfish/v1/Chassis/1/Sensors/Power1.37",
        "Reading": 108,
        "ApparentVA": 1,
        "PhaseAngleDegrees": 24,
        "PowerFactor": 74,
        "ReactiveVAR": 29
    },
    "InputVoltage": {
        "DataSourceUri": "/redfish/v1/Chassis/1/Sensors/PS1VIN.39",
        "Reading": 226,
        "CrestFactor": 1.414
    },
    "OutputPowerWatts": {
        "DataSourceUri": "/redfish/v1/Chassis/1/Sensors/PS1POut.34",
        "Reading": 84,
        "ApparentVA": 75,
        "PhaseAngleDegrees": 26,
        "PowerFactor": 26,
        "ReactiveVAR": 26
    },
    "RailCurrentAmps": [
        {
            "CrestFactor": 1.414,
            "DataSourceUri": "",
            "Reading": 26
        }
    ],
    "RailPowerWatts": [],
    "RailVoltage": [],
    "TemperatureCelsius": {
        "DataSourceUri": "/redfish/v1/Chassis/1/Sensors/PS1InletTemp.38",
        "Reading": 28
    },
    "Status": {
        "State": "Enabled",
        "Health": "OK"
    },
    "Actions": {
        "#PowerSupplyMetrics.ResetMetrics": {
            "target": "/redfish/v1/Chassis/1/PowerSubsystem/PowerSupplies/1/Metrics/Actions/PowerSupplyMetrics.ResetMetrics"
        }
    }

评审点2:PowerSupplyMetrics 资源新增Action
资源URI
/redfish/v1/Chassis/:chassisid/PowerSubsystem/PowerSupplies/:powersuppliesid/Metrics/Actions/PowerSupplyMetrics.ResetMetrics
资源版本#ActionInfo.v1_0_1.ActionInfo
操作权限:PowerMgmt
RspBody响应体示例:

{
    "error": {
        "code": "Base.1.0.GeneralError",
        "message": "A general error has occurred. See ExtendedInfo for more information.",
        "@Message.ExtendedInfo": [
            {
                "@odata.type": "#Message.v1_0_0.Message",
                "MessageId": "Base.1.0.Success",
                "RelatedProperties": [],
                "Message": "Successfully Completed Request",
                "MessageArgs": [],
                "Severity": "OK",
                "Resolution": "None"
            }
        ]
    }
}



评审结论

通过,具体结论如下:

  1. 同意在 Redfish 接口 /redfish/v1/Chassis/:chassisid/PowerSubsystem/PowerSupplies/:powersuppliesid/Metrics 下新增标准属性(属性描述见议题评审点1),属性资源版本 PowerSupplyMetrics.v1_1_2
  2. 同意新增 Redfish Action /redfish/v1/Chassis/:chassisid/PowerSubsystem/PowerSupplies/:powersuppliesid/Metrics/Actions/PowerSupplyMetrics.ResetMetrics,Action 的版本为 #ActionInfo.v1_0_1.ActionInfo,操作权限为 PowerMgmt

遗留问题

1、数值取值类型需要重新设计,目前看到都为double,原因是什么?
2、取值范围字段没有据实体现,优先参考redfish标准接口中,对于有详细定义的字段,需要分析其取值范围。

1.类型中有string , double参照redfish文档中number来写 现已经改为number

2.取值范围中只有2个属性在标准文档中有详细提出范围 其他的均未写范围

PowerFactor理论上取值为[0,1] 但是标准文档未写明 需要添加吗 其他属性也有类似的问题

redfish没有签名
数值类的默认值,支持null的,建议为null

已修改

1、先把格式整改好,字段与字段之间空格间隙过大
2、PhysicalContext 要审视哪些是合理字段,不必全部枚举
3、SpeedRPM建议为整形

内容已修改

1、部分属性类型为string的字段,默认值没有刷新成“”
2、SpeedRPM这个我查了下规范,类型应该为number
3、没有明确取值范围的 统一处理成 /

PowerSupplyMetrics资源新增的Action,除了需要评审新增的url外,还需要在PowerSupplyMetrics资源中新增相应Action对象,参考: