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')) %}