]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/munin/files/default/plugins/planet_age
Add a munin plugin to monitor the planet dumps and replication
[chef.git] / cookbooks / munin / files / default / plugins / planet_age
diff --git a/cookbooks/munin/files/default/plugins/planet_age b/cookbooks/munin/files/default/plugins/planet_age
new file mode 100755 (executable)
index 0000000..3fb0def
--- /dev/null
@@ -0,0 +1,50 @@
+#!/usr/bin/ruby
+
+files = [
+  {
+    :label => "planet",
+    :name => "/store/planet/planet/planet-latest.osm.bz2",
+    :title => "Planet Dump",
+    :frequency => 7 * 24 * 60 * 60
+  },
+  {
+    :label => "day",
+    :name => "/store/planet/replication/day/state.txt",
+    :title => "Daily Replication",
+    :frequency => 24 * 60 * 60
+  },
+  {
+    :label => "hour",
+    :name => "/store/planet/replication/hour/state.txt",
+    :title => "Hourly Replication",
+    :frequency => 60 * 60
+  },
+  {
+    :label => "minute",
+    :name => "/store/planet/replication/minute/state.txt",
+    :title => "Minutely Replication",
+    :frequency => 60
+  }
+]
+
+if ARGV[0] == "config"
+  puts "graph_title Planet Age"
+  puts "graph_args --base 1000 --lower-limit 0"
+  puts "graph_scale no"
+  puts "graph_vlabel fraction of expected max age"
+  puts "graph_category planet"
+
+  files.each do |file|
+    puts "#{file[:label]}.label #{file[:title]}"
+    puts "#{file[:label]}.type GAUGE"
+    puts "#{file[:label]}.warning 0:1.05"
+    puts "#{file[:label]}.critical 0:1.1"
+  end
+else
+
+  files.each do |file|
+    value = (Time.now - File.mtime(file[:name])) / file[:frequency]
+
+    puts "#{file[:label]}.value #{value}"
+  end
+end