munin-plugins-rails 0.2.10 → 0.2.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +54 -34
- data/VERSION +1 -1
- data/bin/request-log-analyzer-munin +26 -1
- data/lib/munin/command.rb +7 -5
- metadata +21 -8
data/README.rdoc
CHANGED
@@ -1,10 +1,13 @@
|
|
1
1
|
= Munin-Rails-Plugins
|
2
2
|
Collection of Concise Munin plugins for Rails server environments.
|
3
3
|
This will make monitoring your rails app a piece of cake.
|
4
|
-
|
4
|
+
|
5
5
|
This project contains munin plugins that not only work in munin, but are also concise (see references).
|
6
6
|
Most things in this repository rely heavily on the request-log-analyzer gem.
|
7
7
|
|
8
|
+
The project has now been converted into a gem.
|
9
|
+
If you are looking for the loose scripts, please checkout https://github.com/barttenbrinke/munin-plugins-rails/tree/stable
|
10
|
+
|
8
11
|
== What's in the box?
|
9
12
|
* passenger_memory_stats - Munin plugin to monitor the memory usage of passenger application servers.
|
10
13
|
* pasenger_queue - Montoring of passenger queue lenth.
|
@@ -14,61 +17,78 @@ Most things in this repository rely heavily on the request-log-analyzer gem.
|
|
14
17
|
* rails_request_error - Application errors and process blocker counters.
|
15
18
|
* rails_requests - Get, put, post and delete requests.
|
16
19
|
* rails_view_render_time - Min, avg and max view render times.
|
17
|
-
|
20
|
+
|
18
21
|
For screenshots, head over to: http://barttenbrinke.github.com/munin-plugins-rails/
|
19
|
-
|
22
|
+
|
20
23
|
== Installation
|
21
|
-
|
22
|
-
git clone git://github.com/barttenbrinke/munin-plugins-rails.git
|
23
|
-
cp munin-plugins-rails/rails_requests /usr/share/munin/plugins/
|
24
|
-
chmod +x /usr/share/munin/plugins/rails_requests
|
25
|
-
ln -s /usr/share/munin/plugins/rails_requests /etc/munin/plugins/rails_requests
|
26
|
-
vi /etc/munin/plugin-conf.d/munin-node
|
24
|
+
Installing should be as easy as
|
27
25
|
|
28
|
-
|
29
|
-
[rails_requests]
|
30
|
-
env.log_file '/path/to/production.log'
|
31
|
-
user www-data
|
32
|
-
command /usr/local/bin/ruby %c
|
26
|
+
gem install munin-rails-plugins
|
33
27
|
|
34
|
-
|
28
|
+
After that you have two options:
|
35
29
|
|
36
|
-
|
37
|
-
|
30
|
+
You can add the passenger plugins that will monitor the server as a whole. These include:
|
31
|
+
* passenger_memory_stats - Munin plugin to monitor the memory usage of passenger application servers.
|
32
|
+
* pasenger_queue - Montoring of passenger queue lenth.
|
33
|
+
* passenger_status - Running, active and maximum number of passenger instances as well as sessions.
|
34
|
+
* rails_database_time - Min, avg, max of database times.
|
35
|
+
* rails_request_duration - Min, avg, max of the total request durations.
|
36
|
+
* rails_request_error - Application errors and process blocker counters.
|
37
|
+
* rails_requests - Get, put, post and delete requests.
|
38
|
+
* rails_view_render_time - Min, avg and max view render times.
|
38
39
|
|
39
|
-
|
40
|
+
To do this run:
|
40
41
|
|
41
|
-
|
42
|
-
Also set a different graph_category for each of app. For instance:
|
42
|
+
sudo request-log-analyzer-munin install
|
43
43
|
|
44
|
-
|
45
|
-
ln -s /usr/share/munin/plugins/rails_requests /etc/munin/plugins/rails_app2_requests
|
44
|
+
This will create the necessary symlinks in /etc/munin/plugins and create reasonable configurations in /etc/munin/plugin-conf.d:
|
46
45
|
|
47
|
-
|
46
|
+
* munin_passenger_memory_stats
|
47
|
+
* munin_passenger_queue
|
48
|
+
* munin_passenger_status
|
48
49
|
|
49
|
-
|
50
|
-
env.log_file '/path/to/app1/production.log'
|
51
|
-
env.graph_category App1
|
50
|
+
You can customize these as needed.
|
52
51
|
|
53
|
-
|
54
|
-
|
55
|
-
|
52
|
+
You can add a specific application's log file so that you can use the following:
|
53
|
+
* rails_database_time
|
54
|
+
* rails_request_duration
|
55
|
+
* rails_request_error
|
56
|
+
* rails_requests
|
57
|
+
* rails_view_render_time
|
56
58
|
|
59
|
+
To do this run
|
60
|
+
|
61
|
+
sudo request-log-analyzer-munin add app_name path_to_log_file
|
62
|
+
|
63
|
+
app_name: this will be the prefix for the graphs and the munin plugins so it should be a valid identifier (/[A-Za-z0-9_]*/).
|
64
|
+
path_to_log_file: this is the path to the log file against which request-log-analyzer will run
|
65
|
+
|
66
|
+
After running this command you'll have appropriate symlinks in /etc/munin/plugins and a set of configuration files in /etc/munin/plugin-conf.d:
|
67
|
+
|
68
|
+
* app_name_munin_rails_database_time
|
69
|
+
* app_name_munin_rails_request_duration
|
70
|
+
* app_name_munin_rails_request_error
|
71
|
+
* app_name_munin_rails_requests
|
72
|
+
* app_name_munin_rails_view_render_time
|
73
|
+
|
74
|
+
For more detailed information, see the documentation embedded in the plugins.
|
75
|
+
|
76
|
+
Remember to restart munin-node.
|
77
|
+
|
57
78
|
== Problems
|
58
79
|
* sudo gem install request-log-analyzer
|
59
80
|
* Check if the paths in the plugin configuration are correct.
|
60
81
|
* Make sure the specified user is allowed to write to /tmp and access your rails logfile.
|
61
|
-
|
82
|
+
|
62
83
|
If you encounter performance problems with your app, please take a look at the request-log-analyzer wiki on
|
63
84
|
examples on how to drill down to the core of your problem. If you want to hire an expert, please visit us at
|
64
85
|
http://railsdoctors.com or mail me at: bart@railsdoctors.com
|
65
|
-
|
86
|
+
|
66
87
|
Happy monitoring!
|
67
|
-
|
88
|
+
|
68
89
|
== Additional information
|
69
90
|
* Railsdoctors: http://railsdoctors.com
|
70
91
|
* Request-log-analzer: http://github.com/wvanbergen/request-log-analyzer/
|
71
92
|
* Screenshots http://barttenbrinke.github.com/munin-plugins-rails/
|
72
93
|
* Munin: http://munin.projects.linpro.no/wiki/ConcisePlugins
|
73
|
-
* License: MIT
|
74
|
-
|
94
|
+
* License: MIT
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.11
|
@@ -1,4 +1,29 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
+
$:.unshift(File.expand_path('../lib', File.dirname(__FILE__)))
|
4
|
+
|
3
5
|
require 'munin-plugins-rails'
|
4
|
-
|
6
|
+
|
7
|
+
if ARGV.length > 0
|
8
|
+
Munin::Command.new.run(ARGV)
|
9
|
+
else
|
10
|
+
puts "Request-log-analyzer-munin, by Andrew Eberbach & Bart ten Brinke - version 0.2.10"
|
11
|
+
puts
|
12
|
+
puts "This gem automatates munin-plugin configurations for monitoring of rails apps using"
|
13
|
+
puts "the request-log-analyzer gem"
|
14
|
+
puts
|
15
|
+
puts "Usage: request-log-analyzer-munin [install|appname] <OPTIONS>"
|
16
|
+
puts
|
17
|
+
puts
|
18
|
+
puts "To install passenger plugins:"
|
19
|
+
puts " request-log-analyzer-munin install"
|
20
|
+
puts
|
21
|
+
puts "To install railsplugins:"
|
22
|
+
puts " request-log-analyzer-munin <app-name> <log-file>"
|
23
|
+
puts
|
24
|
+
puts "Examples:"
|
25
|
+
puts " request-log-analyzer-munin install"
|
26
|
+
puts " request-log-analyzer-munin MyAwesomeApp /srv/my_app/current/log/production.log"
|
27
|
+
puts
|
28
|
+
exit(0)
|
29
|
+
end
|
data/lib/munin/command.rb
CHANGED
@@ -19,7 +19,7 @@ user root
|
|
19
19
|
command /usr/local/bin/ruby %c
|
20
20
|
env.passenger_status '/usr/local/bin/passenger-status'
|
21
21
|
env.passenger_memory_stats '/usr/local/bin/passenger-memory-stats'
|
22
|
-
env.graph_category
|
22
|
+
env.graph_category <%= graph_category %>
|
23
23
|
DATA
|
24
24
|
|
25
25
|
RAILS_PLUGIN_CONFIG = <<-DATA
|
@@ -28,27 +28,29 @@ env.log_file <%= options[:log_file] %>
|
|
28
28
|
user root
|
29
29
|
command /usr/local/bin/ruby %c
|
30
30
|
env.request_log_analyzer /usr/local/bin/request-log-analyzer
|
31
|
-
env.graph_category <%=
|
31
|
+
env.graph_category <%= graph_category %>
|
32
32
|
DATA
|
33
33
|
|
34
|
+
PASSENGER_CATEGORY = "Passenger"
|
35
|
+
|
34
36
|
def install_application(args)
|
35
37
|
app_name = args.shift
|
36
38
|
log_file = args.shift
|
37
39
|
RAILS_PLUGINS.each do |plugin|
|
38
40
|
plugin_target_name = [app_name, plugin].join("_")
|
39
41
|
add_plugin(plugin, plugin_target_name)
|
40
|
-
add_plugin_config(plugin_target_name, RAILS_PLUGIN_CONFIG, :log_file => log_file)
|
42
|
+
add_plugin_config(plugin_target_name, app_name, RAILS_PLUGIN_CONFIG, :log_file => log_file)
|
41
43
|
end
|
42
44
|
end
|
43
45
|
|
44
46
|
def install_passenger_plugins
|
45
47
|
PASSENGER_PLUGINS.each do |plugin|
|
46
48
|
add_plugin(plugin, plugin)
|
47
|
-
add_plugin_config(plugin, PASSENGER_PLUGIN_CONFIG)
|
49
|
+
add_plugin_config(plugin, PASSENGER_CATEGORY, PASSENGER_PLUGIN_CONFIG)
|
48
50
|
end
|
49
51
|
end
|
50
52
|
|
51
|
-
def add_plugin_config(plugin_target_name, config_template, options = {})
|
53
|
+
def add_plugin_config(plugin_target_name, graph_category, config_template, options = {})
|
52
54
|
FileUtils.mkdir_p(munin_plugin_config_path)
|
53
55
|
template = ERB.new config_template
|
54
56
|
File.open(File.join(munin_plugin_config_path, plugin_target_name), "w+") do |file|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: munin-plugins-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 1
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 11
|
10
|
+
version: 0.2.11
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Andrew Eberbach
|
@@ -16,10 +16,23 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2011-03-
|
19
|
+
date: 2011-03-28 00:00:00 -04:00
|
20
20
|
default_executable: request-log-analyzer-munin
|
21
|
-
dependencies:
|
22
|
-
|
21
|
+
dependencies:
|
22
|
+
- !ruby/object:Gem::Dependency
|
23
|
+
name: request-log-analyzer
|
24
|
+
prerelease: false
|
25
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ">="
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
hash: 3
|
31
|
+
segments:
|
32
|
+
- 0
|
33
|
+
version: "0"
|
34
|
+
type: :runtime
|
35
|
+
version_requirements: *id001
|
23
36
|
description:
|
24
37
|
email: andrew@ebertech.ca
|
25
38
|
executables:
|
@@ -82,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
82
95
|
requirements: []
|
83
96
|
|
84
97
|
rubyforge_project:
|
85
|
-
rubygems_version: 1.
|
98
|
+
rubygems_version: 1.5.0
|
86
99
|
signing_key:
|
87
100
|
specification_version: 3
|
88
101
|
summary: Plugins for Munin that use passenger and RLA
|