【已评审】TelemetryService接口新增属性支持格式切换

背景

当前 TelemetryService 相关 Redfish 接口响应、上报数据格式存在部分Oem定制属性与 Redfish 标准定义不一致的问题,主要包括:

  1. /redfish/v1/TelemetryService/MetricDefinitions/{MetricDefinitionId} 资源中,MetricProperties 当前自定义实现为数组对象,标准格式应为字符串数组。
  2. /redfish/v1/TelemetryService/MetricReports/{MetricReportId} 资源中,MetricReportDefinition 当前自定义实现为数组对象,标准格式应为对象。
  3. MetricReport 事件上报报文格式中:
    • Id 自定义序号使用数字编号,标准格式应使用上报报告类型。
    • 报文中的 GeneratedMetricReportValues 应对应标准格式中的 MetricValues
    • 标准格式的报文体中不会出现 EventTypeMetricReportName

为对接 Redfish 标准实现,同时兼容已有北向对接场景,在 TelemetryService 接口下新增属性用于控制 TelemetryService 相关资源和 MetricReport 事件报文按 Redfish 标准格式展示,或保持原有 OEM 存量格式展示。

相关评审链接

暂无

关联ISSUE

暂无

整体方案

/redfish/v1/TelemetryService 接口下新增 OEM 属性控制 TelemetryService 资源显示格式:

Oem.{{OemIdentifier}}.SchemaComplianceMode

该属性为枚举字符串,取值如下:

取值 含义
Standard 按 Redfish 标准格式展示 TelemetryService 相关资源和 MetricReport 事件报文
Oem 保持当前存量 OEM 格式展示,用于兼容已有北向对接实现

同时,在资源协作接口 /bmc/kepler/TelemetryServicebmc.kepler.TelemetryService 下新增 SchemaComplianceMode 属性,用于保存和控制当前格式模式,默认取值为Standard。

评审点

  1. TelemetryService对象资源协作接口新增 SchemaComplianceMode 属性表示 TelemetryService 相关接口响应和报文内容格式;
  2. /redfish/v1/TelemetryService 接口下新增 SchemaComplianceMode 属性表示 TelemetryService 相关接口响应和报文内容格式;

详细描述

评审点1:TelemetryService对象资源协作接口新增SchemaComplianceMode属性

资源path/bmc/kepler/TelemetryService
资源interfacebmc.kepler.TelemetryService
变化类型 :新增属性SchemaComplianceMode
应用场景 :控制 TelemetryService 资源显示格式

变更类型 属性名称 签名 只读 变化通知 属性描述 访问权限 属性来源 持久化类型 变更影响
新增 SchemaComplianceMode s false true TelemetryService 资源显示格式。
取值:Standard: 按 Redfish 标准格式展示 TelemetryService 相关资源和 MetricReport 事件报文,Oem: 保持当前存量 OEM 格式展示,用于兼容已有北向对接实现
默认值:Standard
Read: ReadOnly
Write: BasicSetting
NA 掉电持久化 无影响

评审点2:TelemetryService接口下新增Oem.{{OemIdentifier}}. SchemaComplianceMode属性

资源URI:/redfish/v1/TelemetryService

资源版本:TelemetryService.v1_3_4

变化类型:新增 OEM 属性

操作类型:GET/PATCH

属性列表:

属性名 类型 示例/默认值/取值约束 readonly 易变属性 实现PATCH 操作权限 描述
Oem/{{OemIdentifier}}/SchemaComplianceMode string Standard / Oem,默认值为 Standard false Read:ReadOnly;Patch:BasicSetting TelemetryService 相关接口及上报报文格式模式,用于控制标准格式或 OEM 格式展示

属性示例:

{
    "@odata.id": "/redfish/v1/TelemetryService",
    "@odata.type": "#TelemetryService.v1_3_4.TelemetryService",
    "Id": "TelemetryService",
    "Name": "Telemetry Service",
    "Oem": {
        "{{OemIdentifier}}": {
            "SchemaComplianceMode":"Standard"
        }
    }
}

PATCH 示例:

{
    "Oem": {
        "{{OemIdentifier}}": {
            "SchemaComplianceMode": "Oem"
        }
    }
}

SchemaComplianceMode 对接口展示的影响如下:

接口/报文 Standard 模式 Oem 模式
MetricDefinitions/{id}MetricProperties 字符串数组,例如 ["/redfish/v1/Chassis/1/Sensors/CPU#/Reading"] 保持原有数组对象格式
MetricReports/{id}MetricReportDefinition 对象,例如 {"@odata.id": "/redfish/v1/TelemetryService/MetricReportDefinitions/{id}"} 保持原有数组对象格式
MetricReport 事件 @odata.id 修正为 /redfish/v1/TelemetryService/MetricReports/{MetricReportId} 保持原有路径格式
MetricReport 事件 Id 使用上报报告类型 保持原有数字编号
MetricReport 事件指标值字段 使用 MetricValues 保持原有 GeneratedMetricReportValues
MetricReport 事件冗余字段 不携带 EventTypeMetricReportName 保持原有字段

评审结论

已下线审核,同意新增SchemaComplianceMode资源协作接口属性,Redfish属性SchemaComplianceMode已在相关组织评审

遗留问题