Add alerta to prometheus
Change-Id: I0349936dc683475e18155cf5f8ca750d06482cfb
diff --git a/metadata/service/alerta/init.yml b/metadata/service/alerta/init.yml
new file mode 100644
index 0000000..97ab144
--- /dev/null
+++ b/metadata/service/alerta/init.yml
@@ -0,0 +1,9 @@
+applications:
+ - prometheus
+classes:
+ - service.prometheus.support
+parameters:
+ prometheus:
+ alerta:
+ enabled: true
+ config_dir: /srv/volumes/local/alerta
diff --git a/prometheus/alerta.sls b/prometheus/alerta.sls
new file mode 100644
index 0000000..ec6bbe6
--- /dev/null
+++ b/prometheus/alerta.sls
@@ -0,0 +1,21 @@
+{% from "prometheus/map.jinja" import alerta with context %}
+{%- if alerta.enabled %}
+
+alerta_config_dir:
+ file.directory:
+ - name: {{ alerta.config_dir }}
+ - makedirs: True
+ - mode: 755
+
+
+alerta_config_file:
+ file.managed:
+ - name: {{ alerta.config_dir }}/alerta.conf
+ - source: salt://prometheus/files/alerta/alerta.conf
+ - makedirs: True
+ - mode: 755
+ - template: jinja
+ - require:
+ - file: alerta_config_dir
+
+{%- endif %}
diff --git a/prometheus/files/alerta/alerta.conf b/prometheus/files/alerta/alerta.conf
new file mode 100644
index 0000000..12eb2cc
--- /dev/null
+++ b/prometheus/files/alerta/alerta.conf
@@ -0,0 +1,26 @@
+{%- from "prometheus/map.jinja" import alerta with context %}
+'use strict';
+
+angular.module('config', [])
+ .constant('config', {
+ 'endpoint' : "/api",
+ 'provider' : "basic",
+ 'colors' : {
+ 'severity': {
+ 'critical' : '{{ alerta.get("colors", {}).get("critical", "#D8122A") }}',
+ 'major' : '{{ alerta.get("colors", {}).get("major", "#EA680F") }}',
+ 'minor' : '{{ alerta.get("colors", {}).get("minor", "#FFBE1E") }}',
+ 'warning' : '{{ alerta.get("colors", {}).get("warning", "#BA2222") }}',
+ 'indeterminate': '{{ alerta.get("colors", {}).get("indeterminate", "#A6ACA8") }}',
+ 'cleared' : '{{ alerta.get("colors", {}).get("cleared", "#00AA5A") }}',
+ 'normal' : '{{ alerta.get("colors", {}).get("normal", "#00AA5A") }}',
+ 'ok' : '{{ alerta.get("colors", {}).get("ok", "#00AA5A") }}',
+ 'informational': '{{ alerta.get("colors", {}).get("informational", "#00A1BC") }}',
+ 'debug' : '{{ alerta.get("colors", {}).get("debug", "#9D006D") }}',
+ 'security' : '{{ alerta.get("colors", {}).get("security", "#333333") }}',
+ 'unknown' : '{{ alerta.get("colors", {}).get("unknown", "#A6ACA8") }}'
+ },
+ 'text': 'white',
+ 'highlight': 'lightgray'
+ }
+ });
diff --git a/prometheus/init.sls b/prometheus/init.sls
index 73d51ba..0e6cdad 100644
--- a/prometheus/init.sls
+++ b/prometheus/init.sls
@@ -1,5 +1,6 @@
{%- if pillar.prometheus.get('server', {}).get('enabled', False) or
pillar.prometheus.get('relay', {}).get('enabled', False) or
+ pillar.prometheus.get('alerta', {}).get('enabled', False) or
pillar.prometheus.alertmanager is defined or
pillar.prometheus.exporters is defined %}
include:
@@ -9,6 +10,9 @@
{%- if pillar.prometheus.get('relay', {}).get('enabled', False) %}
- prometheus.relay
{%- endif %}
+ {%- if pillar.prometheus.get('alerta', {}).get('enabled', False) %}
+ - prometheus.alerta
+ {%- endif %}
{%- if pillar.prometheus.alertmanager is defined %}
- prometheus.alertmanager
{%- endif %}
diff --git a/prometheus/map.jinja b/prometheus/map.jinja
index 8db8b45..abc2a73 100644
--- a/prometheus/map.jinja
+++ b/prometheus/map.jinja
@@ -45,3 +45,9 @@
'default': {
},
}, merge=salt['pillar.get']('prometheus:remote_storage_adapter')) %}
+
+{% set alerta = salt['grains.filter_by']({
+ 'default': {
+ 'config_dir': '/srv/volumes/local/alerta',
+ },
+}, merge=salt['pillar.get']('prometheus:alerta')) %}}