From f0612746c03cad47fab228d1250c43363da50b09 Mon Sep 17 00:00:00 2001 From: clerie Date: Sat, 22 Feb 2025 22:25:57 +0100 Subject: [PATCH] Enable monitoring on clerie.uber.space --- .../files/prometheus-node-exporter.ini | 8 ++++ bundles/uberspace-clerie-monitoring/items.py | 47 +++++++++++++++++++ nodes.py | 2 + 3 files changed, 57 insertions(+) create mode 100644 bundles/uberspace-clerie-monitoring/files/prometheus-node-exporter.ini create mode 100644 bundles/uberspace-clerie-monitoring/items.py diff --git a/bundles/uberspace-clerie-monitoring/files/prometheus-node-exporter.ini b/bundles/uberspace-clerie-monitoring/files/prometheus-node-exporter.ini new file mode 100644 index 0000000..d2baa9b --- /dev/null +++ b/bundles/uberspace-clerie-monitoring/files/prometheus-node-exporter.ini @@ -0,0 +1,8 @@ +[program:prometheus-node-exporter] +command=prometheus-node-exporter + --web.listen-address 0.0.0.0:9100 + --collector.disable-defaults + --collector.textfile + --collector.textfile.directory=/home/{{ node.username }}/.local/state/prometheus-node-exporter/textfiles + --collector.time +startsecs=60 diff --git a/bundles/uberspace-clerie-monitoring/items.py b/bundles/uberspace-clerie-monitoring/items.py new file mode 100644 index 0000000..31c1db8 --- /dev/null +++ b/bundles/uberspace-clerie-monitoring/items.py @@ -0,0 +1,47 @@ +uberspaceify = repo.libs.uberspace.Uberspaceify(node) + +directories = uberspaceify.directories({ + f'/home/{node.username}/.local/state/prometheus-node-exporter/textfiles': { + }, +}) + +files = uberspaceify.files({ + f'/home/{node.username}/.bwdownloads/prometheus-node-exporter.tar.gz': { + "content_type": "download", + "source": "https://github.com/prometheus/node_exporter/releases/download/v1.9.0/node_exporter-1.9.0.linux-amd64.tar.gz", + "content_hash": "847bd800f3cae9c8e613c9d2fb59ffc7bb3eb764", + "triggers": [ + "action:prometheus-node-exporter-install", + ], + }, + f"/home/{node.username}/etc/services.d/prometheus-node-exporter.ini": { + "source": "prometheus-node-exporter.ini", + "content_type": "jinja2", + "triggers": [ + "action:supervisord-reread", + "svc_uberspace_supervisord:prometheus-node-exporter:update", + ], + }, +}) + +actions["prometheus-node-exporter-exists"] = { + "command": 'true', + "unless": f'[[ -f "/home/{node.username}/bin/prometheus-node-exporter" && -x "/home/{node.username}/bin/prometheus-node-exporter" ]]', + "triggers": [ + "action:prometheus-node-exporter-install", + ], +} + +actions["prometheus-node-exporter-install"] = { + "command": f'tar -xf /home/{node.username}/.bwdownloads/prometheus-node-exporter.tar.gz node_exporter*/node_exporter --to-stdout > /home/{node.username}/bin/prometheus-node-exporter && chmod +x /home/{node.username}/bin/prometheus-node-exporter', + "triggered": True, + "needs": [ + f"file:/home/{node.username}/.bwdownloads/prometheus-node-exporter.tar.gz", + ], +} + +svc_uberspace_supervisord["prometheus-node-exporter"] = { + "needs": [ + f"file:/home/{node.username}/etc/services.d/prometheus-node-exporter.ini", + ], +} diff --git a/nodes.py b/nodes.py index e25f68a..0eebeb2 100644 --- a/nodes.py +++ b/nodes.py @@ -36,7 +36,9 @@ nodes = uberspaceify.nodes({ "bundles": ( "uberspace-redirect-clerie", "uberspace-clerie-backup", + "uberspace-clerie-monitoring", "uberspace-crontab-dir", + "uberspace-supervisord", ), "metadata": { "clerie-backup": {