]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/munin/files/default/plugins/api_calls_num
nominatim: install secondary importance file
[chef.git] / cookbooks / munin / files / default / plugins / api_calls_num
diff --git a/cookbooks/munin/files/default/plugins/api_calls_num b/cookbooks/munin/files/default/plugins/api_calls_num
deleted file mode 100755 (executable)
index c86275e..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/usr/bin/ruby
-
-require "rubygems"
-require "date"
-gem "home_run", ">= 0"
-require "apache_log_regex"
-
-NUM_LINES = 10000
-
-def uris_from_logs
-  lines = []
-  max_time = nil
-  min_time = nil
-  parser = ApacheLogRegex.new('%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %x')
-  IO.popen("tail -n #{NUM_LINES} /var/log/apache2/access.log").each_line do |line|
-    begin
-      hash = parser.parse(line)
-      uri = hash["%r"]
-      t = DateTime.strptime(hash["%t"], "[%d/%b/%Y:%H:%M:%S %z]")
-      min_time = [min_time, t].compact.min
-      max_time = [max_time, t].compact.max
-      lines << uri
-    rescue ApacheLogRegex::ParseError
-      # nil
-    end
-  end
-  [min_time, max_time, lines]
-end
-
-CALL_TYPES = {
-  :map => "Map API calls",
-  :upload => "Changeset diff uploads",
-  :amf => "AMF API calls",
-  :history => "Element history fetches",
-  :full => "Full element fetches",
-  :trkpts => "GPX trackpoints calls",
-  :web => "Web site traffic",
-  :other => "Other API calls"
-}
-
-def categorise_uri(line)
-  uri = line.split(" ")[1]
-
-  case uri
-  when %r{api/0\.6/map} then :map
-  when %r{api/0\.6/changeset/[0-9]*/upload} then :upload
-  when %r{api/0\.6/amf} then :amf
-  when %r{api/0\.6/(node|way|relation)/[0-9]*/history} then :history
-  when %r{api/0\.6/(node|way|relation)/[0-9]*/full} then :full
-  when %r{api/0\.6/trackpoints} then :trkpts
-  when %r{api/0\.6/} then :other
-  else :web
-  end
-end
-
-if ARGV[0] == "config"
-  puts "graph_title Requests processed"
-  puts "graph_vlabel Number of requests per minute"
-  puts "graph_category api"
-  CALL_TYPES.each { |k, v| puts "#{k}.label #{v}" }
-
-else
-  min_time, max_time, lines = uris_from_logs
-  delta_t = (max_time - min_time).to_f * 24 * 60
-  counts = lines
-           .collect { |x| categorise_uri(x) }
-           .each_with_object({}) do |e, h|
-    if h.key? e
-      h[e] += 1
-    else
-      h[e] = 1
-    end
-  end
-
-  CALL_TYPES.keys.each do |type|
-    count = counts[type] || 0
-    puts "#{type}.value #{count / delta_t}"
-  end
-end