Redfish 遥测服务使用指导

概述

本文档介绍 openUBMC Redfish 遥测服务的使用方法,支持使用者端到端使用遥测功能,包括自定义指标、指标报告和触发器,以及通过 Redfish 接口查询指标和实现指标上报到远端服务器。

认识遥测服务

Redfish 遥测服务(TelemetryService)是 Redfish 标准中用于收集和报告设备监控数据的服务。通过遥测服务,用户可以:

  • 定义需要采集的指标
  • 配置指标采集和报告策略
  • 设置阈值触发器,实现异常告警
  • 将指标数据上报到远端服务器

遥测服务遵循 DMTF Redfish 标准,与 openUBMC 系统深度集成,支持对 CPU、内存、温度、功率等系统资源进行实时监控。

TelemetryService 接口

接口位置

遥测服务的根接口 URI 为:

/redfish/v1/TelemetryService

关键属性

属性名类型描述
IdString遥测服务的唯一标识符
NameString遥测服务名称
MaxReportsInteger支持的最大指标报告数
MinCollectionIntervalString最小采集时间间隔
ServiceEnabledBoolean遥测服务是否使能
SupportedCollectionFunctionsArray针对指标支持的算法,包括:
Average 求平均值
Maximum 求最大值
Minimum 求最小值
Summation 求和

子资源集合

TelemetryService 包含以下子资源集合:

  • MetricDefinitions - 指标定义集合
  • MetricReportDefinitions - 指标报告定义集合
  • MetricReports - 指标报告集合
  • Triggers - 触发器集合

查询遥测服务

查询遥测服务信息:

bash
GET https://{bmc_ip}/redfish/v1/TelemetryService

修改遥测服务信息:

bash
PATCH https://{bmc_ip}/redfish/v1/TelemetryService

响应示例:

json
{
    "@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 - 清除指标报告

删除遥测服务中的所有指标报告。

bash
POST https://{bmc_ip}/redfish/v1/TelemetryService/Actions/TelemetryService.ClearMetricReports

请求体:无

响应示例:

json
{
    "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 - 重置指标报告定义

将所有指标报告定义重置为出厂默认值,此操作可能会删除自定义的指标报告定义。

bash
POST https://{bmc_ip}/redfish/v1/TelemetryService/Actions/TelemetryService.ResetMetricReportDefinitionsToDefaults

请求体:无

响应示例:

json
{
    "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 - 重置触发器

将所有触发器重置为出厂默认值,此操作可能会删除自定义的触发器。

bash
POST https://{bmc_ip}/redfish/v1/TelemetryService/Actions/TelemetryService.ResetTriggersToDefaults

请求体:无

响应示例:

json
{
    "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 - 提交测试指标报告

生成一个测试指标报告,并立即通过事件服务发送到已订阅的事件目标。

bash
POST https://{bmc_ip}/redfish/v1/TelemetryService/Actions/TelemetryService.SubmitTestMetricReport

请求体示例:

json
{
    "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"
            }
        }
    ]
}

请求参数说明:

参数名类型必填描述
MetricReportNameString生成的指标报告名称
GeneratedMetricReportValuesArray指标值数组

响应示例:

json
{
    "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 指标定义

json
{
    "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 接口

查询所有指标定义

bash
GET https://{bmc_ip}/redfish/v1/TelemetryService/MetricDefinitions

查询单个指标定义

bash
GET https://{bmc_ip}/redfish/v1/TelemetryService/MetricDefinitions/{MetricDefinitionId}

关键属性说明

属性名类型描述示例值
IdString指标定义的唯一标识符AveragePower
NameString指标定义名称Average Power
DescriptionString指标定义描述Metric definition for average power
AccuracyInteger指标精度,单位:%90
CalculableEnum指标可计算性NonCalculableNonSummableSummable
CalculationAlgorithmEnum计算算法AverageMaximumMinimumOEM
CalculationParametersObject Array用于计算目标指标值所需要的指标项,说明:
这些指标项必须在MetricProperties数组中被定义,如果ImplementationType取值为Synthesized或Calculated,则必须给出此属性
CalculationTimeIntervalString计算时间间隔PT60S(60 秒)
CalibrationInteger指标值的校准偏移量,对离散型指标项无效
目标值 = Calibration + 原始值
0无偏移
DiscreteValuesArray指定离散型指标值的离散取值[1, 5, 10]
ImplementationEnum实现方式,支持的方式:
Calculated:通过另一个metric property计算得到
DigitalMeter:数值型,例如计数
PhysicalSensor:来自物理传感器
Synthesized:合成型,由多个metric properties计算得到
PhysicalSensorCalculatedSynthesizedDigitalMeter
IsLinearBoolean指标项取值是否为线性值true
LogicalContextArray指标项关联的业务类型,支持的类型:
Capacity:容量
Environment:环境
Network:网络
Performance:性能
Security:安全
Storage:存储
["Capacity", "Environment", "Network", "Performance", "Security", "Storage"]
MaxReadingRangeNumber最大读数范围120
MetricDataTypeEnum指标数据类型IntegerDecimalBooleanStringDateTimeEnumeration
MetricPropertiesArray指标属性 URI 列表["/redfish/v1/Chassis/{ChassisId}/Power#PowerControl/{PowerControlId}/PowerMetrics/AverageConsumedWatts"]
MetricTypeEnum指标类型NumericDiscreteGaugeCounterCountdownString
MinReadingRangeNumber最小读数范围0
PhysicalContextEnum物理上下文CPUMemoryFanPowerSupply
PrecisionInteger精度(有效数字位数)1
UnitsString指标单位Cel(摄氏度)、Percent(百分比)
SensingIntervalString采集项数据刷新时间PT5S(5 秒)
TimestampAccuracyString时间精度PT5S(5 秒)
WildcardsArrayMetricProperties中定义的通配取值说明[{"Name": "ChassisId","Values": ["1"]}]

响应示例

json
{
    "@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 指标定义

json
{
    "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 接口

创建指标报告定义

bash
POST https://{bmc_ip}/redfish/v1/TelemetryService/MetricReportDefinitions

请求体示例:

json
{
    "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"
}

查询所有指标报告定义

bash
GET https://{bmc_ip}/redfish/v1/TelemetryService/MetricReportDefinitions

查询单个指标报告定义

bash
GET https://{bmc_ip}/redfish/v1/TelemetryService/MetricReportDefinitions/{ReportDefinitionId}

修改指标报告定义

bash
PATCH https://{bmc_ip}/redfish/v1/TelemetryService/MetricReportDefinitions/{ReportDefinitionId}

删除指标报告定义

bash
DELETE https://{bmc_ip}/redfish/v1/TelemetryService/MetricReportDefinitions/{ReportDefinitionId}

关键属性说明

属性名类型描述示例值
IdString指标报告定义的唯一标识符CPUMetricsReport
NameString指标报告定义名称CPU Metrics Report
AppendLimitInteger追加模式下最大条目数128
DescriptionString指标报告定义描述CPU 指标报告
MetricReportDefinitionTypeEnum报告生成类型,支持三种方式
OnChange:采集项取值变化时产生
OnRequest:查询MetricReport时收集并生成
Periodic:周期性产生,如果选择这个方式,需要指定Schedule属性来指定周期
PeriodicOnChangeOnRequest
MetricReportDefinitionEnabledBoolean是否启用报告定义true
MetricsArray要采集的指标列表-
ReportActionsArray报告生成后的动作
LogToMetricReportsCollection:记录在对应MetricReport资源
RedfishEvent:通过redfish事件上报给订阅者
LogToMetricReportsCollectionRedfishEvent
ReportUpdatesEnum报告更新方式
AppendWrapsWhenFull:新纪录覆盖旧记录
AppendWrapsWhenFull
ScheduleObject周期性报告的调度配置-
StatusObject服务上报指标定义资源状态-
TriggersArray触发产生新的MetricReport的Triggers资源链接,要求对应的Triggers资源定义时TriggerActions属性取值必须包括RedfishMetricReport-

调度配置(Schedule)

属性名类型描述示例值
InitialStartTimeString开始采集时间2026-01-01T00:00:00+08:00
RecurrenceIntervalString循环间隔时间PT30S(30 秒)
LifetimeString最大采集时长P1D(1 天)
MaxOccurrencesInteger最大采集次数100

指标配置(Metrics)

每个指标可包含以下属性:

属性名类型描述示例值
MetricIdString指标定义的 IDCPU0Temperature
CollectionFunctionEnum采集函数AverageMaximumMinimumSummation
CollectionTimeScopeEnum采集时间范围PointIntervalStartupInterval
CollectionDurationString采集持续时间PT30S(30 秒)

响应示例

json
{
    "@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 接口

查询所有指标报告

bash
GET https://{bmc_ip}/redfish/v1/TelemetryService/MetricReports

查询单个指标报告

bash
GET https://{bmc_ip}/redfish/v1/TelemetryService/MetricReports/{ReportId}

关键属性说明

属性名类型描述
IdString指标报告的唯一标识符
NameString指标报告名称
DescriptionString指标报告描述
MetricReportDefinitionObject关联的指标报告定义
MetricValuesArray指标值数组
TimestampString报告生成时间戳

指标值(MetricValue)属性

属性名类型描述
MetricIdString指标定义的 ID
MetricPropertyString指标属性 URI
MetricValueString指标值(字符串格式)
TimestampString指标采集时间戳
MetricDefinitionObject采集指标定义的链接

响应示例

json
{
    "@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 触发器配置

json
{
  "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 接口

创建触发器

bash
POST https://{bmc_ip}/redfish/v1/TelemetryService/Triggers

请求体示例:

json
{
    "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
}

查询所有触发器

bash
GET https://{bmc_ip}/redfish/v1/TelemetryService/Triggers

查询单个触发器

bash
GET https://{bmc_ip}/redfish/v1/TelemetryService/Triggers/{TriggerId}

修改触发器

bash
PATCH https://{bmc_ip}/redfish/v1/TelemetryService/Triggers/{TriggerId}

删除触发器

bash
DELETE https://{bmc_ip}/redfish/v1/TelemetryService/Triggers/{TriggerId}

关键属性说明

属性名类型描述示例值
IdString触发器的唯一标识符AveragePowerTriggers
NameString触发器名称AveragePowerTriggers
DescriptionString触发器描述Description of AveragePowerTriggers
LinksObject关联的指标报告定义资源链接{"MetricReportDefinitions": [{"@odata.id": "/redfish/v1/TelemetryService/MetricReportDefinitions/AveragePowerReport"}]}
MetricIdsArray关联的指标定义 ID 列表["AveragePower"]
MetricTypeEnum指标类型Numeric
NumericThresholdsObject数值型阈值配置-
TriggerActionsArray触发动作列表RedfishEventRedfishMetricReport
TriggerEnabledBoolean是否启用触发器true

触发动作说明

  • RedfishEvent - 发送 Redfish 事件给订阅者
  • RedfishMetricReport - 强制更新指定的指标报告

阈值激活方式说明

  • Increasing - 值增加超过阈值时激活
  • Decreasing - 值降低低于阈值时激活
  • Either - 值在任一方向超过阈值时激活
  • Disabled - 禁用该阈值

数值型阈值(NumericThresholds)

属性名类型描述示例值
UpperCriticalObject上限严重阈值-
UpperWarningObject上限警告阈值-
LowerCriticalObject下限严重阈值-
LowerWarningObject下限警告阈值-

每个阈值包含以下属性:

属性名类型描述示例值
ReadingNumber阈值读数95
ActivationEnum激活方式IncreasingDecreasingEitherDisabled
DwellTimeString迟滞时间PT30S(30 秒)

响应示例

json
{
    "@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)功能将指标数据上报到远端服务器。

配置事件订阅

创建事件订阅

bash
POST https://{bmc_ip}/redfish/v1/EventService/Subscriptions

请求体示例:

json
{
  "Destination": "https://{remote_server}:8080/metrics",
  "Protocol": "Redfish",
  "EventTypes": ["MetricReport"],
  "Context": "TelemetryMonitoring"
}

事件订阅关键属性

属性名类型描述示例值
DestinationString目标服务器 URLhttps://remote_server:8080/metrics
ProtocolEnum传输协议Redfish
EventTypeArray事件类型MetricReport
ContextString上下文信息TelemetryMonitoring

事件类型说明

  • MetricReport - 指标报告事件
  • StatusChange - 状态变更事件
  • ResourceAdded - 资源添加事件
  • ResourceRemoved - 资源移除事件
  • Alert - 告警事件

上报配置

在 MetricReportDefinition 中配置 ReportActions 包含 RedfishEvent

json
{
  "ReportActions": [
    "LogToMetricReportsCollection",
    "RedfishEvent"
  ]
}

上报事件格式

当触发条件满足时,BMC 会向目标服务器发送 POST 请求,请求体格式如下:

json
{
    "@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
}

常见问题

遥测服务无法启用

请检查以下配置项:

  1. 确认 ServiceEnabled 属性设置为 true
  2. 检查 Status.Health 是否为 OK
  3. 验证系统资源是否充足

指标报告未生成

请检查以下配置项:

  1. 确认 MetricReportDefinitionEnabled 设置为 true
  2. 检查 Schedule.RecurrenceInterval 是否配置正确
  3. 验证指标定义的 MetricProperties 路径是否有效

触发器未触发

请检查以下配置项:

  1. 确认 TriggerEnabled 设置为 true
  2. 检查阈值设置是否合理
  3. 验证 MetricIdsMetricProperties 是否正确
  4. 检查 DwellTime 设置是否过长

指标上报失败

请检查以下配置项:

  1. 确认事件订阅的 Destination URL 可达
  2. 检查远端服务器是否正常监听
  3. 验证网络防火墙规则
  4. 确认 ReportActions 包含 RedfishEvent