From e8c7be754f762ec9d0e61675b6819ec3a1800218 Mon Sep 17 00:00:00 2001 From: Olivier Bourdon Date: Fri, 23 Jun 2017 12:28:48 +0200 Subject: [PATCH] Add Prometheus exporters Change-Id: I71538bc6b39edaa6a0856c8bba9de11b88cec67a --- metadata/service/exporters/jmx.yml | 13 +++++++++++++ metadata/service/exporters/libvirt.yml | 14 ++++++++++++++ prometheus/exporters.sls | 11 +++++++++++ prometheus/init.sls | 6 +++++- prometheus/map.jinja | 5 +++++ 5 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 metadata/service/exporters/jmx.yml create mode 100644 metadata/service/exporters/libvirt.yml create mode 100644 prometheus/exporters.sls diff --git a/metadata/service/exporters/jmx.yml b/metadata/service/exporters/jmx.yml new file mode 100644 index 0000000..04f3bc1 --- /dev/null +++ b/metadata/service/exporters/jmx.yml @@ -0,0 +1,13 @@ +applications: + - prometheus +parameters: + _param: + prometheus_exporter_jmx_port: 9111 + prometheus: + exporters: + jmx: + enabled: true + packages: + - jmx-exporter + bind: + port: ${_param:prometheus_exporter_jmx_port} diff --git a/metadata/service/exporters/libvirt.yml b/metadata/service/exporters/libvirt.yml new file mode 100644 index 0000000..9f277ea --- /dev/null +++ b/metadata/service/exporters/libvirt.yml @@ -0,0 +1,14 @@ +applications: + - prometheus +parameters: + _param: + prometheus_exporter_libvirt_port: 9177 + prometheus: + exporters: + libvirt: + enabled: true + packages: + - libvirt-exporter + bind: + address: 0.0.0.0 + port: ${_param:prometheus_exporter_libvirt_port} diff --git a/prometheus/exporters.sls b/prometheus/exporters.sls new file mode 100644 index 0000000..8baba39 --- /dev/null +++ b/prometheus/exporters.sls @@ -0,0 +1,11 @@ +{% from "prometheus/map.jinja" import exporters with context %} + +{%- for exporter, parameters in exporters.iteritems() %} + {%- if parameters.get('enabled', False) %} + {%- if parameters.get('packages', False) %} +{{ exporter }}_exporter_packages: + pkg.installed: + - names: {{ parameters.packages }} + {%- endif %} + {%- endif %} +{%- endfor %} diff --git a/prometheus/init.sls b/prometheus/init.sls index 3141a49..cd31765 100644 --- a/prometheus/init.sls +++ b/prometheus/init.sls @@ -1,5 +1,6 @@ {%- if pillar.prometheus.server is defined or - pillar.prometheus.alertmanager is defined %} + pillar.prometheus.alertmanager is defined or + pillar.prometheus.exporters is defined %} include: {%- if pillar.prometheus.server is defined %} - prometheus.server @@ -7,4 +8,7 @@ include: {%- if pillar.prometheus.alertmanager is defined %} - prometheus.alertmanager {%- endif %} + {%- if pillar.prometheus.exporters is defined %} + - prometheus.exporters + {%- endif %} {%- endif %} diff --git a/prometheus/map.jinja b/prometheus/map.jinja index 3ff6bb6..6d62276 100644 --- a/prometheus/map.jinja +++ b/prometheus/map.jinja @@ -7,3 +7,8 @@ 'default': { }, }, merge=salt['pillar.get']('prometheus:alertmanager')) %} + +{% set exporters = salt['grains.filter_by']({ + 'default': { + }, +}, merge=salt['pillar.get']('prometheus:exporters')) %}