From 38242186dd013209b732e6f0c5a455da8d801a19 Mon Sep 17 00:00:00 2001 From: Dmitry Kalashnik Date: Wed, 25 Apr 2018 12:38:04 +0400 Subject: [PATCH] Add alerta to prometheus Change-Id: I0349936dc683475e18155cf5f8ca750d06482cfb --- metadata/service/alerta/init.yml | 9 +++++++++ prometheus/alerta.sls | 21 +++++++++++++++++++++ prometheus/files/alerta/alerta.conf | 26 ++++++++++++++++++++++++++ prometheus/init.sls | 4 ++++ prometheus/map.jinja | 6 ++++++ 5 files changed, 66 insertions(+) create mode 100644 metadata/service/alerta/init.yml create mode 100644 prometheus/alerta.sls create mode 100644 prometheus/files/alerta/alerta.conf 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 @@ include: {%- 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')) %}}