CSR配置字典之MetricDefinition类
📋 文档信息
| 项目 | 内容 |
|---|---|
| 文档标题 | MetricDefinition类配置字典 |
| 版本 | v1.0 |
| 创建日期 | 2025-04-24 |
| 最后更新 | 2025-04-24 |
| 维护状态 | ✅ 活跃维护 |
📋 变更历史记录
| 版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
|---|---|---|---|---|---|
| v1.0 | 2025-04-24 | 初始版本 | 创建MetricDefinition类配置字典 | 全新文档 | 系统管理员 |
🎯 类概览
| 属性 | 值 |
|---|---|
| 类名称 | MetricDefinition |
| 功能描述 | Redfish遥测指标定义,用于定义可采集的监控指标及其属性 |
| 所属SIG组 | interface |
| 所属组件 | redfish |
| 最后更新 | 2025-04-24 |
| 状态 | 🟢 正常运行 |
📊 属性定义详表
必选属性
| 属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
|---|---|---|---|---|---|---|---|---|---|
Id | String | - | String | - | 指标定义ID | 唯一标识指标定义 | "AveragePower" | CSR配置 | 软件 |
Name | String | - | String | - | 指标名称 | 指标的显示名称 | "Average Power" | CSR配置 | 软件 |
Description | String | - | String | - | 指标描述 | 指标的详细描述 | "Metric definition for average power" | CSR配置 | 软件 |
MetricType | String | - | ["Numeric", "Discrete", "Gauge", "Counter", "Countdown", "String"] | - | 指标类型 | 标识指标的数据类型 | "Numeric" | CSR配置 | 软件 |
MetricDataType | String | - | ["Boolean", "DateTime", "Decimal", "Integer", "String", "Enumeration"] | - | 指标数据类型 | 标识指标值的数据类型 | "Integer" | CSR配置 | 软件 |
Implementation | String | - | ["PhysicalSensor", "Calculated", "Synthesized", "DigitalMeter"] | - | 实现方式 | PhysicalSensor:来自物理传感器;Calculated:通过另一个metric property计算得到;Synthesized:合成型,由多个metric properties计算得到;DigitalMeter:数值型,例如计数 | "Calculated" | CSR配置 | 软件 |
Units | String | - | String | - | 指标单位 | 指标值的单位,如Cel(摄氏度)、Percent(百分比)等 | "W" | CSR配置 | 软件 |
可选属性
| 属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
|---|---|---|---|---|---|---|---|---|---|
Accuracy | U8 | - | U8 | - | 精度 | 指标的精度百分比 | 1 | CSR配置 | 软件 |
Calculable | String | - | ["NonCalculatable", "NonSummable", "Summable"] | - | 可计算性 | 指标是否可计算,NonCalculatable:不可计算,NonSummable:不可求和,Summable:可求和 | "NonCalculatable" | CSR配置 | 软件 |
CalculationAlgorithm | String | - | ["Average", "Maximum", "Minimum", "Summation"] | - | 计算算法 | 计算指标的算法,Average:求平均值,Maximum:求最大值,Minimum:求最小值,Summation:求和 | "Average" | CSR配置 | 软件 |
CalculationParameters | Array | - | Array | - | 计算参数 | 计算算法的参数,用于计算目标指标值所需要的指标项,这些指标项必须在MetricProperties数组中被定义,如果ImplementationType取值为Synthesized或Calculated,则必须给出此属性 | [...] | CSR配置 | 软件 |
CalculationTimeInterval | String | - | String | - | 计算时间间隔 | 计算的时间间隔,格式:PT[n]H[n]M[n]S,如PT60S表示60秒 | "" | CSR配置 | 软件 |
Calibration | Integer | - | Integer | - | 校准值 | 指标值的校准偏移量,对离散型指标项无效,目标值 = Calibration + 原始值,0表示无偏移 | 0 | CSR配置 | 软件 |
DiscreteValues | Array | - | Array | - | 离散值 | 指定离散型指标值的离散取值 | [1, 5, 10] | CSR配置 | 软件 |
IsLinear | Boolean | - | Boolean | - | 是否线性 | 指标是否为线性 | true | CSR配置 | 软件 |
LogicalContexts | String[] | - | ["Capacity", "Environment", "Network", "Performance", "Security", "Storage"] | - | 逻辑上下文 | 指标项关联的业务类型,Capacity:容量,Environment:环境,Network:网络,Performance:性能,Security:安全,Storage:存储 | ["Capacity"] | CSR配置 | 软件 |
MinReadingRange | Double | - | Double | - | 最小读数范围 | 指标的最小值 | 0 | CSR配置 | 软件 |
MaxReadingRange | Double | - | Double | - | 最大读数范围 | 指标的最大值 | 9999 | CSR配置 | 软件 |
MetricProperties | Array | - | Array | - | 指标属性 | 指标属性 URI 列表 | ["/redfish/v1/Chassis/{ChassisId}/Power#PowerControl/{PowerControlId}/PowerMetrics/AverageConsumedWatts"] | CSR配置 | 软件 |
PhysicalContext | String | - | ["CPU", "Memory", "Fan", "PowerSupply", "Chassis", "SystemBoard", "PowerSubsystem", "ThermalSubsystem", "StorageDevice", "NetworkingDevice"] | - | 物理上下文 | 指标的物理位置上下文 | "CPU" | CSR配置 | 软件 |
Precision | U8 | - | U8 | - | 精度位数 | 小数点后的精度位数 | 0 | CSR配置 | 软件 |
SensingInterval | String | - | String | - | 采集间隔 | 指标采集的时间间隔 | "PT5S" | CSR配置 | 软件 |
TimestampAccuracy | String | - | String | - | 时间戳精度 | 时间戳的精度 | "PT1S" | CSR配置 | 软件 |
Wildcards | Array | - | Array | - | 通配符 | 用于资源匹配的通配符列表 | [...] | CSR配置 | 软件 |
🔗 动态关联机制
语法规范
yaml
I": "AveragePower",
MetricPropertie": ["/redfish/v1/Chassis/{ChassisId}/Power#PowerControl/{PowerControlId}/PowerMetrics/AverageConsumedWatts"],
MetricDataTyp": "Decimal",
PhysicalContex": "PowerSupply",
Descriptio": "Metric definition for average power",
LogicalContext": ["Capacity"],
IsLinea": true,
MinReadingRang": 0,
MaxReadingRang": 9999,
Implementatio": "Calculated",
CalculationParameter": [{"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"关联说明
- Id: 唯一标识符,用于MetricReportDefinition引用
- MetricType: 指标的基本类型
- MetricDataType: 指标值的具体数据类型
- Implementation: 指标的实现方式
- Units: 指标值的单位
📂 分类标准
硬件属性
- 定义:当前版本无硬件属性
- 特点:所有属性都是软件管理相关
- 示例:无
软件属性
- 定义:由软件管理和维护的指标定义参数
- 特点:指标定义、计算配置、采集配置等
- 示例:所有属性都是软件属性
📝 配置示例
平均功耗指标定义
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"
}
}🔧 使用指南
配置步骤
- 设置基本信息:配置Id、Name、Description
- 设置类型:配置MetricType和MetricDataType
- 设置实现:配置Implementation和Units
- 配置计算:如果是计算指标,配置CalculationAlgorithm和CalculationParameters
- 配置范围:配置MinReadingRange和MaxReadingRange
- 配置采集:配置SensingInterval和TimestampAccuracy
指标类型说明
| MetricType | 说明 | 适用场景 |
|---|---|---|
| Numeric | 数值型 | 连续数值,如温度、功耗 |
| Discrete | 离散型 | 有限状态,如电源状态 |
| Gauge | 仪表型 | 可增可减的数值 |
| Counter | 计数器 | 单向递增的计数 |
| Countdown | 倒计时 | 单向递减的计数 |
| String | 字符串型 | 文本信息 |
使用场景
- 性能监控:监控CPU、内存等性能指标
- 功耗管理:监控设备功耗和能效
- 温度监控:监控设备温度和热状态
- 资源利用:监控资源利用率
注意事项
- ID唯一性:每个MetricDefinition的Id必须唯一
- 单位一致性:Units应与实际指标单位一致
- 范围合理:MinReadingRange和MaxReadingRange应覆盖实际值
- 采集间隔:SensingInterval应根据实际需求设置
- 精度设置:Precision应根据测量精度设置
故障排除
指标无数据:
- 检查MetricProperties是否正确 -确认数据源是否正常
- 验证采集配置
计算错误:
- 检查CalculationAlgorithm配置
- 确认CalculationParameters是否正确
- 验证源指标是否存在
精度丢失:
- 检查MetricDataType设置
- 确认Precision配置 -验证数据格式