Monitoring doc render (#1)
* Monitoring doc render
* Fix indent
diff --git a/sphinx/_salt.sls b/sphinx/_salt.sls
index ae677fb..d69e411 100644
--- a/sphinx/_salt.sls
+++ b/sphinx/_salt.sls
@@ -25,7 +25,7 @@
- require:
- file: salt_mine_doc_dirs
- defaults:
- doc: {{ doc|yaml }}
+ doc: {{ doc|yaml }}
/srv/static/extern/salt/source/index.rst:
file.managed:
@@ -35,7 +35,7 @@
- require:
- file: salt_mine_doc_dirs
- defaults:
- doc_name: "{{ doc_name }}"
+ doc_name: "{{ doc_name }}"
/srv/static/extern/salt/source/services/index.rst:
file.managed:
@@ -45,7 +45,17 @@
- require:
- file: salt_mine_doc_dirs
- defaults:
- doc_name: "{{ doc_name }}"
+ doc_name: "{{ doc_name }}"
+
+/srv/static/extern/salt/source/services/monitoring.rst:
+ file.managed:
+ - source: salt://sphinx/files/salt/source/services/monitoring.rst
+ - template: jinja
+ - mode: 644
+ - require:
+ - file: salt_mine_doc_dirs
+ - defaults:
+ doc_name: "{{ doc_name }}"
/srv/static/extern/salt/source/services/endpoints.rst:
file.managed:
@@ -55,7 +65,7 @@
- require:
- file: salt_mine_doc_dirs
- defaults:
- doc_name: "{{ doc_name }}"
+ doc_name: "{{ doc_name }}"
/srv/static/extern/salt/source/services/catalog.rst:
file.managed:
@@ -65,7 +75,7 @@
- require:
- file: salt_mine_doc_dirs
- defaults:
- doc_name: "{{ doc_name }}"
+ doc_name: "{{ doc_name }}"
/srv/static/extern/salt/source/nodes/index.rst:
file.managed:
@@ -75,9 +85,12 @@
- require:
- file: salt_mine_doc_dirs
- defaults:
- doc_name: "{{ doc_name }}"
+ doc_name: "{{ doc_name }}"
-{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
+{%- set mine_nodes = salt['mine.get']('*', 'grains.items') %}
+{%- if mine_nodes is mapping %}
+
+{%- for node_name, node_grains in mine_nodes.iteritems() %}
/srv/static/extern/salt/source/nodes/{{ node_name }}.rst:
file.managed:
@@ -87,11 +100,13 @@
- require:
- file: salt_mine_doc_dirs
- defaults:
- node_name: {{ node_name }}
- node_grains: {{ node_grains|yaml }}
+ node_name: {{ node_name }}
+ node_grains: {{ node_grains|yaml }}
{%- endfor %}
+{%- endif %}
+
generate_sphinx_doc_{{ doc_name }}:
cmd.run:
- name: sphinx-build -b {{ doc.builder }} /srv/static/extern/salt/source /srv/static/sites/{{ doc_name }}
diff --git a/sphinx/files/salt/source/index.rst b/sphinx/files/salt/source/index.rst
index b505b4c..7c0b984 100644
--- a/sphinx/files/salt/source/index.rst
+++ b/sphinx/files/salt/source/index.rst
@@ -1,7 +1,7 @@
{%- set doc = salt['pillar.get']('sphinx:server:doc:'+doc_name) %}
=============================================================================================
-{% if doc.title is defined %}{{ doc.title }}{% else %}Model-Driven Documentation{% endif %}
+{% if doc.title is defined %}{{ doc.title }}{% else %}SaltStack Deployment Documentation{% endif %}
=============================================================================================
{%- if doc.description is defined %}
diff --git a/sphinx/files/salt/source/nodes/index.rst b/sphinx/files/salt/source/nodes/index.rst
index 81a9252..bdb0e8f 100644
--- a/sphinx/files/salt/source/nodes/index.rst
+++ b/sphinx/files/salt/source/nodes/index.rst
@@ -1,7 +1,9 @@
+{%- set mine_nodes = salt['mine.get']('*', 'grains.items') %}
+{%- if mine_nodes is mapping %}
-===============================
+====================
Infrastructure Nodes
-===============================
+====================
Definition of all nodes within current infrastructure.
@@ -12,7 +14,7 @@
* - **Node FQDN**
- **IP Addresses**
- **Assigned Services**
-{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
+{%- for node_name, node_grains in mine_nodes.iteritems() %}
* - :ref:`{{ node_name }}`
{%- if node_grains.sphinx is defined %}
- {% for ip in node_grains.ipv4 %}
@@ -20,7 +22,7 @@
* {{ ip }}
{%- endif %}
{%- endfor %}
- - {% for service_name, service in node_grains.get('sphinx', {}).get('doc', {}).iteritems() %}{% for role_name, role in service.role.iteritems() %}{{ service_name }}-{{ role_name }} {% endfor %}{% endfor %}
+ - {% for service_name, service in node_grains.get('sphinx', {}).get('doc', {}).iteritems() %}{% if service.role is mapping %}{% for role_name, role in service.role.iteritems() %}{{ service_name }}-{{ role_name }} {% endfor %}{% endif %}{% endfor %}
{%- else %}
- N/A
- N/A
@@ -30,8 +32,10 @@
.. toctree::
:maxdepth: 2
-{% for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
+{% for node_name, node_grains in mine_nodes.iteritems() %}
{%- if node_grains.get('sphinx_doc', {}) != None %}
{{ node_name }}
{%- endif %}
{% endfor %}
+
+{%- endif %}
diff --git a/sphinx/files/salt/source/nodes/node.rst b/sphinx/files/salt/source/nodes/node.rst
index 0870e97..e08358b 100644
--- a/sphinx/files/salt/source/nodes/node.rst
+++ b/sphinx/files/salt/source/nodes/node.rst
@@ -22,6 +22,7 @@
* - **Service Role**
- **Parameter**
- **Value**
+{%- if service.role is mapping %}
{%- for role_name, role in service.role.iteritems() %}
{%- for param_name, param in role.get('param', {}).iteritems() %}
* - {{ service_name }}-{{ role_name }}
@@ -30,6 +31,7 @@
{{ render_list(param.value)|indent(8, True) }}
{%- endfor %}
{%- endfor %}
+{%- endif %}
{%- endfor %}
diff --git a/sphinx/files/salt/source/services/catalog.rst b/sphinx/files/salt/source/services/catalog.rst
index 62514e3..1424996 100644
--- a/sphinx/files/salt/source/services/catalog.rst
+++ b/sphinx/files/salt/source/services/catalog.rst
@@ -1,7 +1,7 @@
-===============================
+===============
Service Catalog
-===============================
+===============
All used services within configured infrastructure.
diff --git a/sphinx/files/salt/source/services/index.rst b/sphinx/files/salt/source/services/index.rst
index a45ba73..47435c8 100644
--- a/sphinx/files/salt/source/services/index.rst
+++ b/sphinx/files/salt/source/services/index.rst
@@ -1,12 +1,13 @@
-===============================
+=======================
Infrastructure Services
-===============================
+=======================
-Definition of all services within current infrastructure.
+Definition of all services used within defined infrastructure.
.. toctree::
:maxdepth: 2
endpoints
catalog
+ monitoring
\ No newline at end of file
diff --git a/sphinx/files/salt/source/services/monitoring.rst b/sphinx/files/salt/source/services/monitoring.rst
new file mode 100644
index 0000000..8187e6c
--- /dev/null
+++ b/sphinx/files/salt/source/services/monitoring.rst
@@ -0,0 +1,49 @@
+
+=====================
+Monitoring Definition
+=====================
+
+Definition of monitoring metrics, logs, functional alarms.
+
+
+Log Parsing Definitions
+=======================
+
+TODO: Include heka.log_collector inputs
+
+Metric Collection Definitions
+=============================
+
+TODO: Include collectd metric defintions
+
+Functional Alarms Definitions
+=============================
+
+.. list-table::
+ :header-rows: 1
+
+ * - **Node**
+ - **Alarm**
+ - **Trigger**
+ - **Operator**
+ - **Threshold**
+ - **Function**
+ - **Window**
+{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
+{%- if node_grains.get('heka', {}).get('metric_collector', {}).get('alarm', {}) is mapping %}
+{%- for alarm_name, alarm in node_grains.get('heka', {}).get('metric_collector', {}).get('alarm', {}).iteritems() %}
+{%- for trigger_name in alarm.triggers %}
+{%- set trigger = node_grains.get('heka', {}).get('metric_collector', {}).get('trigger', {}).get(trigger_name, { }) %}
+{%- for rule in trigger.get('rules', []) %}
+ * - {{ node_name }}
+ - {{ alarm_name }}
+ - {{ trigger_name }}
+ - {{ rule.relational_operator }}
+ - {{ rule.threshold }}
+ - {{ rule.function }}
+ - {{ rule.window }}
+{%- endfor %}
+{%- endfor %}
+{%- endfor %}
+{%- endif %}
+{%- endfor %}
diff --git a/sphinx/orch/generate_doc.sls b/sphinx/orch/generate_doc.sls
index 45c75f4..7bad6f1 100644
--- a/sphinx/orch/generate_doc.sls
+++ b/sphinx/orch/generate_doc.sls
@@ -1,30 +1,26 @@
+
linux_system_doc_state:
salt.state:
- tgt: '*'
- sls: linux.system.doc
-salt_minion_state:
+salt_minion_grains:
salt.state:
- tgt: '*'
- - sls: salt.minion
+ - sls: salt.minion.grains
mine_flush:
salt.function:
- - name: cmd.run
+ - name: mine.flush
- tgt: '*'
- - arg:
- - salt-call mine.flush
mine_update:
salt.function:
- - name: cmd.run
+ - name: mine.update
- tgt: '*'
- - arg:
- - salt-call mine.update
sphinx_state:
salt.state:
- - tgt: 'G@roles:sphinx.server'
+ - tgt: 'I@sphinx:server'
- tgt_type: compound
- sls: sphinx
-