blob: e074da6e0ba86ab25535c549200e769ac3cb2f28 [file] [log] [blame]
Krzysztof Grobelny53647642020-06-25 11:45:38 +02001description: >
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:
Patrick Williams8da396c2022-03-14 14:21:02 -05007 - 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.
Krzysztof Grobelny53647642020-06-25 11:45:38 +020012
13properties:
Patrick Williams8da396c2022-03-14 14:21:02 -050014 - 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
Michal Orzel4f9c0912022-08-01 10:20:46 +020020 type: array[struct[array[struct[object_path,string]],enum[self.OperationType],string,enum[self.CollectionTimescope],uint64]]
Patrick Williams8da396c2022-03-14 14:21:02 -050021 description: >
Michal Orzel4f9c0912022-08-01 10:20:46 +020022 Collection of metric parameters. Single entry consists of:
23 array of [sensor path, metadata] tuples, operation type, metric ID,
24 collection timescope and collection duration. Sensor paths point to
25 sensors providing readings. Metadata contains client information; in
26 case of Redfish it shall be metric's URI. Operation type provides
27 knowledge of action executed on readings. Metric ID contains name that
28 can be mapped to metadata (like Redfish Metric ID). Collection
29 timescope specifies type of time scope applied to specific metric.
30 Collection duration stores timestamp related with timescope type in
31 milliseconds.
Patrick Williams8da396c2022-03-14 14:21:02 -050032 - name: Readings
33 type: struct[uint64,array[struct[string,string,double,uint64]]]
34 description: >
Michal Orzel4f9c0912022-08-01 10:20:46 +020035 Structure that contains timestamp of readings update in milliseconds
36 and array of metric Id, metadata, reading value and timestamp of
37 single reading update in milliseconds. Metric Id and metadata are
38 equal to its counterparts in ReadingParameters property.
Patrick Williams8da396c2022-03-14 14:21:02 -050039 flags:
40 - readonly
Patrick Williams8da396c2022-03-14 14:21:02 -050041 - name: ReportingType
42 type: enum[self.ReportingType]
43 description: Defines how readings are updated.
44 - name: ReportUpdates
45 type: enum[self.ReportUpdates]
46 description: Defines how Readings array is filled.
47 - name: AppendLimit
48 type: size
49 description: Defines the maximum number of entries in 'Readings' property.
50 flags:
51 - readonly
52 - name: Interval
53 type: uint64
54 description: >
55 Defines period of time in milliseconds when readings are updated.
56 - name: Enabled
57 type: boolean
58 description: >
59 Indicates if readings in report will be updated. This may be set to
Michal Orzel4f9c0912022-08-01 10:20:46 +020060 false by the service if ReportUpdates property is
61 'AppendStopsWhenFull' and readings limit specified by AppendLimit is
62 reached.
63 - name: ErrorMesages
64 type: array[struct[enum[self.ErrorType],string]]
65 description: >
66 Stores errors related with incorrect or conflicting property values.
67 Error messages are stored in pairs containing error type and affected
68 property.
69 flags:
70 - readonly
71 - name: Name
72 type: string
73 description: >
74 Defines the name of reading report to be exposed over D-Bus.
75 flags:
76 - const
77 - name: ReportActions
78 type: array[enum[self.ReportActions]]
79 description: >
80 Contains set of flags indicating additional actions that can be
81 triggered after readings' update.
82 - name: Triggers
83 type: array[object_path]
84 description: >
85 Array of paths to Trigger objects associated with this report.
86 flags:
87 - readonly
Krzysztof Grobelny53647642020-06-25 11:45:38 +020088
89enumerations:
Patrick Williams8da396c2022-03-14 14:21:02 -050090 - name: OperationType
91 description: Type of action that is executed on readings.
92 values:
Michal Orzel4f9c0912022-08-01 10:20:46 +020093 - name: Maximum
94 description: >
95 Store maximal reading during defined time period.
96 - name: Minimum
97 description: >
98 Store minimal reading during defined time period.
99 - name: Average
100 description: >
101 Calculate average of readings during defined time period.
102 - name: Summation
103 description: >
104 Calculate sum of readings over defined time period.
Patrick Williams8da396c2022-03-14 14:21:02 -0500105 - name: ReportingType
106 description: >
107 The type that defines when Readings are updated.
108 values:
109 - name: OnChange
110 description: >
111 On sensor reading change.
112 - name: OnRequest
113 description: >
114 On Update method call.
115 - name: Periodic
116 description: >
117 After period of time defined by Interval property.
118 - name: ReportUpdates
119 description: >
120 The type that defines how Readings are updated.
121 values:
122 - name: Overwrite
123 description: >
Michal Orzel4f9c0912022-08-01 10:20:46 +0200124 Last sensor reading is written to Readings overwriting the
125 previous value. AppendLimit set by user is ignored. Readings
126 size is equal to count of all sensors across all metrics.
Patrick Williams8da396c2022-03-14 14:21:02 -0500127 - name: AppendWrapsWhenFull
128 description: >
Michal Orzel4f9c0912022-08-01 10:20:46 +0200129 Append sensor reading to Readings up to limit specify in
130 AppendLimit then start from the beginning.
Patrick Williams8da396c2022-03-14 14:21:02 -0500131 - name: AppendStopsWhenFull
132 description: >
Michal Orzel4f9c0912022-08-01 10:20:46 +0200133 Append sensor reading to Readings up to limit specify in
134 AppendLimit then stop till report update.
Patrick Williams8da396c2022-03-14 14:21:02 -0500135 - name: CollectionTimescope
136 description: >
137 The time scope of the related metric values.
138 values:
139 - name: Point
140 description: >
141 The corresponding metric apply to a point in time. The reading
142 timestamp in Readings property specifies point in time.
143 - name: Interval
144 description: >
145 The corresponding metric apply to a time interval. The reading
Michal Orzel4f9c0912022-08-01 10:20:46 +0200146 timestamp in Readings property specifies the end of the time
147 interval and the collection duration of ReadingParameters
148 specify its duration.
Patrick Williams8da396c2022-03-14 14:21:02 -0500149 - name: StartupInterval
150 description: >
151 The corresponding metric apply to a time interval that began on
Michal Orzel4f9c0912022-08-01 10:20:46 +0200152 report creation. The reading timestamp in Readings property
153 specifies the end of the time interval. Collection duration of
Patrick Williams8da396c2022-03-14 14:21:02 -0500154 ReadingParameters specifies the duration between the startup of
155 resource and timestamp.
Michal Orzel4f9c0912022-08-01 10:20:46 +0200156 - name: ErrorType
157 description: >
158 Enumerates error types that might occur during properties'
159 configuration.
160 values:
161 - name: PropertyConflict
162 description: >
163 Appears in situation when two properties, which are dependent
164 from each other, have conflicting values. For example, when
165 ReportingType property has value "Periodic", but Interval is set
166 to 0, such conflict will occur.
167 - name: ReportActions
168 description: >
169 Enumerates types of actions, that can be triggered when Readings
170 property value is updated.
171 values:
172 - name: EmitsReadingsUpdate
173 description: >
174 On Readings update PropertiesChanged signal is emitted. It
175 allows to decrease generation of load on DBus when Readings
176 property is updated. Redfish Event Service requires this option
177 to be equal to enabled.
178 - name: LogToMetricReportsCollection
179 description: >
180 On Readings update report is stored to Metric Report Collection
181 in Redfish Telemetry Service.