xref: /openbmc/phosphor-health-monitor/bmc_health_config_json.md (revision 3901884ece5dbbd6532eb262e97c9f5f8586fffe)
18eceb8b7SJagpal Singh Gill# bmc_health_config.json
28eceb8b7SJagpal Singh Gill
38eceb8b7SJagpal Singh GillThis file outlines the format for the supplemental health metric config that can
48eceb8b7SJagpal Singh Gillbe supplied by the platform to override the default in-code config from
58eceb8b7SJagpal Singh Gillhealth_metric_config.cpp.
68eceb8b7SJagpal Singh Gill
78eceb8b7SJagpal Singh GillThe json config may have following metric types -
88eceb8b7SJagpal Singh Gill
98eceb8b7SJagpal Singh Gill- `CPU`
108eceb8b7SJagpal Singh Gill  - This indicates the total CPU utilization.
118eceb8b7SJagpal Singh Gill- `CPU_User`
128eceb8b7SJagpal Singh Gill  - This indicates the user level CPU utilization.
138eceb8b7SJagpal Singh Gill- `CPU_Kernel`
148eceb8b7SJagpal Singh Gill  - This indicates the kernel level CPU utilization.
158eceb8b7SJagpal Singh Gill- `Memory`
168eceb8b7SJagpal Singh Gill  - This indicates the total memory for the system, which is a constant metric
178eceb8b7SJagpal Singh Gill    and doesn't change.
188eceb8b7SJagpal Singh Gill- `Memory_Available`
198eceb8b7SJagpal Singh Gill  - This indicates the memory which is not used, in addition to buffered &
208eceb8b7SJagpal Singh Gill    cached memory that can be made available by OS depending on need.
218eceb8b7SJagpal Singh Gill- `Memory_Free`
228eceb8b7SJagpal Singh Gill  - This indicates the amount of un-used memory.
238eceb8b7SJagpal Singh Gill- `Memory_Shared`
248eceb8b7SJagpal Singh Gill  - This indicates the amount of memory being shared between processes within
258eceb8b7SJagpal Singh Gill    the system.
268eceb8b7SJagpal Singh Gill- `Memory_Buffered_And_Cached`
278eceb8b7SJagpal Singh Gill  - This indicates the amount of memory being used for caching and temporary
288eceb8b7SJagpal Singh Gill    buffers.
298eceb8b7SJagpal Singh Gill- `Storage_RW`
308eceb8b7SJagpal Singh Gill  - This indicates the amount of available storage space
318eceb8b7SJagpal Singh Gill- `Storage_`\<xxx>
32*3901884eSManojkiran Eda  - This indicates the amount of available space for type depicted by `<xxx>`
33*3901884eSManojkiran Eda    for the location backed by path parameter.
348eceb8b7SJagpal Singh Gill
358eceb8b7SJagpal Singh GillThe metric types may have the following attributes:
368eceb8b7SJagpal Singh Gill
378eceb8b7SJagpal Singh Gill- `Window_size`
388eceb8b7SJagpal Singh Gill  - This indicates the number of samples being used for threshold value
398eceb8b7SJagpal Singh Gill    computations.
408eceb8b7SJagpal Singh Gill- `Path`
418eceb8b7SJagpal Singh Gill  - The path attribute is applicable to storage metrics and indicates the
428eceb8b7SJagpal Singh Gill    directory path for it.
43174e5bc9SJagpal Singh Gill- `Hysteresis`
44174e5bc9SJagpal Singh Gill  - This indicates the percentage beyond which the metric value change (since
45174e5bc9SJagpal Singh Gill    last notified) should be reported as a D-Bus signal.
468eceb8b7SJagpal Singh Gill- `Threshold`
478eceb8b7SJagpal Singh Gill  - The following threshold levels (with bounds) are supported.
488eceb8b7SJagpal Singh Gill    - `HardShutdown_Lower`
498eceb8b7SJagpal Singh Gill    - `HardShutdown_Upper`
508eceb8b7SJagpal Singh Gill    - `SoftShutdown_Lower`
518eceb8b7SJagpal Singh Gill    - `SoftShutdown_Upper`
528eceb8b7SJagpal Singh Gill    - `PerformanceLoss_Lower`
538eceb8b7SJagpal Singh Gill    - `PerformanceLoss_Upper`
548eceb8b7SJagpal Singh Gill    - `Critical_Lower`
558eceb8b7SJagpal Singh Gill    - `Critical_Upper`
568eceb8b7SJagpal Singh Gill    - `Warning_Lower`
578eceb8b7SJagpal Singh Gill    - `Warning_Upper`
588eceb8b7SJagpal Singh Gill  - Threshold may have following attributes
598eceb8b7SJagpal Singh Gill    - `Value`
608eceb8b7SJagpal Singh Gill      - This indicates the percentage value at which specific threshold gets
618eceb8b7SJagpal Singh Gill        asserted.
628eceb8b7SJagpal Singh Gill        - For lower bound, the threshold gets asserted if metric value falls
638eceb8b7SJagpal Singh Gill          below the specified threshold percentage value.
648eceb8b7SJagpal Singh Gill        - For upper bound, the threshold gets asserted if metric value goes
658eceb8b7SJagpal Singh Gill          beyond the specified threshold percentage value.
668eceb8b7SJagpal Singh Gill    - `Log` -A boolean value of true/false depicts if a critical system message
678eceb8b7SJagpal Singh Gill      shall be logged when threshold gets asserted.
688eceb8b7SJagpal Singh Gill    - `Target`
698eceb8b7SJagpal Singh Gill      - This indicates the systemd target which shall be run when the specific
708eceb8b7SJagpal Singh Gill        threshold gets asserted.
718eceb8b7SJagpal Singh Gill
728eceb8b7SJagpal Singh GillExample:
738eceb8b7SJagpal Singh Gill
748eceb8b7SJagpal Singh Gill```json
758eceb8b7SJagpal Singh Gill    "CPU": {
768eceb8b7SJagpal Singh Gill        "Window_size": 120,
77174e5bc9SJagpal Singh Gill        "Hysteresis": 1.0,
788eceb8b7SJagpal Singh Gill        "Threshold": {
798eceb8b7SJagpal Singh Gill            "Critical_Upper": {
808eceb8b7SJagpal Singh Gill                "Value": 90.0,
818eceb8b7SJagpal Singh Gill                "Log": true,
828eceb8b7SJagpal Singh Gill                "Target": ""
838eceb8b7SJagpal Singh Gill            },
848eceb8b7SJagpal Singh Gill            "Warning_Upper": {
858eceb8b7SJagpal Singh Gill                "Value": 80.0,
868eceb8b7SJagpal Singh Gill                "Log": false,
878eceb8b7SJagpal Singh Gill                "Target": ""
888eceb8b7SJagpal Singh Gill            }
898eceb8b7SJagpal Singh Gill        }
908eceb8b7SJagpal Singh Gill    }
918eceb8b7SJagpal Singh Gill```
92