背景
当前 TelemetryService 相关 Redfish 接口响应、上报数据格式存在部分Oem定制属性与 Redfish 标准定义不一致的问题,主要包括:
/redfish/v1/TelemetryService/MetricDefinitions/{MetricDefinitionId}资源中,MetricProperties当前自定义实现为数组对象,标准格式应为字符串数组。/redfish/v1/TelemetryService/MetricReports/{MetricReportId}资源中,MetricReportDefinition当前自定义实现为数组对象,标准格式应为对象。- MetricReport 事件上报报文格式中:
Id自定义序号使用数字编号,标准格式应使用上报报告类型。- 报文中的
GeneratedMetricReportValues应对应标准格式中的MetricValues。 - 标准格式的报文体中不会出现
EventType和MetricReportName。
为对接 Redfish 标准实现,同时兼容已有北向对接场景,在 TelemetryService 接口下新增属性用于控制 TelemetryService 相关资源和 MetricReport 事件报文按 Redfish 标准格式展示,或保持原有 OEM 存量格式展示。
相关评审链接
暂无
关联ISSUE
暂无
整体方案
在 /redfish/v1/TelemetryService 接口下新增 OEM 属性控制 TelemetryService 资源显示格式。:
Oem.{{OemIdentifier}}.FormatMode
该属性为枚举字符串,取值如下:
| 取值 | 含义 |
|---|---|
Standard |
按 Redfish 标准格式展示 TelemetryService 相关资源和 MetricReport 事件报文 |
Oem |
保持当前存量 OEM 格式展示,用于兼容已有北向对接实现 |
同时,在资源协作接口 /bmc/kepler/TelemetryService 的 bmc.kepler.TelemetryService 下新增 FormatMode 属性,用于保存和控制当前格式模式。
评审点
- 在
/redfish/v1/TelemetryService接口下新增FormatMode属性表示 TelemetryService 相关接口响应和报文内容格式; 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 事件冗余字段 | 不携带 EventType、MetricReportName |
保持原有字段 |