summaryrefslogtreecommitdiffstats
path: root/modules/tick/files
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2021-03-27 23:28:11 -0400
committerJesse Luehrs <doy@tozt.net>2021-03-27 23:28:11 -0400
commit119c6f6645f660f76d255861296570eca05f0112 (patch)
tree0200da0b70adc17e57aeb474cc5ae3e4d5d5f235 /modules/tick/files
parent7038b1d10d717ba5eb54bca009ee626f0141e834 (diff)
downloadpuppet-tozt-119c6f6645f660f76d255861296570eca05f0112.tar.gz
puppet-tozt-119c6f6645f660f76d255861296570eca05f0112.zip
monitoring for rclone
Diffstat (limited to 'modules/tick/files')
-rw-r--r--modules/tick/files/plugins/rclone20
-rw-r--r--modules/tick/files/plugins/rclone.conf5
2 files changed, 25 insertions, 0 deletions
diff --git a/modules/tick/files/plugins/rclone b/modules/tick/files/plugins/rclone
new file mode 100644
index 0000000..68b0dc4
--- /dev/null
+++ b/modules/tick/files/plugins/rclone
@@ -0,0 +1,20 @@
+#!/usr/bin/env ruby
+
+require 'date'
+require 'json'
+
+rclone = "rclone --config /etc/rclone.conf"
+now = Time.now
+
+JSON.load(%x{#{rclone} lsjson crypt:}).each do |dir|
+ repo_path = "crypt:#{dir["Path"]}"
+
+ date = %x{#{rclone} cat #{repo_path}/last_run}
+ data = JSON.load(%x{#{rclone} size #{repo_path} --json})
+
+ ago_s = now - DateTime.iso8601(date).to_time
+ file_size_b = data["bytes"]
+ file_count_n = data["count"]
+
+ puts "rclone,location=#{repo_path} days_since_last_run=#{ago_s / 60.0 / 60.0 / 24.0},file_size=#{file_size_b}i,file_count=#{file_count_n}i"
+end
diff --git a/modules/tick/files/plugins/rclone.conf b/modules/tick/files/plugins/rclone.conf
new file mode 100644
index 0000000..85e2bdc
--- /dev/null
+++ b/modules/tick/files/plugins/rclone.conf
@@ -0,0 +1,5 @@
+[[inputs.exec]]
+commands = ["/etc/telegraf/plugins/rclone"]
+data_format = "influx"
+interval = "5m"
+timeout = "2m"