phosphor-health-monitor: add new D-Bus interface
This commit introduces following changes -
- A new Metrics Value Interface.
- An interface to reset the metrics, if needed.
- Common Threshold interface so it can be used in Metrics and Sensors.
For more detail, please refer to design -
https://gerrit.openbmc.org/c/openbmc/docs/+/64917
Unit Test: meson build passes.
Change-Id: I014a047f9db6fe470124baa41dcce93caf7ceb4b
Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>
diff --git a/yaml/xyz/openbmc_project/Common/Threshold.interface.yaml b/yaml/xyz/openbmc_project/Common/Threshold.interface.yaml
new file mode 100644
index 0000000..2186fa8
--- /dev/null
+++ b/yaml/xyz/openbmc_project/Common/Threshold.interface.yaml
@@ -0,0 +1,76 @@
+description: >
+ Provides threshold functionality for Metrics and Sensors. Any object
+ implementing Threshold interface must implement a Value interface at
+ corresponding path.
+
+properties:
+ - name: Value
+ type: dict[struct[enum[self.Type],enum[self.Bound]],double]
+ description: >
+ This indicates the threshold ranges applicable for the corresponding
+ Value interface. This property is experimental and may change based on
+ implementation.
+ map{struct{thresholdType,thresholdBound},thresholdValue}
+ flags:
+ - readonly
+ - name: Asserted
+ type: set[struct[enum[self.Type],enum[self.Bound]]]
+ description: >
+ This indicates the set of asserted thresholds.
+ set{struct{thresholdType,thresholdBound}}
+ flags:
+ - readonly
+
+signals:
+ - name: AssertionChanged
+ description: >
+ This indicates the assertion change for a threshold.
+ properties:
+ - name: ThresholdType
+ type: enum[self.Type]
+ description: >
+ This indicates the threshold type for the assertion.
+ - name: ThresholdBound
+ type: enum[self.Bound]
+ description: >
+ This indicates the threshold bound for the assertion.
+ - name: Status
+ type: boolean
+ description: >
+ This indicates whether the assertion has been asserted(true) or
+ deasserted(false).
+ - name: Value
+ type: double
+ description: >
+ The value that triggered the assertion change.
+
+enumerations:
+ - name: Type
+ description: >
+ This indicates the type of threshold.
+ values:
+ - name: Warning
+ description: >
+ Indicates the warning level.
+ - name: Critical
+ description: >
+ Indicates the critical level.
+ - name: PerformanceLoss
+ description: >
+ Indicates the performance loss level.
+ - name: SoftShutdown
+ description: >
+ Indicates the soft shutdown level.
+ - name: HardShutdown
+ description: >
+ Indicates the hard shutdown level.
+ - name: Bound
+ description: >
+ This indicates the threshold direction.
+ values:
+ - name: Upper
+ description: >
+ Indicates the upper bound of the threshold.
+ - name: Lower
+ description: >
+ Indicates the lower bound of the threshold.