summaryrefslogtreecommitdiffstats
path: root/salt/profile/prometheus
diff options
context:
space:
mode:
Diffstat (limited to 'salt/profile/prometheus')
-rw-r--r--salt/profile/prometheus/node_exporter.sls36
-rw-r--r--salt/profile/prometheus/targets.sls18
2 files changed, 54 insertions, 0 deletions
diff --git a/salt/profile/prometheus/node_exporter.sls b/salt/profile/prometheus/node_exporter.sls
new file mode 100644
index 0000000..1e46b3d
--- /dev/null
+++ b/salt/profile/prometheus/node_exporter.sls
@@ -0,0 +1,36 @@
+{%- set header = salt['pillar.get']('managed_header_pound') -%}
+{%- set sysconfig = '/etc/sysconfig/prometheus-node_exporter' -%}
+
+node_exporter_packages:
+ pkg.installed:
+ - pkgs:
+ - golang-github-prometheus-node_exporter
+
+node_exporter_sysconfig_header:
+ file.prepend:
+ - name: {{ sysconfig }}
+ - text: '{{ header }}'
+ - require:
+ - pkg: node_exporter_packages
+
+node_exporter_sysconfig:
+ file.replace:
+ - name: {{ sysconfig }}
+ - pattern: |
+ ^ARGS=.*$
+ - repl: |
+ ARGS="--web.listen-address=:9200 --collector.filesystem.fs-types-exclude='^(fuse.s3fs|fuse.cryfs|tmpfscgroup2?|debugfs|devpts|devtmpfs|fusectl|overlay|proc|procfs|pstore)\$' --no-collector.zfs --no-collector.thermal_zone --no-collector.powersupplyclass"
+ - require:
+ - pkg: node_exporter_packages
+ - file: node_exporter_sysconfig_header
+
+node_exporter_service:
+ service.running:
+ - name: prometheus-node_exporter.service
+ - enable: True
+ - full_restart: True
+ - require:
+ - pkg: node_exporter_packages
+ - file: node_exporter_sysconfig
+ - watch:
+ - file: node_exporter_sysconfig
diff --git a/salt/profile/prometheus/targets.sls b/salt/profile/prometheus/targets.sls
new file mode 100644
index 0000000..5f29e73
--- /dev/null
+++ b/salt/profile/prometheus/targets.sls
@@ -0,0 +1,18 @@
+{%- set mypillar = salt['pillar.get']('profile:prometheus:targets') %}
+{%- set targetsdir = '/etc/prometheus/targets' %}
+
+{%- if mypillar | length %}
+{{ targetsdir }}:
+ file.directory:
+ - group: prometheus
+
+{%- for group, nodes in mypillar.items() %}
+{{ targetsdir }}/{{ group }}.json:
+ file.serialize:
+ - dataset: {{ nodes }}
+ - serializer: json
+{%- endfor %}
+
+{%- else %}
+{%- do salt.log.debug('profile.prometheus: no targets defined') %}
+{%- endif %}