1# bmc_health_config.json 2 3This file outlines the format for the supplemental health metric config that can 4be supplied by the platform to override the default in-code config from 5health_metric_config.cpp. 6 7The json config may have following metric types - 8 9- `CPU` 10 - This indicates the total CPU utilization. 11- `CPU_User` 12 - This indicates the user level CPU utilization. 13- `CPU_Kernel` 14 - This indicates the kernel level CPU utilization. 15- `Memory` 16 - This indicates the total memory for the system, which is a constant metric 17 and doesn't change. 18- `Memory_Available` 19 - This indicates the memory which is not used, in addition to buffered & 20 cached memory that can be made available by OS depending on need. 21- `Memory_Free` 22 - This indicates the amount of un-used memory. 23- `Memory_Shared` 24 - This indicates the amount of memory being shared between processes within 25 the system. 26- `Memory_Buffered_And_Cached` 27 - This indicates the amount of memory being used for caching and temporary 28 buffers. 29- `Storage_RW` 30 - This indicates the amount of available storage space 31- `Storage_`\<xxx> 32 - This indicates the amount of availble space for type depicted by `<xxx>` for 33 the location backed by path parameter. 34 35The metric types may have the following attributes: 36 37- `Window_size` 38 - This indicates the number of samples being used for threshold value 39 computations. 40- `Path` 41 - The path attribute is applicable to storage metrics and indicates the 42 directory path for it. 43- `Hysteresis` 44 - This indicates the percentage beyond which the metric value change (since 45 last notified) should be reported as a D-Bus signal. 46- `Threshold` 47 - The following threshold levels (with bounds) are supported. 48 - `HardShutdown_Lower` 49 - `HardShutdown_Upper` 50 - `SoftShutdown_Lower` 51 - `SoftShutdown_Upper` 52 - `PerformanceLoss_Lower` 53 - `PerformanceLoss_Upper` 54 - `Critical_Lower` 55 - `Critical_Upper` 56 - `Warning_Lower` 57 - `Warning_Upper` 58 - Threshold may have following attributes 59 - `Value` 60 - This indicates the percentage value at which specific threshold gets 61 asserted. 62 - For lower bound, the threshold gets asserted if metric value falls 63 below the specified threshold percentage value. 64 - For upper bound, the threshold gets asserted if metric value goes 65 beyond the specified threshold percentage value. 66 - `Log` -A boolean value of true/false depicts if a critical system message 67 shall be logged when threshold gets asserted. 68 - `Target` 69 - This indicates the systemd target which shall be run when the specific 70 threshold gets asserted. 71 72Example: 73 74```json 75 "CPU": { 76 "Window_size": 120, 77 "Hysteresis": 1.0, 78 "Threshold": { 79 "Critical_Upper": { 80 "Value": 90.0, 81 "Log": true, 82 "Target": "" 83 }, 84 "Warning_Upper": { 85 "Value": 80.0, 86 "Log": false, 87 "Target": "" 88 } 89 } 90 } 91``` 92