代码仓
中
更新时间: 2026/11/02
在AtomGit上查看源码

CSR配置字典之MetricReportDefinition类 ​

📋 文档信息 ​

项目内容
文档标题MetricReportDefinition类配置字典
版本v1.0
创建日期2025-04-24
最后更新2025-04-24
维护状态✅ 活跃维护

📋 变更历史记录 ​

版本发布日期变更类型变更内容影响范围维护人员
v1.02025-04-24初始版本创建MetricReportDefinition类配置字典全新文档系统管理员

🎯 类概览 ​

属性值
类名称MetricReportDefinition
功能描述Redfish遥测报告定义配置,用于定义如何收集和生成遥测数据报告
所属SIG组interface
所属组件redfish
最后更新2025-04-24
状态🟢 正常运行

📊 属性定义详表 ​

必选属性 ​

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
IdString-String-报告定义ID唯一标识报告定义"AveragePowerReport"CSR配置软件
NameString-String-报告定义名称报告定义的显示名称"Metric report of Average Power"CSR配置软件
DescriptionString-String-报告定义描述报告定义的详细描述"Metric report of Average Power"CSR配置软件
MetricReportDefinitionTypeString-["OnChange", "OnRequest", "Periodic"]-报告类型产生报告的方式"OnChange"CSR配置软件
ReportActionsString[]-["LogToMetricReportsCollection", "RedfishEvent"]-报告动作产生报告后的动作["LogToMetricReportsCollection", "RedfishEvent"]CSR配置软件
MetricsArray-Array-采集项列表呈现在报告中的采集项定义列表,每个采集项包含MetricId(指标定义的ID)、CollectionFunction(采集函数)、CollectionTimeScope(采集时间范围)、CollectionDuration(采集持续时间)等属性[]CSR配置软件

可选属性 ​

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
AppendLimitU16-[0, 4096]-追加限制单个报告最大记录条数128CSR配置软件
MetricReportDefinitionEnabledBoolean-Boolean-使能状态报告定义的使能状态trueCSR配置软件
ReportUpdatesString-["AppendWrapsWhenFull"]-报告更新方式报告满后的更新方式,AppendWrapsWhenFull:新纪录覆盖旧记录"AppendWrapsWhenFull"CSR配置软件
InitialStartTimeU64-U64-起始时间采集起始时间戳1894165900CSR配置软件
LifetimeString-String-生命周期采集数据的最大时长"P1D"CSR配置软件
MaxOccurrencesU32-U32-最大次数最大采集次数10CSR配置软件
RecurrenceIntervalString-String-重复间隔收集数据的时间间隔"PT10S"CSR配置软件

🔗 动态关联机制 ​

语法规范 ​

yaml
# 报告定义配置
Id: "AveragePowerReport"
Name: "Metric report of Average Power"
Description: "Metric report of Average Power"
MetricReportDefinitionType: "OnChange"
MetricReportDefinitionEnabled: true
ReportActions: ["LogToMetricReportsCollection", "RedfishEvent"]
Metrics: [{"CollectionDuration": "","CollectionFunction": "","CollectionTimeScope": "Interval","MetricId": "SystemPower"}]
# 可选配置
AppendLimit: 128
ReportUpdates: "AppendWrapsWhenFull"
InitialStartTime: 1894165900
Lifetime: "P1D"
MaxOccurrences: 5
RecurrenceInterval: "PT20S"

关联说明 ​

  • Id: 唯一标识报告定义
  • Metrics: 引用MetricDefinition中的指标
  • ReportActions: 定义报告生成后的动作
  • Schedule: 周期性报告的调度配置

📂 分类标准 ​

硬件属性 ​

  • 定义:当前版本无硬件属性
  • 特点:所有属性都是软件管理相关
  • 示例:无

软件属性 ​

  • 定义:由软件管理和维护的报告定义参数
  • 特点:报告配置、调度管理、采集控制等
  • 示例:所有属性都是软件属性

📝 配置示例 ​

OnChange报告定义 ​

json
{
  "MetricReportDefinition_SystemPowerReport": {
    "Id": "SystemPowerReport",
    "AppendLimit": 128,
    "MetricReportDefinitionEnabled": false,
    "MetricReportDefinitionType": "OnChange",
    "Description": "Metric report of System Power",
    "Metrics": [{
            "CollectionDuration": "",
            "CollectionFunction": "",
            "CollectionTimeScope": "Interval",
            "MetricId": "SystemPower"
        }
    ],
    "RecurrenceInterval": "PT5M",
    "Name": "Metric report of System Power",
    "ReportActions": ["LogToMetricReportsCollection", "RedfishEvent"],
    "ReportUpdates": "AppendWrapsWhenFull"
  }
}

Periodic报告定义 ​

json
{
  "MetricReportDefinition_SystemPowerReport": {
    "Id": "SystemPowerReport",
    "AppendLimit": 128,
    "MetricReportDefinitionEnabled": false,
    "MetricReportDefinitionType": "Periodic",
    "Description": "Metric report of System Power",
    "Metrics": [{
            "CollectionDuration": "",
            "CollectionFunction": "",
            "CollectionTimeScope": "Interval",
            "MetricId": "SystemPower"
        }
    ],
    "RecurrenceInterval": "PT5M",
    "Name": "Metric report of System Power",
    "ReportActions": ["LogToMetricReportsCollection", "RedfishEvent"],
    "ReportUpdates": "AppendWrapsWhenFull"
  }
}

OnRequest报告定义 ​

json
{
  "MetricReportDefinition_SystemPowerReport": {
    "Id": "SystemPowerReport",
    "AppendLimit": 128,
    "MetricReportDefinitionEnabled": false,
    "MetricReportDefinitionType": "OnRequest",
    "Description": "Metric report of System Power",
    "Metrics": [{
            "CollectionDuration": "",
            "CollectionFunction": "",
            "CollectionTimeScope": "Interval",
            "MetricId": "SystemPower"
        }
    ],
    "RecurrenceInterval": "PT5M",
    "Name": "Metric report of System Power",
    "ReportActions": ["LogToMetricReportsCollection", "RedfishEvent"],
    "ReportUpdates": "AppendWrapsWhenFull"
  }
}

🔧 使用指南 ​

配置步骤 ​

  1. 设置基本信息:配置Id、Name、Description
  2. 设置报告类型:配置MetricReportDefinitionType
  3. 设置使能:配置MetricReportDefinitionEnabled
  4. 配置指标:配置Metrics列表
  5. 设置动作:配置ReportActions
  6. 配置限制:配置AppendLimit
  7. 配置调度:如果是Periodic类型,配置Schedule参数

报告类型说明 ​

类型说明适用场景
OnChange指标值变化时生成报告;后台固定每 5s 采集一次并与上次结果比较状态变化监控
OnRequest查询时生成报告按需获取数据
Periodic按 RecurrenceInterval 周期性生成报告定期数据采集

报告动作说明(ReportActions) ​

ReportActions 为字符串数组,可同时配置多个动作;redfish 在生成一次报告后逐个执行:

取值说明
LogToMetricReportsCollection把本次采集结果写入 MetricReports 集合(即生成一条可查询的历史报告记录)
RedfishEvent向 Redfish 事件订阅者发送事件,通知本次报告已生成

说明:代码中仅识别上述两个取值(telemetry_service/defs.lua 的 REPORT_ACTION),配置其他字符串不会产生任何动作。

Metrics 采集项字段说明 ​

Metrics 数组的每个元素描述"取哪个指标、如何统计":

字段取值/格式说明
MetricIdString引用 MetricDefinition 的 Id,指定本次采集的指标
CollectionFunctionAverage / Maximum / Minimum / Summation / 空串在 CollectionDuration 时间范围内对原始指标执行的统计算法;空串表示不做统计,直接取原始值
CollectionTimeScopeInterval周期性采集,统计计算作用于 CollectionDuration 指定的时间窗
CollectionTimeScopePoint仅在某个时间点采集一次,此时 CollectionDuration 会被强制按 0 处理
CollectionDurationISO 8601 时长,如 PT30S统计计算持续的时间;CollectionTimeScope=Point 时忽略该字段

说明:CollectionTimeScope 取 Point 且 InitialStartTime 已早于当前时间时,该采集项不会被加入调度(避免补采历史时间点)。

报告更新方式说明 ​

属性取值说明
ReportUpdatesAppendWrapsWhenFull报告记录数达到 AppendLimit 后,新记录覆盖最旧记录(当前 schema 仅允许该取值)
AppendLimit0~4096单个报告最大记录条数
RecurrenceIntervalISO 8601 时长周期采集的调度间隔(Periodic 类型及配置了 CollectionDuration 的统计采集);OnChange 类型固定每 5s 检测一次,不受该值控制;为 0 或空时仅采集一次
LifetimeISO 8601 时长报告数据的最大保留时长
MaxOccurrencesU32报告最多生成次数

时间间隔格式 ​

间隔格式符合ISO 8601持续时间格式:

  • PT10S - 10秒
  • PT1M - 1分钟
  • PT1H - 1小时
  • P1D - 1天
  • P30D - 30天

使用场景 ​

  • 性能监控:定期采集CPU、内存性能数据
  • 状态监控:监控设备状态变化
  • 告警报告:配合Triggers生成告警报告
  • 按需查询:根据需要获取当前系统状态

注意事项 ​

  • 报告容量:AppendLimit控制报告大小,避免占用过多存储
  • 报告更新:ReportUpdates设置报告满时的处理方式
  • 调度精度:RecurrenceInterval应根据实际需求设置
  • 生命周期:Lifetime控制报告的有效期
  • 指标关联:确保Metrics引用的MetricDefinition存在
  • 使能控制:通过MetricReportDefinitionEnabled控制报告生成

故障排除 ​

  1. 报告未生成:

    • 检查MetricReportDefinitionEnabled是否为true
    • 确认Metrics引用的指标是否有数据 -验证调度配置
  2. 报告丢失:

    • 检查AppendLimit设置
    • 确认ReportUpdates配置 -验证存储空间
  3. 采集异常:

    • 检查RecurrenceInterval设置
    • 确认Schedule参数 -验证指标状态