From c18698a0522cfe2ede5361706cf59d99b9cb55de Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Wed, 1 Apr 2015 00:35:36 +0100 Subject: [PATCH 1/1] Add a munin plugin for API response codes --- .../files/default/plugins/api_calls_status | 39 +++++++++++++++++++ cookbooks/web/recipes/rails.rb | 1 + 2 files changed, 40 insertions(+) create mode 100755 cookbooks/munin/files/default/plugins/api_calls_status diff --git a/cookbooks/munin/files/default/plugins/api_calls_status b/cookbooks/munin/files/default/plugins/api_calls_status new file mode 100755 index 000000000..16b0d0e03 --- /dev/null +++ b/cookbooks/munin/files/default/plugins/api_calls_status @@ -0,0 +1,39 @@ +#!/usr/bin/ruby + +require "json" + +HTTP_STATUSES = { + "200" => "OK", + "301" => "Moved Permanently", + "302" => "Found", + "303" => "See Other", + "304" => "Not Modified", + "400" => "Bad Request", + "401" => "Unauthorized", + "403" => "Forbidden", + "404" => "Not Found", + "408" => "Request Timeout", + "409" => "Conflict", + "410" => "Gone", + "500" => "Internal Server Error", + "509" => "Bandwidth Limit Exceeded" +} + +if ARGV[0] == "config" + puts "graph_title HTTP response codes" + puts "graph_args --lower-limit 0 --base 1000 --logarithmic" + puts "graph_vlabel Number of requests per ${graph_period}" + puts "graph_category api" + + HTTP_STATUSES.each do |code, label| + puts "http#{code}.label #{label}" + puts "http#{code}.type DERIVE" + end +else + statistics = JSON.parse(File.read("/srv/www.openstreetmap.org/rails/tmp/statistics.json")) + + HTTP_STATUSES.keys.each do |code| + count = statistics["status"][code] || 0 + puts "http#{code}.value #{count}" + end +end diff --git a/cookbooks/web/recipes/rails.rb b/cookbooks/web/recipes/rails.rb index bb7eeef2c..98b515d42 100644 --- a/cookbooks/web/recipes/rails.rb +++ b/cookbooks/web/recipes/rails.rb @@ -91,6 +91,7 @@ service "api-statistics" do subscribes :restart, "template[/etc/init.d/api-statistics]" end +munin_plugin "api_calls_status" munin_plugin "api_calls_num" munin_plugin "api_calls_#{node[:hostname]}" do -- 2.43.2