Redfish 遥测服务使用指导
概述
本文档介绍 openUBMC Redfish 遥测服务的使用方法,支持使用者端到端使用遥测功能,包括自定义指标、指标报告和触发器,以及通过 Redfish 接口查询指标和实现指标上报到远端服务器。
认识遥测服务
Redfish 遥测服务(TelemetryService)是 Redfish 标准中用于收集和报告设备监控数据的服务。通过遥测服务,用户可以:
- 定义需要采集的指标
- 配置指标采集和报告策略
- 设置阈值触发器,实现异常告警
- 将指标数据上报到远端服务器
遥测服务遵循 DMTF Redfish 标准,与 openUBMC 系统深度集成,支持对 CPU、内存、温度、功率等系统资源进行实时监控。
TelemetryService 接口
接口位置
遥测服务的根接口 URI 为:
/redfish/v1/TelemetryService关键属性
| 属性名 | 类型 | 描述 |
|---|---|---|
Id | String | 遥测服务的唯一标识符 |
Name | String | 遥测服务名称 |
MaxReports | Integer | 支持的最大指标报告数 |
MinCollectionInterval | String | 最小采集时间间隔 |
ServiceEnabled | Boolean | 遥测服务是否使能 |
SupportedCollectionFunctions | Array | 针对指标支持的算法,包括: Average 求平均值 Maximum 求最大值 Minimum 求最小值 Summation 求和 |
子资源集合
TelemetryService 包含以下子资源集合:
MetricDefinitions- 指标定义集合MetricReportDefinitions- 指标报告定义集合MetricReports- 指标报告集合Triggers- 触发器集合
查询遥测服务
查询遥测服务信息:
GET https://{bmc_ip}/redfish/v1/TelemetryService修改遥测服务信息:
PATCH https://{bmc_ip}/redfish/v1/TelemetryService响应示例:
{
"@odata.context": "/redfish/v1/$metadata#TelemetryService.TelemetryService",
"@odata.id": "/redfish/v1/TelemetryService",
"@odata.type": "#TelemetryService.v1_3_4.TelemetryService",
"MaxReports": 32,
"Id": "TelemetryService",
"Name": "Telemetry Service",
"MetricDefinitions": {
"@odata.id": "/redfish/v1/TelemetryService/MetricDefinitions"
},
"MetricReportDefinitions": {
"@odata.id": "/redfish/v1/TelemetryService/MetricReportDefinitions"
},
"MetricReports": {
"@odata.id": "/redfish/v1/TelemetryService/MetricReports"
},
"MinCollectionInterval": "PT0H0M10S",
"ServiceEnabled": true,
"SupportedCollectionFunctions": [
"Average",
"Maximum",
"Minimum",
"Summation"
],
"Triggers": {
"@odata.id": "/redfish/v1/TelemetryService/Triggers"
},
"Actions": {
"#TelemetryService.ClearMetricReports": {
"target": "/redfish/v1/TelemetryService/Actions/TelemetryService.ClearMetricReports",
"@Redfish.ActionInfo": "/redfish/v1/TelemetryService/ClearMetricReportsActionInfo"
},
"#TelemetryService.ResetMetricReportDefinitionsToDefaults": {
"target": "/redfish/v1/TelemetryService/Actions/TelemetryService.ResetMetricReportDefinitionsToDefaults",
"@Redfish.ActionInfo": "/redfish/v1/TelemetryService/ResetMetricReportDefinitionsToDefaultsActionInfo"
},
"#TelemetryService.ResetTriggersToDefaults": {
"target": "/redfish/v1/TelemetryService/Actions/TelemetryService.ResetTriggersToDefaults",
"@Redfish.ActionInfo": "/redfish/v1/TelemetryService/ResetTriggersToDefaultsActionInfo"
},
"#TelemetryService.SubmitTestMetricReport": {
"target": "/redfish/v1/TelemetryService/Actions/TelemetryService.SubmitTestMetricReport",
"@Redfish.ActionInfo": "/redfish/v1/TelemetryService/SubmitTestMetricReportActionInfo"
}
}
}Action 操作
TelemetryService 提供了以下 Action 操作,用于执行遥测服务的管理功能。
#TelemetryService.ClearMetricReports- 清除指标报告#TelemetryService.ResetMetricReportDefinitionsToDefaults- 将指标报告定义重置为默认状态#TelemetryService.ResetTriggersToDefaults- 将触发器重置为默认状态#TelemetryService.SubmitTestMetricReport- 提交测试指标报告
ClearMetricReports - 清除指标报告
删除遥测服务中的所有指标报告。
POST https://{bmc_ip}/redfish/v1/TelemetryService/Actions/TelemetryService.ClearMetricReports请求体:无
响应示例:
{
"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"
}
]
}
}注意
此操作将删除所有指标报告,删除后无法恢复,请谨慎使用。
ResetMetricReportDefinitionsToDefaults - 重置指标报告定义
将所有指标报告定义重置为出厂默认值,此操作可能会删除自定义的指标报告定义。
POST https://{bmc_ip}/redfish/v1/TelemetryService/Actions/TelemetryService.ResetMetricReportDefinitionsToDefaults请求体:无
响应示例:
{
"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"
}
]
}
}注意
此操作将删除所有自定义的指标报告定义,恢复为系统出厂默认配置,请谨慎使用。
ResetTriggersToDefaults - 重置触发器
将所有触发器重置为出厂默认值,此操作可能会删除自定义的触发器。
POST https://{bmc_ip}/redfish/v1/TelemetryService/Actions/TelemetryService.ResetTriggersToDefaults请求体:无
响应示例:
{
"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"
}
]
}
}注意
此操作将删除所有自定义的触发器,恢复为系统出厂默认配置,请谨慎使用。
SubmitTestMetricReport - 提交测试指标报告
生成一个测试指标报告,并立即通过事件服务发送到已订阅的事件目标。
POST https://{bmc_ip}/redfish/v1/TelemetryService/Actions/TelemetryService.SubmitTestMetricReport请求体示例:
{
"MetricReportName": "TestMetricReport",
"GeneratedMetricReportValues": [
{
"MetricId": "AverageReadingCelsius",
"Timestamp": "2020-12-06T12:00:00Z",
"MetricProperty": "/redfish/v1/Chassis/Tray_1/Thermal#/Temperatures/0/ReadingCelsius",
"MetricValue": "50",
"MetricDefinition": {
"@odata.id": "/redfish/v1/TelemetryService/MetricDefinitions/AverageReadingCelsius"
}
}
]
}请求参数说明:
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
MetricReportName | String | 是 | 生成的指标报告名称 |
GeneratedMetricReportValues | Array | 是 | 指标值数组 |
响应示例:
{
"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"
}
]
}
}说明
此 Action 主要用于测试遥测服务的事件上报功能,生成的测试报告会发送到所有已订阅的事件目标。
指标定义(MetricDefinition)
概述
MetricDefinition 定义了采集指标的元数据信息,包括指标的数据类型、单位、采集方式、物理上下文等。每个指标定义描述了一类指标的通用属性。
通过 CSR 配置指标定义
在 openUBMC 系统中,可以通过 CSR 配置来定义指标。以下是通过 CSR 配置指标定义的示例:
AveragePower 指标定义
{
"MetricDefinition_AveragePower": {
"Id": "AveragePower",
"MetricProperties": ["/redfish/v1/Chassis/{ChassisId}/Power#PowerControl/{PowerControlId}/PowerMetrics/AverageConsumedWatts"],
"MetricDataType": "Decimal",
"PhysicalContext": "PowerSupply",
"Description": "Metric definition for average power",
"LogicalContexts": ["Capacity"],
"IsLinear": true,
"MinReadingRange": 0,
"MaxReadingRange": 9999,
"Implementation": "Calculated",
"CalculationParameters": [{
"ResultMetric": "/redfish/v1/Chassis/{ChassisId}/Power#PowerControl/{PowerControlId}/PowerMetrics/AverageConsumedWatts",
"SourceMetric": "/redfish/v1/Chassis/{ChassisId}/Power#PowerControl/{PowerControlId}/PowerConsumedWatts"
}
],
"CalculationAlgorithm": "Average",
"Calculable": "NonCalculatable",
"Wildcards": [{
"Name": "ChassisId",
"Values": ["1"]
}, {
"Name": "PowerControlId",
"Values": ["0"]
}
],
"Name": "Average Power",
"MetricType": "Numeric",
"SensingInterval": "PT5S",
"TimestampAccuracy": "PT1S",
"Units": "W"
}
}MetricDefinitions 接口
查询所有指标定义
GET https://{bmc_ip}/redfish/v1/TelemetryService/MetricDefinitions查询单个指标定义
GET https://{bmc_ip}/redfish/v1/TelemetryService/MetricDefinitions/{MetricDefinitionId}关键属性说明
| 属性名 | 类型 | 描述 | 示例值 |
|---|---|---|---|
Id | String | 指标定义的唯一标识符 | AveragePower |
Name | String | 指标定义名称 | Average Power |
Description | String | 指标定义描述 | Metric definition for average power |
Accuracy | Integer | 指标精度,单位:% | 90 |
Calculable | Enum | 指标可计算性 | NonCalculable、NonSummable、Summable |
CalculationAlgorithm | Enum | 计算算法 | Average、Maximum、Minimum、OEM |
CalculationParameters | Object Array | 用于计算目标指标值所需要的指标项,说明: 这些指标项必须在MetricProperties数组中被定义,如果ImplementationType取值为Synthesized或Calculated,则必须给出此属性 | |
CalculationTimeInterval | String | 计算时间间隔 | PT60S(60 秒) |
Calibration | Integer | 指标值的校准偏移量,对离散型指标项无效 目标值 = Calibration + 原始值 | 0无偏移 |
DiscreteValues | Array | 指定离散型指标值的离散取值 | [1, 5, 10] |
Implementation | Enum | 实现方式,支持的方式: Calculated:通过另一个metric property计算得到 DigitalMeter:数值型,例如计数 PhysicalSensor:来自物理传感器 Synthesized:合成型,由多个metric properties计算得到 | PhysicalSensor、Calculated、Synthesized、DigitalMeter |
IsLinear | Boolean | 指标项取值是否为线性值 | true |
LogicalContext | Array | 指标项关联的业务类型,支持的类型: Capacity:容量 Environment:环境 Network:网络 Performance:性能 Security:安全 Storage:存储 | ["Capacity", "Environment", "Network", "Performance", "Security", "Storage"] |
MaxReadingRange | Number | 最大读数范围 | 120 |
MetricDataType | Enum | 指标数据类型 | Integer、Decimal、Boolean、String、DateTime、Enumeration |
MetricProperties | Array | 指标属性 URI 列表 | ["/redfish/v1/Chassis/{ChassisId}/Power#PowerControl/{PowerControlId}/PowerMetrics/AverageConsumedWatts"] |
MetricType | Enum | 指标类型 | Numeric、Discrete、Gauge、Counter、Countdown、String |
MinReadingRange | Number | 最小读数范围 | 0 |
PhysicalContext | Enum | 物理上下文 | CPU、Memory、Fan、PowerSupply 等 |
Precision | Integer | 精度(有效数字位数) | 1 |
Units | String | 指标单位 | Cel(摄氏度)、Percent(百分比) |
SensingInterval | String | 采集项数据刷新时间 | PT5S(5 秒) |
TimestampAccuracy | String | 时间精度 | PT5S(5 秒) |
Wildcards | Array | MetricProperties中定义的通配取值说明 | [{"Name": "ChassisId","Values": ["1"]}] |
响应示例
{
"@odata.context": "/redfish/v1/$metadata#MetricDefinition.MetricDefinition",
"@odata.id": "/redfish/v1/TelemetryService/MetricDefinitions/AveragePower",
"@odata.type": "#MetricDefinition.v1_3_4.MetricDefinition",
"Id": "AveragePower",
"Name": "Average Power",
"Description": "Metric definition for average power",
"Accuracy": 0,
"Calculable": "NonCalculatable",
"CalculationAlgorithm": "Average",
"CalculationParameters": [
{
"ResultMetric": "/redfish/v1/Chassis/{ChassisId}/Power#PowerControl/{PowerControlId}/PowerMetrics/AverageConsumedWatts",
"SourceMetric": "/redfish/v1/Chassis/{ChassisId}/Power#PowerControl/{PowerControlId}/PowerConsumedWatts"
}
],
"CalculationTimeInterval": "",
"Calibration": 0,
"DiscreteValues": null,
"Implementation": "Calculated",
"IsLinear": true,
"LogicalContexts": [
"Capacity"
],
"MaxReadingRange": 9999,
"MetricDataType": "Decimal",
"MetricProperties": [
{
"@odata.id": "/redfish/v1/Chassis/{ChassisId}/Power#PowerControl/{PowerControlId}/PowerMetrics/AverageConsumedWatts"
}
],
"MetricType": "Numeric",
"MinReadingRange": 0,
"PhysicalContext": "PowerSupply",
"Precision": null,
"SensingInterval": "PT5S",
"TimestampAccuracy": "PT1S",
"Units": "W",
"Wildcards": [
{
"Name": "ChassisId",
"Values": [
"1"
]
},
{
"Name": "PowerControlId",
"Values": [
"0"
]
}
]
}指标报告定义(MetricReportDefinition)
概述
MetricReportDefinition 定义了如何采集和生成指标报告,包括采集哪些指标、采集频率、报告生成方式等。
通过 CSR 配置指标定义
在 openUBMC 系统中,可以通过 CSR 配置来定义指标报告。以下是通过 CSR 配置指标报告定义的示例:
AveragePower 指标定义
{
"MetricReportDefinition_AveragePowerReport": {
"Id": "AveragePowerReport",
"AppendLimit": 128,
"MetricReportDefinitionEnabled": false,
"MetricReportDefinitionType": "Periodic",
"Description": "Metric report of Average Power",
"Metrics": [{
"CollectionDuration": "",
"CollectionFunction": "",
"CollectionTimeScope": "Interval",
"MetricId": "AveragePower"
}
],
"RecurrenceInterval": "PT5M",
"Name": "Metric report of Average Power",
"ReportActions": ["LogToMetricReportsCollection", "RedfishEvent"],
"ReportUpdates": "AppendWrapsWhenFull"
}
}MetricReportDefinitions 接口
创建指标报告定义
POST https://{bmc_ip}/redfish/v1/TelemetryService/MetricReportDefinitions请求体示例:
{
"Id": "TestMeticReport",
"Name": "TestMeticReport",
"Description": "TestMeticReport",
"MetricReportDefinitionEnabled": true,
"MetricReportDefinitionType": "Periodic",
"Metrics": [
{
"CollectionDuration": "PT11S",
"CollectionFunction": "Average",
"CollectionTimeScope": "Interval",
"MetricId": "FanSpeed"
}
],
"Schedule": {
"Lifetime": "P1D",
"MaxOccurrences": 5,
"RecurrenceInterval": "PT10S"
},
"ReportActions": [
"RedfishEvent",
"LogToMetricReportsCollection"
],
"ReportUpdates": "AppendWrapsWhenFull"
}查询所有指标报告定义
GET https://{bmc_ip}/redfish/v1/TelemetryService/MetricReportDefinitions查询单个指标报告定义
GET https://{bmc_ip}/redfish/v1/TelemetryService/MetricReportDefinitions/{ReportDefinitionId}修改指标报告定义
PATCH https://{bmc_ip}/redfish/v1/TelemetryService/MetricReportDefinitions/{ReportDefinitionId}删除指标报告定义
DELETE https://{bmc_ip}/redfish/v1/TelemetryService/MetricReportDefinitions/{ReportDefinitionId}关键属性说明
| 属性名 | 类型 | 描述 | 示例值 |
|---|---|---|---|
Id | String | 指标报告定义的唯一标识符 | CPUMetricsReport |
Name | String | 指标报告定义名称 | CPU Metrics Report |
AppendLimit | Integer | 追加模式下最大条目数 | 128 |
Description | String | 指标报告定义描述 | CPU 指标报告 |
MetricReportDefinitionType | Enum | 报告生成类型,支持三种方式 OnChange:采集项取值变化时产生 OnRequest:查询MetricReport时收集并生成 Periodic:周期性产生,如果选择这个方式,需要指定Schedule属性来指定周期 | Periodic、OnChange、OnRequest |
MetricReportDefinitionEnabled | Boolean | 是否启用报告定义 | true |
Metrics | Array | 要采集的指标列表 | - |
ReportActions | Array | 报告生成后的动作 LogToMetricReportsCollection:记录在对应MetricReport资源 RedfishEvent:通过redfish事件上报给订阅者 | LogToMetricReportsCollection、RedfishEvent |
ReportUpdates | Enum | 报告更新方式 AppendWrapsWhenFull:新纪录覆盖旧记录 | AppendWrapsWhenFull |
Schedule | Object | 周期性报告的调度配置 | - |
Status | Object | 服务上报指标定义资源状态 | - |
Triggers | Array | 触发产生新的MetricReport的Triggers资源链接,要求对应的Triggers资源定义时TriggerActions属性取值必须包括RedfishMetricReport | - |
调度配置(Schedule)
| 属性名 | 类型 | 描述 | 示例值 |
|---|---|---|---|
InitialStartTime | String | 开始采集时间 | 2026-01-01T00:00:00+08:00 |
RecurrenceInterval | String | 循环间隔时间 | PT30S(30 秒) |
Lifetime | String | 最大采集时长 | P1D(1 天) |
MaxOccurrences | Integer | 最大采集次数 | 100 |
指标配置(Metrics)
每个指标可包含以下属性:
| 属性名 | 类型 | 描述 | 示例值 |
|---|---|---|---|
MetricId | String | 指标定义的 ID | CPU0Temperature |
CollectionFunction | Enum | 采集函数 | Average、Maximum、Minimum、Summation |
CollectionTimeScope | Enum | 采集时间范围 | Point、Interval、StartupInterval |
CollectionDuration | String | 采集持续时间 | PT30S(30 秒) |
响应示例
{
"@odata.context": "/redfish/v1/$metadata#MetricReportDefinition.MetricReportDefinition",
"@odata.id": "/redfish/v1/TelemetryService/MetricReportDefinitions/AveragePowerReport",
"@odata.type": "#MetricReportDefinition.v1_4_6.MetricReportDefinition",
"Id": "AveragePowerReport",
"Name": "Metric report of Average Power",
"AppendLimit": 128,
"Description": "Metric report of Average Power",
"MetricReport": {
"@odata.id": "/redfish/v1/TelemetryService/MetricReports/AveragePowerReport"
},
"MetricReportDefinitionEnabled": false,
"MetricReportDefinitionType": "Periodic",
"Metrics": [
{
"CollectionDuration": null,
"CollectionFunction": null,
"CollectionTimeScope": "Interval",
"MetricId": "AveragePower"
}
],
"ReportActions": [
"LogToMetricReportsCollection",
"RedfishEvent"
],
"ReportUpdates": "AppendWrapsWhenFull",
"Schedule": {
"InitialStartTime": "1970-01-01T00:00:00+00:00",
"RecurrenceInterval": "PT5M"
},
"Status": {
"Health": "OK",
"State": "Enabled"
},
"Links": {
"Triggers": [
{
"@odata.id": "/redfish/v1/TelemetryService/Triggers/AveragePowerTriggers"
}
]
}
}指标报告(MetricReport)
概述
MetricReport 是实际生成的指标数据报告,包含了采集到的指标值及其时间戳。
MetricReports 接口
查询所有指标报告
GET https://{bmc_ip}/redfish/v1/TelemetryService/MetricReports查询单个指标报告
GET https://{bmc_ip}/redfish/v1/TelemetryService/MetricReports/{ReportId}关键属性说明
| 属性名 | 类型 | 描述 |
|---|---|---|
Id | String | 指标报告的唯一标识符 |
Name | String | 指标报告名称 |
Description | String | 指标报告描述 |
MetricReportDefinition | Object | 关联的指标报告定义 |
MetricValues | Array | 指标值数组 |
Timestamp | String | 报告生成时间戳 |
指标值(MetricValue)属性
| 属性名 | 类型 | 描述 |
|---|---|---|
MetricId | String | 指标定义的 ID |
MetricProperty | String | 指标属性 URI |
MetricValue | String | 指标值(字符串格式) |
Timestamp | String | 指标采集时间戳 |
MetricDefinition | Object | 采集指标定义的链接 |
响应示例
{
"@odata.context": "/redfish/v1/$metadata#MetricReport.MetricReport",
"@odata.id": "/redfish/v1/TelemetryService/MetricReports/AveragePowerReport",
"@odata.type": "#MetricReport.v1_5_2.MetricReport",
"Id": "AveragePowerReport",
"Name": "Metric report of Average Power",
"Description": "Metric report of Average Power",
"MetricReportDefinition": [
{
"@odata.id": "/redfish/v1/TelemetryService/MetricReportDefinitions/AveragePowerReport"
}
],
"MetricValues": [
{
"MetricId": "AveragePower",
"MetricProperty": "/redfish/v1/Chassis/1/Power#PowerControl/0/PowerMetrics/AverageConsumedWatts",
"MetricValue": "186",
"Timestamp": "2026-04-15T02:49:42",
"MetricDefinition": {
"@odata.id": "/redfish/v1/TelemetryService/MetricDefinitions/AveragePower"
}
}
],
"Timestamp": "2026-04-14T12:52:46+00:00"
}触发器(Triggers)
概述
Triggers 用于设置指标的阈值条件,当指标值满足触发条件时,系统可以执行预定义的动作,如发送 Redfish 事件、生成指标报告或记录日志。
通过 CSR 配置触发器
在 openUBMC 系统中,可以通过 CSR 配置来定义触发器。以下是配置示例:
AveragePower 触发器配置
{
"Triggers_AveragePowerTriggers": {
"Id": "AveragePowerTriggers",
"TriggerEnabled": false,
"MetricReportDefinitions": ["AveragePowerReport"],
"Description": "Triggers for Average Power",
"MetricIds": ["AveragePower"],
"UpperCriticalActivation": "Increasing",
"UpperCriticalDwellTime": "PT0S",
"UpperCriticalReading": 400,
"UpperWarningActivation": "Disabled",
"UpperWarningDwellTime": "PT5S",
"UpperWarningReading": 300,
"LowerWarningActivation": "Either",
"LowerWarningDwellTime": "PT2S",
"LowerWarningReading": 200,
"LowerCriticalActivation": "Decreasing",
"LowerCriticalDwellTime": "PT3S",
"LowerCriticalReading": 100,
"MetricType": "Numeric",
"Name": "Triggers for Average Power",
"TriggerActions": ["RedfishMetricReport", "RedfishEvent"]
}
}Triggers 接口
创建触发器
POST https://{bmc_ip}/redfish/v1/TelemetryService/Triggers请求体示例:
{
"Id": "AveragePowerTriggers",
"Name": "AveragePowerTriggers",
"Description": "Description of AveragePowerTriggers",
"Links": {
"MetricReportDefinitions": [
{
"@odata.id": "/redfish/v1/TelemetryService/MetricReportDefinitions/AveragePowerReport"
}
]
},
"MetricIds": ["AveragePower"],
"NumericThresholds": {
"LowerCritical": {
"Reading": 100,
"Activation": "Either",
"DwellTime": "PT3S"
},
"LowerWarning": {
"Reading": 200,
"Activation": "Either",
"DwellTime": "PT3S"
},
"UpperCritical": {
"Reading": 400,
"Activation": "Either",
"DwellTime": "PT3S"
},
"UpperWarning": {
"Reading": 300,
"Activation": "Either",
"DwellTime": "PT3S"
}
},
"TriggerActions": [
"RedfishEvent",
"RedfishMetricReport"
],
"TriggerEnabled": true
}查询所有触发器
GET https://{bmc_ip}/redfish/v1/TelemetryService/Triggers查询单个触发器
GET https://{bmc_ip}/redfish/v1/TelemetryService/Triggers/{TriggerId}修改触发器
PATCH https://{bmc_ip}/redfish/v1/TelemetryService/Triggers/{TriggerId}删除触发器
DELETE https://{bmc_ip}/redfish/v1/TelemetryService/Triggers/{TriggerId}关键属性说明
| 属性名 | 类型 | 描述 | 示例值 |
|---|---|---|---|
Id | String | 触发器的唯一标识符 | AveragePowerTriggers |
Name | String | 触发器名称 | AveragePowerTriggers |
Description | String | 触发器描述 | Description of AveragePowerTriggers |
Links | Object | 关联的指标报告定义资源链接 | {"MetricReportDefinitions": [{"@odata.id": "/redfish/v1/TelemetryService/MetricReportDefinitions/AveragePowerReport"}]} |
MetricIds | Array | 关联的指标定义 ID 列表 | ["AveragePower"] |
MetricType | Enum | 指标类型 | Numeric |
NumericThresholds | Object | 数值型阈值配置 | - |
TriggerActions | Array | 触发动作列表 | RedfishEvent、RedfishMetricReport |
TriggerEnabled | Boolean | 是否启用触发器 | true |
触发动作说明
RedfishEvent- 发送 Redfish 事件给订阅者RedfishMetricReport- 强制更新指定的指标报告
阈值激活方式说明
Increasing- 值增加超过阈值时激活Decreasing- 值降低低于阈值时激活Either- 值在任一方向超过阈值时激活Disabled- 禁用该阈值
数值型阈值(NumericThresholds)
| 属性名 | 类型 | 描述 | 示例值 |
|---|---|---|---|
UpperCritical | Object | 上限严重阈值 | - |
UpperWarning | Object | 上限警告阈值 | - |
LowerCritical | Object | 下限严重阈值 | - |
LowerWarning | Object | 下限警告阈值 | - |
每个阈值包含以下属性:
| 属性名 | 类型 | 描述 | 示例值 |
|---|---|---|---|
Reading | Number | 阈值读数 | 95 |
Activation | Enum | 激活方式 | Increasing、Decreasing、Either、Disabled |
DwellTime | String | 迟滞时间 | PT30S(30 秒) |
响应示例
{
"@odata.context": "/redfish/v1/$metadata#Triggers.v1_4_0.Triggers",
"@odata.id": "/redfish/v1/TelemetryService/Triggers/AveragePowerTriggers",
"@odata.type": "#Triggers.v1_4_0.Triggers",
"Id": "AveragePowerTriggers",
"Description": "Description of AveragePowerTriggers",
"Name": "AveragePowerTriggers",
"Links": {
"MetricReportDefinitions": [
{
"@odata.id": "/redfish/v1/TelemetryService/MetricReportDefinitions/AveragePowerReport"
}
]
},
"MetricIds": [
"AveragePower"
],
"MetricType": "Numeric",
"NumericThresholds": {
"LowerCritical": {
"Reading": 100,
"Activation": "Decreasing",
"DwellTime": "PT5S"
},
"LowerWarning": {
"Reading": 200,
"Activation": "Either",
"DwellTime": "PT2S"
},
"UpperCritical": {
"Reading": 400,
"Activation": "Disabled",
"DwellTime": "PT3S"
},
"UpperWarning": {
"Reading": 300,
"Activation": "Increasing",
"DwellTime": "PT0S"
}
},
"TriggerActions": [
"RedfishMetricReport",
"RedfishEvent"
],
"TriggerEnabled": false
}指标上报到远端服务器
Redfish 遥测服务支持通过事件订阅(Event Service)功能将指标数据上报到远端服务器。
配置事件订阅
创建事件订阅
POST https://{bmc_ip}/redfish/v1/EventService/Subscriptions请求体示例:
{
"Destination": "https://{remote_server}:8080/metrics",
"Protocol": "Redfish",
"EventTypes": ["MetricReport"],
"Context": "TelemetryMonitoring"
}事件订阅关键属性
| 属性名 | 类型 | 描述 | 示例值 |
|---|---|---|---|
Destination | String | 目标服务器 URL | https://remote_server:8080/metrics |
Protocol | Enum | 传输协议 | Redfish |
EventType | Array | 事件类型 | MetricReport |
Context | String | 上下文信息 | TelemetryMonitoring |
事件类型说明
MetricReport- 指标报告事件StatusChange- 状态变更事件ResourceAdded- 资源添加事件ResourceRemoved- 资源移除事件Alert- 告警事件
上报配置
在 MetricReportDefinition 中配置 ReportActions 包含 RedfishEvent:
{
"ReportActions": [
"LogToMetricReportsCollection",
"RedfishEvent"
]
}上报事件格式
当触发条件满足时,BMC 会向目标服务器发送 POST 请求,请求体格式如下:
{
"@odata.type": "#MetricReport.v1_5_2.MetricReport",
"@odata.context": "/redfish/v1/$metadata#MetricReport.MetricReport",
"@odata.id": "/redfish/v1/TelemetryService/MetricReport/AveragePowerReport",
"EventType": "MetricReport",
"MetricReportName": "AveragePowerReport",
"GeneratedMetricReportValues": [
{
"MetricId": "AveragePower",
"MetricValue": "186",
"Timestamp": "2026-04-15T03:44:42",
"MetricProperty": "/redfish/v1/Chassis/1/Power#PowerControl/0/PowerMetrics/AverageConsumedWatts",
"MetricDefinition": {
"@odata.id": "/redfish/v1/TelemetryService/MetricDefinitions/AveragePower"
}
}
],
"MetricValues@odata.count": 1,
"Id": 84
}常见问题
遥测服务无法启用
请检查以下配置项:
- 确认
ServiceEnabled属性设置为true - 检查
Status.Health是否为OK - 验证系统资源是否充足
指标报告未生成
请检查以下配置项:
- 确认
MetricReportDefinitionEnabled设置为true - 检查
Schedule.RecurrenceInterval是否配置正确 - 验证指标定义的
MetricProperties路径是否有效
触发器未触发
请检查以下配置项:
- 确认
TriggerEnabled设置为true - 检查阈值设置是否合理
- 验证
MetricIds或MetricProperties是否正确 - 检查
DwellTime设置是否过长
指标上报失败
请检查以下配置项:
- 确认事件订阅的
DestinationURL 可达 - 检查远端服务器是否正常监听
- 验证网络防火墙规则
- 确认
ReportActions包含RedfishEvent