From 367708ef171d7914854c68f7d7a32217683bad6d Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sun, 3 Mar 2024 08:45:24 -0500 Subject: improve rclone metrics a bit --- modules/partofme/files/rclone-cron | 3 ++- modules/tick/files/plugins/rclone | 22 +++++++++++++--------- modules/tick/files/plugins/rclone.conf | 2 +- 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" -- cgit v1.2.3-54-g00ecf