xref: /openbmc/phosphor-dbus-interfaces/yaml/xyz/openbmc_project/Telemetry/Report.interface.yaml (revision a1347418307d31a94bd21f22897aa508df938dcf)
1description: >
2    Implement this interface to provide report inspection features. An
3    implementation service should additionally implement
4    xyz.openbmc_project.Object.Delete for deletion of individual report objects.
5
6methods:
7    - name: Update
8      description: >
9          The Update method is defined for the on demand metric report update.
10          It triggers update of the Readings property. If ReportingType is not
11          set to OnRequest then method does nothing.
12
13properties:
14    - name: Persistency
15      type: boolean
16      description: >
17          Defines if the report configuration is stored in non volatile memory.
18          Configuration contains all Report properties excluding Readings.
19    - name: ReadingParameters
20      type: array[struct[array[struct[object_path,string]],enum[self.OperationType],string,enum[self.CollectionTimescope],uint64]]
21      description: >
22          Collection of metric parameters. Single entry consists of: array of
23          [sensor path, metadata] tuples, operation type, metric ID, collection
24          timescope and collection duration. Sensor paths point to sensors
25          providing readings. Metadata contains client information; in case of
26          Redfish it shall be metric's URI. Operation type provides knowledge of
27          action executed on readings. Metric ID contains name that can be
28          mapped to metadata (like Redfish Metric ID). Collection timescope
29          specifies type of time scope applied to specific metric. Collection
30          duration stores timestamp related with timescope type in milliseconds.
31    - name: Readings
32      type: struct[uint64,array[struct[string,string,double,uint64]]]
33      description: >
34          Structure that contains timestamp of readings update in milliseconds
35          and array of metric Id, metadata, reading value and timestamp of
36          single reading update in milliseconds. Metric Id and metadata are
37          equal to its counterparts in ReadingParameters property.
38      flags:
39          - readonly
40    - name: ReportingType
41      type: enum[self.ReportingType]
42      description: Defines how readings are updated.
43    - name: ReportUpdates
44      type: enum[self.ReportUpdates]
45      description: Defines how Readings array is filled.
46    - name: AppendLimit
47      type: size
48      description: Defines the maximum number of entries in 'Readings' property.
49      flags:
50          - readonly
51    - name: Interval
52      type: uint64
53      description: >
54          Defines period of time in milliseconds when readings are updated.
55    - name: Enabled
56      type: boolean
57      description: >
58          Indicates if readings in report will be updated. This may be set to
59          false by the service if ReportUpdates property is
60          'AppendStopsWhenFull' and readings limit specified by AppendLimit is
61          reached.
62    - name: ErrorMesages
63      type: array[struct[enum[self.ErrorType],string]]
64      description: >
65          Stores errors related with incorrect or conflicting property values.
66          Error messages are stored in pairs containing error type and affected
67          property.
68      flags:
69          - readonly
70    - name: Name
71      type: string
72      description: >
73          Defines the name of reading report to be exposed over D-Bus.
74      flags:
75          - const
76    - name: ReportActions
77      type: array[enum[self.ReportActions]]
78      description: >
79          Contains set of flags indicating additional actions that can be
80          triggered after readings' update.
81    - name: Triggers
82      type: array[object_path]
83      description: >
84          Array of paths to Trigger objects associated with this report.
85      flags:
86          - readonly
87
88enumerations:
89    - name: OperationType
90      description: Type of action that is executed on readings.
91      values:
92          - name: Maximum
93            description: >
94                Store maximal reading during defined time period.
95          - name: Minimum
96            description: >
97                Store minimal reading during defined time period.
98          - name: Average
99            description: >
100                Calculate average of readings during defined time period.
101          - name: Summation
102            description: >
103                Calculate sum of readings over defined time period.
104    - name: ReportingType
105      description: >
106          The type that defines when Readings are updated.
107      values:
108          - name: OnChange
109            description: >
110                On sensor reading change.
111          - name: OnRequest
112            description: >
113                On Update method call.
114          - name: Periodic
115            description: >
116                After period of time defined by Interval property.
117    - name: ReportUpdates
118      description: >
119          The type that defines how Readings are updated.
120      values:
121          - name: Overwrite
122            description: >
123                Last sensor reading is written to Readings overwriting the
124                previous value. AppendLimit set by user is ignored. Readings
125                size is equal to count of all sensors across all metrics.
126          - name: AppendWrapsWhenFull
127            description: >
128                Append sensor reading to Readings up to limit specify in
129                AppendLimit then start from the beginning.
130          - name: AppendStopsWhenFull
131            description: >
132                Append sensor reading to Readings up to limit specify in
133                AppendLimit then stop till report update.
134    - name: CollectionTimescope
135      description: >
136          The time scope of the related metric values.
137      values:
138          - name: Point
139            description: >
140                The corresponding metric apply to a point in time. The reading
141                timestamp in Readings property specifies point in time.
142          - name: Interval
143            description: >
144                The corresponding metric apply to a time interval. The reading
145                timestamp in Readings property specifies the end of the time
146                interval and the collection duration of ReadingParameters
147                specify its duration.
148          - name: StartupInterval
149            description: >
150                The corresponding metric apply to a time interval that began on
151                report creation. The reading timestamp in Readings property
152                specifies the end of the time interval. Collection duration of
153                ReadingParameters specifies the duration between the startup of
154                resource and timestamp.
155    - name: ErrorType
156      description: >
157          Enumerates error types that might occur during properties'
158          configuration.
159      values:
160          - name: PropertyConflict
161            description: >
162                Appears in situation when two properties, which are dependent
163                from each other, have conflicting values. For example, when
164                ReportingType property has value "Periodic", but Interval is set
165                to 0, such conflict will occur.
166    - name: ReportActions
167      description: >
168          Enumerates types of actions, that can be triggered when Readings
169          property value is updated.
170      values:
171          - name: EmitsReadingsUpdate
172            description: >
173                On Readings update PropertiesChanged signal is emitted. It
174                allows to decrease generation of load on DBus when Readings
175                property is updated. Redfish Event Service requires this option
176                to be equal to enabled.
177          - name: LogToMetricReportsCollection
178            description: >
179                On Readings update report is stored to Metric Report Collection
180                in Redfish Telemetry Service.
181