add bmc health metric json markdown file

Add the markdown file for BMC health metric json which helps understand
its format and use.

Change-Id: I184889640ff64beba2426a2e33184b213235fe1e
Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>
diff --git a/bmc_health_config_json.md b/bmc_health_config_json.md
new file mode 100644
index 0000000..36cc4d1
--- /dev/null
+++ b/bmc_health_config_json.md
@@ -0,0 +1,87 @@
+# bmc_health_config.json
+
+This file outlines the format for the supplemental health metric config that can
+be supplied by the platform to override the default in-code config from
+health_metric_config.cpp.
+
+The json config may have following metric types -
+
+- `CPU`
+  - This indicates the total CPU utilization.
+- `CPU_User`
+  - This indicates the user level CPU utilization.
+- `CPU_Kernel`
+  - This indicates the kernel level CPU utilization.
+- `Memory`
+  - This indicates the total memory for the system, which is a constant metric
+    and doesn't change.
+- `Memory_Available`
+  - This indicates the memory which is not used, in addition to buffered &
+    cached memory that can be made available by OS depending on need.
+- `Memory_Free`
+  - This indicates the amount of un-used memory.
+- `Memory_Shared`
+  - This indicates the amount of memory being shared between processes within
+    the system.
+- `Memory_Buffered_And_Cached`
+  - This indicates the amount of memory being used for caching and temporary
+    buffers.
+- `Storage_RW`
+  - This indicates the amount of available storage space
+- `Storage_`\<xxx>
+  - This indicates the amount of availble space for type depicted by `<xxx>` for
+    the location backed by path parameter.
+
+The metric types may have the following attributes:
+
+- `Window_size`
+  - This indicates the number of samples being used for threshold value
+    computations.
+- `Path`
+  - The path attribute is applicable to storage metrics and indicates the
+    directory path for it.
+- `Threshold`
+  - The following threshold levels (with bounds) are supported.
+    - `HardShutdown_Lower`
+    - `HardShutdown_Upper`
+    - `SoftShutdown_Lower`
+    - `SoftShutdown_Upper`
+    - `PerformanceLoss_Lower`
+    - `PerformanceLoss_Upper`
+    - `Critical_Lower`
+    - `Critical_Upper`
+    - `Warning_Lower`
+    - `Warning_Upper`
+  - Threshold may have following attributes
+    - `Value`
+      - This indicates the percentage value at which specific threshold gets
+        asserted.
+        - For lower bound, the threshold gets asserted if metric value falls
+          below the specified threshold percentage value.
+        - For upper bound, the threshold gets asserted if metric value goes
+          beyond the specified threshold percentage value.
+    - `Log` -A boolean value of true/false depicts if a critical system message
+      shall be logged when threshold gets asserted.
+    - `Target`
+      - This indicates the systemd target which shall be run when the specific
+        threshold gets asserted.
+
+Example:
+
+```json
+    "CPU": {
+        "Window_size": 120,
+        "Threshold": {
+            "Critical_Upper": {
+                "Value": 90.0,
+                "Log": true,
+                "Target": ""
+            },
+            "Warning_Upper": {
+                "Value": 80.0,
+                "Log": false,
+                "Target": ""
+            }
+        }
+    }
+```