Create Report and ReportManager interfaces
Both interfaces are created based on Telemetry design described in
openbmc/docs/designs/telemetry.md. Both will be implemented in
Telemetry service in openbmc/telemetry repository.
Ref:
https://github.com/openbmc/docs/blob/master/designs/telemetry.md
Tested:
- Successful build and verified changes in server.hpp and
server.cpp.
Change-Id: Id6578ce1d349ee07b8a07b2d597471ba7433a6c0
Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com>
Signed-off-by: Wludzik, Jozef <jozef.wludzik@intel.com>
diff --git a/xyz/openbmc_project/Telemetry/Report.interface.yaml b/xyz/openbmc_project/Telemetry/Report.interface.yaml
new file mode 100644
index 0000000..5614890
--- /dev/null
+++ b/xyz/openbmc_project/Telemetry/Report.interface.yaml
@@ -0,0 +1,83 @@
+description: >
+ Implement this interface to provide report inspection features. An
+ implementation service should additionally implement
+ xyz.openbmc_project.Object.Delete for deletion of individual report objects.
+
+methods:
+ - name: Update
+ description: >
+ The Update method is defined for the on demand metric report update.
+ It triggers update of the Readings property. If ReportingType is not
+ set to OnRequest then method does nothing.
+
+properties:
+ - name: Persistency
+ type: boolean
+ description: >
+ Defines if the report configuration is stored in non volatile memory.
+ Configuration contains all Report properties excluding Readings.
+ - name: ReadingParameters
+ type: array[struct[array[object_path],enum[self.OperationType],string,string]]
+ description: >
+ Array of structure that contains list of sensor paths, 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.
+ - name: Readings
+ type: struct[uint64,array[struct[string,string,double,uint64]]]
+ description: >
+ Structure that contains timestamp of readings update in milliseconds and
+ array of metric Id, metadata, reading value and timestamp of single
+ reading update in milliseconds. Metric Id and metadata are equal to its
+ counterparts in ReadingParameters property.
+ flags:
+ - readonly
+ - name: EmitsReadingsUpdate
+ type: boolean
+ description: >
+ On Readings update PropertiesChanged signal is emitted. It allows to
+ decrease generation of load on DBus when Readings property is updated.
+ Redfish Event Service requires this option to be equal to true.
+ flags:
+ - const
+ - name: LogToMetricReportsCollection
+ type: boolean
+ description: >
+ Presence of Report in Metric Report Collection in Redfish Telemetry
+ Service.
+ flags:
+ - const
+ - name: ReportingType
+ type: enum[self.ReportingType]
+ description: Defines how readings are updated.
+ - name: Interval
+ type: uint64
+ description: >
+ Defines period of time in milliseconds when readings are updated.
+
+enumerations:
+ - name: OperationType
+ descritpion: Type of action that is executed on readings.
+ values:
+ - name: Single
+ description: Store a single reading, only allowed on single sensor.
+ - name: Max
+ description: Store maximal reading during defined time period.
+ - name: Min
+ description: Store minimal reading during defined time period.
+ - name: Avg
+ description: Calulate average of readings during defined time period.
+ - name: Sum
+ description: Calulate sum of readings over defined time period.
+ - name: ReportingType
+ description: >
+ The type that defines when Readings are updated.
+ values:
+ - name: OnChange
+ description: >
+ On sensor reading change.
+ - name: OnRequest
+ description: >
+ On Update method call.
+ - name: Periodic
+ description: >
+ After period of time defined by ScanPeriod property.