Update Telemetry Report and ReportManager
For Report interface:
- Added 'Enabled' property. It may be set by user to enable or disable
readings updates, or can be set by service when certain conditions are
met.
- Added 'CollectionTimescope' enum, used by ReadingParameters property
and used by AddReport method in ReportManager.
- Updated 'ReportUpdates' enum with 1 new value:
-- NewReport. A new report is created, whose name is the current
metric report name concatenated with the timestamp.
- Updated description of 'Overwrite' ReportUpdate value, to clarify its
interaction (or lack of it) with AppendLimit.
- Updated 'AppendLimit' description to match redfish description.
- Updated 'ReadingParameters' to include multiple sensors, collection
timescope and collection duration.
- Fixed typos in some descriptions.
For ReportManger interface:
- Updated 'appendLimit' description in AddReport method to match redfish
description.
- Updated 'metricParams' in AddReport method to include multiple sensor
paths, collection timescope and collection duration.
Signed-off-by: Szymon Dompke <szymon.dompke@intel.com>
Change-Id: Icfd8c4f37863ce0663535e9ec492f465709425cc
diff --git a/yaml/xyz/openbmc_project/Telemetry/Report.interface.yaml b/yaml/xyz/openbmc_project/Telemetry/Report.interface.yaml
index 54ceb8c..6d992fc 100644
--- a/yaml/xyz/openbmc_project/Telemetry/Report.interface.yaml
+++ b/yaml/xyz/openbmc_project/Telemetry/Report.interface.yaml
@@ -17,12 +17,13 @@
Defines if the report configuration is stored in non volatile memory.
Configuration contains all Report properties excluding Readings.
- name: ReadingParameters
- type: array[struct[object_path,enum[self.OperationType],string,string]]
+ type: array[struct[array[object_path],enum[self.OperationType],string,string,enum[self.CollectionTimescope],uint64]]
description: >
- Array of structures that contains sensor path that is monitored by
- Telemetry service, operation type, metric Id and metadata. Metric Id and
- metadata are used to store user details, e.g. metadata can be used to
- map sensor name to DBus path.
+ Array of structures that contains array of sensor paths that are
+ monitored by Telemetry service, operation type, metric Id, metadata,
+ collection timescope and collection duration. Metric Id and metadata are
+ used to store user details, e.g. metadata can be used to map sensor name
+ to DBus path.
- name: Readings
type: struct[uint64,array[struct[string,string,double,uint64]]]
description: >
@@ -55,15 +56,23 @@
description: Defines how Readings array is filled.
- name: AppendLimit
type: size
- description: Defines a limit of readings per sensor.
+ description: Defines the maximum number of entries in 'Readings' property.
+ flags:
+ - readonly
- name: Interval
type: uint64
description: >
Defines period of time in milliseconds when readings are updated.
+ - name: Enabled
+ type: boolean
+ description: >
+ Indicates if readings in report will be updated. This may be set to
+ false by the service if ReportUpdates property is 'AppendStopsWhenFull'
+ and readings limit specified by AppendLimit is reached.
enumerations:
- name: OperationType
- descritpion: Type of action that is executed on readings.
+ description: Type of action that is executed on readings.
values:
- name: Single
description: Store the latest reading.
@@ -72,9 +81,9 @@
- name: Min
description: Store minimal reading during defined time period.
- name: Avg
- description: Calulate average of readings during defined time period.
+ description: Calculate average of readings during defined time period.
- name: Sum
- description: Calulate sum of readings over defined time period.
+ description: Calculate sum of readings over defined time period.
- name: ReportingType
description: >
The type that defines when Readings are updated.
@@ -87,7 +96,7 @@
On Update method call.
- name: Periodic
description: >
- After period of time defined by ScanPeriod property.
+ After period of time defined by Interval property.
- name: ReportUpdates
description: >
The type that defines how Readings are updated.
@@ -95,7 +104,8 @@
- name: Overwrite
description: >
Last sensor reading is written to Readings overwriting the previous
- value.
+ value. AppendLimit set by user is ignored. Readings size is equal to
+ count of all sensors across all metrics.
- name: AppendWrapsWhenFull
description: >
Append sensor reading to Readings up to limit specify in AppendLimit
@@ -104,3 +114,27 @@
description: >
Append sensor reading to Readings up to limit specify in AppendLimit
then stop till report update.
+ - name: NewReport
+ description: >
+ A new report is created, whose name is the current metric report name
+ concatenated with the timestamp.
+ - name: CollectionTimescope
+ description: >
+ The time scope of the related metric values.
+ values:
+ - name: Point
+ description: >
+ The corresponding metric apply to a point in time. The reading
+ timestamp in Readings property specifies point in time.
+ - name: Interval
+ description: >
+ The corresponding metric apply to a time interval. The reading
+ timestamp in Readings property specifies the end of the time interval
+ and the collection duration of ReadingParameters specify its duration.
+ - name: StartupInterval
+ description: >
+ The corresponding metric apply to a time interval that began on
+ report creation. The reading timestamp in Readings property specifies
+ the end of the time interval. Collection duration of
+ ReadingParameters specifies the duration between the startup of
+ resource and timestamp.
diff --git a/yaml/xyz/openbmc_project/Telemetry/ReportManager.interface.yaml b/yaml/xyz/openbmc_project/Telemetry/ReportManager.interface.yaml
index 16f0efb..baefb9a 100644
--- a/yaml/xyz/openbmc_project/Telemetry/ReportManager.interface.yaml
+++ b/yaml/xyz/openbmc_project/Telemetry/ReportManager.interface.yaml
@@ -23,7 +23,8 @@
description: Defines report update type
- name: appendLimit
type: size
- description: Defines a limit of readings per sensor
+ description: >
+ Defines the maximum number of entries in 'Readings' property.
- name: emitsReadingsUpdate
type: boolean
description: >
@@ -40,11 +41,13 @@
Defines period of time in milliseconds when Report is updated with
new readings. Minimal interval is defined in MinInterval property.
- name: metricParams
- type: array[struct[object_path,enum[xyz.openbmc_project.Telemetry.Report.OperationType],string,string]]
+ type: array[struct[array[object_path],enum[xyz.openbmc_project.Telemetry.Report.OperationType],string,string,enum[xyz.openbmc_project.Telemetry.Report.CollectionTimescope],uint64]]
description: >
- Array of metric parameters where first parameter is a DBus sensor
- path. Second parameter specifies operation type. Third is a metric
- Id and fourth is a metadata, both are used to store user details.
+ Array of metric parameters where first parameter is an array of DBus
+ sensor paths. Second parameter specifies operation type. Third is a
+ metric Id and fourth is a metadata, both are used to store user
+ details. Fifth and sixth are used for collection timescope and
+ collection duration.
returns:
- name: reportPath
type: object_path