summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2024-03-03 08:45:24 -0500
committerJesse Luehrs <doy@tozt.net>2024-03-03 08:45:24 -0500
commit367708ef171d7914854c68f7d7a32217683bad6d (patch)
tree713dbcc6ef91ff37e3c10a6afa201c82579af9a7
parent191355452eb47222ab98148f0215dd6724852377 (diff)
downloadpuppet-tozt-367708ef171d7914854c68f7d7a32217683bad6d.tar.gz
puppet-tozt-367708ef171d7914854c68f7d7a32217683bad6d.zip
improve rclone metrics a bit
-rw-r--r--modules/partofme/files/rclone-cron3
-rw-r--r--modules/tick/files/plugins/rclone22
-rw-r--r--modules/tick/files/plugins/rclone.conf2
3 files changed, 16 insertions, 11 deletions
diff --git a/modules/partofme/files/rclone-cron b/modules/partofme/files/rclone-cron
index de3a2c8..c3047cf 100644
--- a/modules/partofme/files/rclone-cron
+++ b/modules/partofme/files/rclone-cron
@@ -4,10 +4,11 @@ if ! mount | grep -q /media/persistent; then
exit 1
fi
-date -Iseconds >/media/persistent/last_run
+date -Iseconds >/media/persistent/last_run_start
sudo lvcreate --size 10G --snapshot --name backup /dev/partofme/data
sudo mkdir -p /media/backup
sudo mount -o ro /dev/partofme/backup /media/backup
rclone --config /etc/rclone.conf sync --fast-list /media/backup crypt:partofme
sudo umount /media/backup
sudo lvremove -y partofme/backup
+date -Iseconds >/media/persistent/last_run_end
diff --git a/modules/tick/files/plugins/rclone b/modules/tick/files/plugins/rclone
index c26a190..0292512 100644
--- a/modules/tick/files/plugins/rclone
+++ b/modules/tick/files/plugins/rclone
@@ -12,15 +12,19 @@ JSON.load(%x{#{rclone} lsjson #{crypt_repo}}).each do |dir|
crypt_path = "#{crypt_repo}#{dir["Path"]}"
b2_path = "#{b2_repo}/#{dir["Path"]}"
- date = %x{#{rclone} cat #{crypt_path}/last_run}
- ago_s = now - DateTime.iso8601(date).to_time
+ run_start = %x{#{rclone} cat #{crypt_path}/last_run_start}
+ run_end = %x{#{rclone} cat #{crypt_path}/last_run_end}
+ ago_s = now - DateTime.iso8601(run_end).to_time
+ dur_s = DateTime.iso8601(run_end).to_time - DateTime.iso8601(run_start).to_time
+ if dur_s > 0
+ duration_minutes = ",duration_minutes=#{dur_s / 60.0}"
+ else
+ duration_minutes = ""
+ end
- # rclone size uses quite a lot of backblaze api calls, which turns out to be
- # super expensive
- # data = JSON.load(%x{#{rclone} size #{b2_path} --b2-versions --json})
- # file_size_b = data["bytes"]
- # file_count_n = data["count"]
+ data = JSON.load(%x{#{rclone} size #{b2_path} --b2-versions --json --fast-list})
+ file_size_b = data["bytes"]
+ file_count_n = data["count"]
- # puts "rclone,location=#{crypt_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"
- puts "rclone,location=#{crypt_path} days_since_last_run=#{ago_s / 60.0 / 60.0 / 24.0}"
+ puts "rclone,location=#{crypt_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#{duration_minutes}"
end
diff --git a/modules/tick/files/plugins/rclone.conf b/modules/tick/files/plugins/rclone.conf
index 85e2bdc..a56001c 100644
--- a/modules/tick/files/plugins/rclone.conf
+++ b/modules/tick/files/plugins/rclone.conf
@@ -1,5 +1,5 @@
[[inputs.exec]]
commands = ["/etc/telegraf/plugins/rclone"]
data_format = "influx"
-interval = "5m"
+interval = "15m"
timeout = "2m"