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

背景

当前 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}}.FormatMode

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

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

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

评审点

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

详细描述

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

资源URI:/redfish/v1/TelemetryService

资源版本:TelemetryService.v1_3_4

变化类型:新增 OEM 属性

操作类型:GET/PATCH

属性列表:

属性名 类型 示例/默认值/取值约束 readonly 易变属性 实现PATCH 操作权限 描述
Oem/{{OemIdentifier}}/FormatMode string Standard / OEM,默认值为 OEM 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}}": {
            "FormatMode": "Standard"
        }
    }
}

PATCH 示例:

{
    "Oem": {
        "{{OemIdentifier}}": {
            "FormatMode": "Oem"
        }
    }
}

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

接口/报文 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 保持原有字段