From 119c6f6645f660f76d255861296570eca05f0112 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sat, 27 Mar 2021 23:28:11 -0400 Subject: monitoring for rclone --- modules/tick/files/plugins/rclone | 20 ++++++++++++++++++++ modules/tick/files/plugins/rclone.conf | 5 +++++ modules/tick/manifests/client/plugin/rclone.pp | 15 +++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 modules/tick/files/plugins/rclone create mode 100644 modules/tick/files/plugins/rclone.conf create mode 100644 modules/tick/manifests/client/plugin/rclone.pp (limited to 'modules/tick') 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" diff --git a/modules/tick/manifests/client/plugin/rclone.pp b/modules/tick/manifests/client/plugin/rclone.pp new file mode 100644 index 0000000..f2bb968 --- /dev/null +++ b/modules/tick/manifests/client/plugin/rclone.pp @@ -0,0 +1,15 @@ +class tick::client::plugin::rclone { + file { + "/etc/telegraf/telegraf.d/rclone.conf": + source => 'puppet:///modules/tick/plugins/rclone.conf', + require => [ + File["/etc/telegraf/telegraf.d"], + File["/etc/telegraf/plugins/rclone"], + ], + notify => Service["telegraf"]; + "/etc/telegraf/plugins/rclone": + source => 'puppet:///modules/tick/plugins/rclone', + mode => '0755', + require => File['/etc/telegraf/plugins']; + } +} -- cgit v1.2.3-54-g00ecf