Add Prometheus alerts to documentation

Change-Id: I42431e65967de60e8bdf7a46d84fdb43fb5185a0
diff --git a/sphinx/files/salt/source/services/monitoring.rst b/sphinx/files/salt/source/services/monitoring.rst
index 237bf54..6e55e90 100644
--- a/sphinx/files/salt/source/services/monitoring.rst
+++ b/sphinx/files/salt/source/services/monitoring.rst
@@ -22,8 +22,33 @@
 Functional Alarms Definitions
 =============================
 
-The explanation of columns.
+{%- if grains.get('prometheus') is mapping %}
 
+.. list-table::
+   :header-rows: 1
+
+   *  - **Alarm**
+      - **Description**
+      - **Labels**
+      - **Rule**
+  {%- set alarms = {} %}
+  {%- for node_name, node_grains in salt['mine.get']('*', 'grains.items')|dictsort %}
+    {%- if node_grains.get('prometheus', {}).get('server', {}).get('alert', {}) is mapping %}
+      {%- for alarm_name, alarm_def in node_grains.get('prometheus', {}).get('server', {}).get('alert', {})|dictsort %}
+        {%- if not alarms.get(alarm_name) %}
+          {%- do alarms.update({alarm_name: alarm_def}) %}
+        {%- endif %}
+      {%- endfor %}
+    {%- endif %}
+  {%- endfor %}
+
+  {%- for name, alarm in alarms|dictsort %}
+   *  - {{ name }}
+      - {{ alarm.annotations.description }}
+      - {%- for k,v in alarm.get('labels', {})|dictsort %} {{ k }} = {{ v }}{%- endfor %}
+      - {{ alarm.if|replace("\n", "") }}
+  {%- endfor %}
+{%- else %}
 **Node**
     Node where the alarm is defined
 
@@ -78,3 +103,4 @@
 {%- endfor %}
 {%- endif %}
 {%- endfor %}
+{%- endif %}