summaryrefslogtreecommitdiffstats
path: root/modules/tick/files
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2021-03-27 19:56:57 -0400
committerJesse Luehrs <doy@tozt.net>2021-03-27 19:56:57 -0400
commit12d77d5eb1d08b7f8e256cd8ae15b5a0b20a91a5 (patch)
tree6527c012461bf9896eb22c5f9572799416f64432 /modules/tick/files
parent62ec0f0c3baee1da7829c59d3c39b2d9c5faaba8 (diff)
downloadpuppet-tozt-12d77d5eb1d08b7f8e256cd8ae15b5a0b20a91a5.tar.gz
puppet-tozt-12d77d5eb1d08b7f8e256cd8ae15b5a0b20a91a5.zip
add monitoring for borg
Diffstat (limited to 'modules/tick/files')
-rw-r--r--modules/tick/files/plugins/borg19
-rw-r--r--modules/tick/files/plugins/borg.conf5
2 files changed, 24 insertions, 0 deletions
diff --git a/modules/tick/files/plugins/borg b/modules/tick/files/plugins/borg
new file mode 100644
index 0000000..38bbe3c
--- /dev/null
+++ b/modules/tick/files/plugins/borg
@@ -0,0 +1,19 @@
+#!/usr/bin/env ruby
+
+require 'date'
+require 'json'
+
+now = Time.now
+
+data = JSON.load(%x{borgmatic info --archive latest --json})
+
+repository = data[0]["repository"]
+archive = data[0]["archives"][0]
+
+location = repository["location"]
+ago_s = now - DateTime.iso8601(archive["end"]).to_time
+dur_s = archive["duration"].to_f
+file_size_b = archive["stats"]["original_size"]
+file_count_n = archive["stats"]["nfiles"]
+
+puts "borg,location=#{location} days_since_last_run=#{ago_s / 60.0 / 60.0 / 24.0},last_run_duration_minutes=#{dur_s / 60.0},file_size=#{file_size_b}i,file_count=#{file_count_n}i"
diff --git a/modules/tick/files/plugins/borg.conf b/modules/tick/files/plugins/borg.conf
new file mode 100644
index 0000000..2351d2a
--- /dev/null
+++ b/modules/tick/files/plugins/borg.conf
@@ -0,0 +1,5 @@
+[[inputs.exec]]
+commands = ["/etc/telegraf/plugins/borg"]
+data_format = "influx"
+interval = "5m"
+timeout = "2m"