问题描述
问题一:
温度采集配置480条,5s一次采集
但是从采集来看,最多采集128条开始覆盖,不满足配置的480条;
1)128条是哪里设置的?
2)为啥AppendLimit 480条没有生效?
问题二:
MetricReportDefinitions里面的属性是在哪里做持久化吗?
举例1:
升级BMC(固件里面的SRMetricReportDefinitionEnabled默认为false)之后,设置MetricReportDefinitionEnabled为true:
再次重新升级同一个BMC固件,查看MetricReportDefinitionEnabled,还是true
举例2:
升级BMC固件,里面包含AppendLimit设置为500条,但是通过redfish查询AppendLimit还是之前的值,不是500
问题三:
通过/redfish/v1/TelemetryService/Actions/TelemetryService.ResetMetricReportDefinitionsToDefaults可以将MetricReportDefinitions进行更新,这个ResetMetricReportDefinitionsToDefaults什么情况下需要操作,操作之后有什么影响?
答案内容由AI生成,仅供参考:
总结 :MetricReportDefinitions 中的属性(如 MetricReportDefinitionEnabled、AppendLimit 等)在第一次被用户修改后即进入持久化数据库,后续 BMC 升级、重启等操作均会从持久化数据库恢复该修改值,除非执行恢复出厂设置或 ResetMetricReportDefinitionsToDefaults。
点击此处查看详细分析解答
根据您提供的上下文信息和搜索结果,对您提出的三个问题进行分析和解答如下:
问题一:温度采集配置480条但实际128条开始覆盖的原因
128条的限制来源
知识图谱中定义了 MaxReports 属性,其描述为:
MaxReports is a configuration parameter indicating the maximum number of metric reports the service can support.
MaxReports defines the maximum number of reports the service can manage.
该属性是 TelemetryService 支持的最大 MetricReport 数量(即报告总数上限),默认值很可能为 128 。无论每个报告内记录多少条数据,系统最多只能同时保留128个报告,超出后新报告会覆盖最旧的报告。
AppendLimit 480条未生效的原因
AppendLimit 控制的是 单个 MetricReport 内的最大记录数 (即一个报告能容纳的采集数据条目数),而 MaxReports 控制的是 整个服务能承载的报告总个数 。
您配置了480条采集记录,如果这些记录是分散到多个 MetricReport 中的,那么每个报告内的记录数可能并未达到 AppendLimit 阈值,但报告总数达到了 MaxReports(128个),从而触发基于报告数量的覆盖。
如果所有480条数据都属于同一个 MetricReport,而 AppendLimit 设置为480条,但 MaxReports 为128个报告的限制并不会影响单个报告内的记录数。此时应检查 AppendLimit 配置是否正确生效,以及 ReportUpdates 属性是否设置为 AppendWrapsWhenFull(允许新记录覆盖旧记录)。
建议 :通过 Redfish API 查询当前 MaxReports 的实际值,确认是否为128。若需增加报告承载能力,可能需要调整系统层面的限制(但 MaxReports 为只读属性,无法修改)。
问题二:MetricReportDefinitions 属性的持久化机制
根据文档块[3]和[5]中的持久化机制说明:
只有修改过属性值之后才会存进持久化数据库,组件启动时用持久化数据覆盖CSR配置数据。
该机制主要是为了避免CSR配置值持久化后导致后续CSR修改不生效。
举例1(MetricReportDefinitionEnabled)
您第一次通过 Redfish 修改 MetricReportDefinitionEnabled 为 true,该值被写入持久化数据库。
再次升级 BMC 固件时,尽管固件中该属性的 CSR 默认值为 false,但持久化数据库中存在您之前修改过的 true,因此组件启动时用持久化数据覆盖 CSR 配置,导致该属性依然为 true。
举例2(AppendLimit)
如果之前您通过某种方式修改过 AppendLimit(例如设置为500条),该值同样会被持久化。升级固件时,即使固件中包含新的 CSR 配置(例如500条),但持久化数据中保留的是您 之前修改过的值 (可能不是500,而是其他值),因此最终生效的是持久化中的旧值。
若您从未修改过 AppendLimit,则它不会持久化,升级后应使用固件中 CSR 的默认值。但您观察到“还是之前的值”,说明该属性确实被修改过并已持久化。
总结 :MetricReportDefinitions 中的属性(如 MetricReportDefinitionEnabled、AppendLimit 等)在第一次被用户修改后即进入持久化数据库,后续 BMC 升级、重启等操作均会从持久化数据库恢复该修改值,除非执行恢复出厂设置或 ResetMetricReportDefinitionsToDefaults。
问题三:ResetMetricReportDefinitionsToDefaults 的使用场景与影响
建议 :在执行前,建议备份当前配置(通过 Redfish GET 查询所有 MetricReportDefinition 的 JSON),以便后续恢复。
如果需要进一步查询特定属性的默认值或当前值,可通过 Redfish API 获取:
GET /redfish/v1/TelemetryService/MetricReportDefinitions
GET /redfish/v1/TelemetryService(查看 MaxReports、MinCollectionInterval 等)
默认配置了:“MaxReports”: 32,AppendLimit配置了480条,但是采集还是128条进行满覆盖,需要排查下128条哪里来的,并且为啥480没有生效
MetricReports/metricreport_id下面的MetricValues里面的MetricId是否可以登记为对应的数据源描述字段
需求需要实现10分钟循环覆盖,如果只限制120条,那么多数据源情况下,不满足10分钟循环覆盖了,可以如何修改呢?
你好,这个是可以的,metric_id可以通过csr配置(例如:“Id”: “AveragePower”)。可参考文档Redfish 遥测服务使用指导 | 文档中心 | openUBMC
一个URL,多数据源可以每个数据源采集到数据,metric_id可以配置不同吗?
kunlun_xiechuanguan:
metric_id
如讨论metric_id暂不可定制,待确认方案后答复