jashmenn-poolparty-extensions 0.0.7 → 0.1.0
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 +15 -0
- data/Rakefile +2 -2
- data/VERSION.yml +2 -2
- data/lib/extensions/bash_alias.rb +3 -0
- data/lib/extensions/convenience_helpers.rb +78 -0
- data/lib/extensions/development_gem_package.rb +3 -2
- data/lib/extensions/ganglia/ganglia.rb +173 -0
- data/lib/extensions/ganglia/templates/bin/gmetad.erb +38 -0
- data/lib/extensions/ganglia/templates/bin/gmond.erb +38 -0
- data/lib/extensions/ganglia/templates/ganglia-web-conf.php.erb +191 -0
- data/lib/extensions/ganglia/templates/gmetad.conf.erb +115 -0
- data/lib/extensions/ganglia/templates/gmond.conf.erb +362 -0
- data/lib/poolparty-extensions.rb +5 -2
- metadata +10 -3
data/README.rdoc
CHANGED
@@ -10,6 +10,21 @@
|
|
10
10
|
|
11
11
|
= Available extensions
|
12
12
|
|
13
|
+
== bash_alias
|
14
|
+
Adds a bash alias
|
15
|
+
|
16
|
+
== development_gem_package
|
17
|
+
Deploy a and install a gem developed locally. This is useful when you are
|
18
|
+
developing an internal or forked gem and you want to deploy it to your cloud
|
19
|
+
|
20
|
+
|
21
|
+
== Usage
|
22
|
+
|
23
|
+
has_development_gem_package('jetty-rack',
|
24
|
+
:from => "~/path/to/my/site",
|
25
|
+
:git_pull_first => true) # git pull from before sending to server
|
26
|
+
|
27
|
+
|
13
28
|
== dynomite
|
14
29
|
Installs edge dynomite from the git repository
|
15
30
|
|
data/Rakefile
CHANGED
@@ -8,7 +8,7 @@ begin
|
|
8
8
|
gem.summary = %Q{Extensions on to of poolparty}
|
9
9
|
gem.email = "arilerner@mac.com"
|
10
10
|
gem.homepage = "http://github.com/auser/poolparty-extensions"
|
11
|
-
gem.authors = ["Ari Lerner"]
|
11
|
+
gem.authors = ["Ari Lerner, Nate Murray, & Michael Fairchild"]
|
12
12
|
|
13
13
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
14
14
|
end
|
@@ -76,7 +76,7 @@ task :readme do
|
|
76
76
|
footer =<<-EOF
|
77
77
|
== Copyright
|
78
78
|
|
79
|
-
Copyright (c) 2009 Ari Lerner. See LICENSE for details.
|
79
|
+
Copyright (c) 2009 Ari Lerner & Cloudteam. See LICENSE for details.
|
80
80
|
EOF
|
81
81
|
|
82
82
|
extensions = FileList["#{File.dirname(__FILE__)}/lib/extensions/*.rb"]
|
data/VERSION.yml
CHANGED
@@ -0,0 +1,78 @@
|
|
1
|
+
=begin rdoc
|
2
|
+
|
3
|
+
== Convenience Helpers
|
4
|
+
|
5
|
+
Adds a few handy packages and aliases for developing poolparty instances.
|
6
|
+
|
7
|
+
== Usage
|
8
|
+
|
9
|
+
has_convenience_helpers
|
10
|
+
|
11
|
+
== Examples
|
12
|
+
|
13
|
+
$ inspect-poolparty-recipes # => will vim the poolparty chef recipe file
|
14
|
+
$ cd-cookbooks # => cd into the poolparty cookbooks directory
|
15
|
+
$ tree # => show the directory structure as a nice tree
|
16
|
+
/var/poolparty/dr_configure/chef/cookbooks/poolparty# tree
|
17
|
+
.
|
18
|
+
|-- attributes
|
19
|
+
| `-- poolparty.rb
|
20
|
+
|-- recipes
|
21
|
+
| `-- default.rb
|
22
|
+
`-- templates
|
23
|
+
`-- default
|
24
|
+
|-- etc
|
25
|
+
| |-- jvm.erb
|
26
|
+
| `-- motd.erb
|
27
|
+
|-- home
|
28
|
+
| `-- hadoop
|
29
|
+
| `-- ssh
|
30
|
+
| `-- hadoop_id_rsa.erb
|
31
|
+
`-- usr
|
32
|
+
`-- local
|
33
|
+
`-- hadoop
|
34
|
+
`-- conf
|
35
|
+
|-- hadoop-env.sh.erb
|
36
|
+
`-- hadoop-site.xml.erb
|
37
|
+
|
38
|
+
=end
|
39
|
+
|
40
|
+
module PoolParty
|
41
|
+
module Plugin
|
42
|
+
class ConvenienceHelpers < Plugin
|
43
|
+
def before_load(o={}, &block)
|
44
|
+
add_packages
|
45
|
+
add_aliases
|
46
|
+
add_binaries
|
47
|
+
add_profile_updates
|
48
|
+
end
|
49
|
+
|
50
|
+
def add_packages
|
51
|
+
has_package "tree"
|
52
|
+
has_package "vim-nox"
|
53
|
+
has_package" screen"
|
54
|
+
has_package" irb"
|
55
|
+
end
|
56
|
+
|
57
|
+
def add_aliases
|
58
|
+
has_bash_alias :name => "inspect-poolparty-recipes", :value => "vi /var/poolparty/dr_configure/chef/cookbooks/poolparty/recipes/default.rb"
|
59
|
+
has_bash_alias :name => "cd-cookbooks", :value => "pushd /var/poolparty/dr_configure/chef/cookbooks/poolparty"
|
60
|
+
end
|
61
|
+
|
62
|
+
def add_binaries
|
63
|
+
has_exec "wget http://gist.github.com/raw/131294/0622454b2cc2f787c04d20ab3d47e888e31edcd4/gistfile1 -O /usr/bin/xtail && chmod +x /usr/bin/xtail",
|
64
|
+
:not_if => "test -e /usr/bin/xtail"
|
65
|
+
has_exec "curl timkay.com/aws/aws -o /usr/bin/aws", :not_if => "test -e /usr/bin/aws"
|
66
|
+
end
|
67
|
+
|
68
|
+
def add_profile_updates
|
69
|
+
has_exec %Q{echo \\"export PS1='\\\\u@\\\\h \\\\A \\\\w (#{cloud_name}) $ '\\" >> /root/.profile}, :not_if => "grep PS1 /root/.profile | grep #{cloud_name}"
|
70
|
+
# bind '"\e[A":history-search-backward'
|
71
|
+
# bind '"\e[B":history-search-forward'
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
|
@@ -1,5 +1,4 @@
|
|
1
|
-
|
2
|
-
=begin rdoc
|
1
|
+
=begin rdoc
|
3
2
|
== Development Gem
|
4
3
|
|
5
4
|
Deploy a and install a gem developed locally. This is useful when you are
|
@@ -13,6 +12,8 @@ developing an internal or forked gem and you want to deploy it to your cloud
|
|
13
12
|
:git_pull_first => true) # git pull from before sending to server
|
14
13
|
|
15
14
|
=end
|
15
|
+
|
16
|
+
module PoolParty
|
16
17
|
module Plugin
|
17
18
|
class DevelopmentGem < Plugin
|
18
19
|
|
@@ -0,0 +1,173 @@
|
|
1
|
+
=begin rdoc
|
2
|
+
|
3
|
+
== Overview
|
4
|
+
Install Ganglia cloud monitoring system
|
5
|
+
|
6
|
+
== Requirements
|
7
|
+
You'll need apache and php enabled in your clouds.rb. For example:
|
8
|
+
|
9
|
+
apache do
|
10
|
+
enable_php5 do
|
11
|
+
extras :gd
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
Because the configs need to know about every node in the cloud *after* it has
|
16
|
+
launched, you must setup an after_all_loaded block in your clouds.rb that calls
|
17
|
+
ganglia.perform_after_all_loaded_for_master. For example:
|
18
|
+
|
19
|
+
after_all_loaded do
|
20
|
+
clouds[:hadoop_master].run_in_context do
|
21
|
+
ganglia.perform_after_all_loaded_for_master
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
Currently the tasks only need to be run for master, so simply call this on your
|
26
|
+
"master" cloud. Note: replace hadoop_master with the name of your cloud above.
|
27
|
+
|
28
|
+
== EC2 Firewall
|
29
|
+
|
30
|
+
ec2-authorize -P udp -p 8649 nmurray-hadoop
|
31
|
+
ec2-authorize -P tcp -p 8649 nmurray-hadoop
|
32
|
+
|
33
|
+
== References
|
34
|
+
* http://www.ibm.com/developerworks/wikis/display/WikiPtype/ganglia?decorator=printable
|
35
|
+
* http://docs.google.com/Doc?id=dgmmft5s_45hr7hmggr
|
36
|
+
* http://www.hps.com/~tpg/notebook/ganglia.php
|
37
|
+
* http://www.cultofgary.com/2008/10/16/ec2-and-ganglia/
|
38
|
+
=end
|
39
|
+
|
40
|
+
module PoolParty
|
41
|
+
module Plugin
|
42
|
+
class Ganglia < Plugin
|
43
|
+
def before_load(o={}, &block)
|
44
|
+
do_once do
|
45
|
+
install_dependencies
|
46
|
+
download
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def install_dependencies
|
51
|
+
has_package :name => "rrdtool"
|
52
|
+
has_package :name => "build-essential"
|
53
|
+
has_package :name => "librrd-dev"
|
54
|
+
has_package :name => "libapr1-dev"
|
55
|
+
has_package :name => "libconfuse-dev"
|
56
|
+
has_package :name => "libexpat1-dev"
|
57
|
+
has_package :name => "python-dev"
|
58
|
+
|
59
|
+
has_group "ganglia", :action => :create
|
60
|
+
has_user "ganglia", :gid => "ganglia"
|
61
|
+
|
62
|
+
# libart-2.0-2 ?
|
63
|
+
end
|
64
|
+
|
65
|
+
def download
|
66
|
+
has_exec "wget http://superb-west.dl.sourceforge.net/sourceforge/ganglia/ganglia-3.1.2.tar.gz -O /usr/local/src/ganglia-3.1.2.tar.gz",
|
67
|
+
:not_if => "test -e /usr/local/src/ganglia-3.1.2.tar.gz"
|
68
|
+
has_exec "cd /usr/local/src && tar -xvvf /usr/local/src/ganglia-3.1.2.tar.gz",
|
69
|
+
:not_if => "test -e /usr/local/src/ganglia-3.1.2"
|
70
|
+
end
|
71
|
+
|
72
|
+
def master
|
73
|
+
has_exec "cd /usr/local/src/ganglia-3.1.2 && ./configure --with-gmetad && make && make install",
|
74
|
+
:not_if => "test -e /usr/lib/ganglia"
|
75
|
+
has_exec "mv /usr/local/src/ganglia-3.1.2/web /var/www/ganglia",
|
76
|
+
:not_if => "test -e /var/www/ganglia"
|
77
|
+
has_file :name => "/var/www/ganglia/conf.php", :mode => "0644", :template => "ganglia-web-conf.php.erb"
|
78
|
+
has_variable "ganglia_gmond_is_master", :value => true
|
79
|
+
gmond
|
80
|
+
gmetad
|
81
|
+
end
|
82
|
+
|
83
|
+
def slave
|
84
|
+
has_exec "cd /usr/local/src/ganglia-3.1.2 && ./configure && make && make install",
|
85
|
+
:not_if => "test -e /usr/lib/ganglia"
|
86
|
+
has_variable "ganglia_gmond_is_master", :value => false
|
87
|
+
gmond
|
88
|
+
end
|
89
|
+
|
90
|
+
def gmond
|
91
|
+
has_directory "/etc/ganglia"
|
92
|
+
has_exec({:name => "restart-gmond", :command => "/etc/init.d/gmond restart", :action => :nothing})
|
93
|
+
|
94
|
+
has_file(:name => "/etc/init.d/gmond") do
|
95
|
+
mode 0755
|
96
|
+
template :bin/"gmond.erb"
|
97
|
+
calls get_exec("restart-gmond")
|
98
|
+
end
|
99
|
+
|
100
|
+
end
|
101
|
+
|
102
|
+
def gmetad
|
103
|
+
has_directory "/var/lib/ganglia/rrds"
|
104
|
+
has_exec "chmod 755 /var/lib/ganglia/rrds"
|
105
|
+
has_exec "chown -R ganglia:ganglia /var/lib/ganglia/rrds"
|
106
|
+
has_exec({:name => "restart-gmetad", :command => "/etc/init.d/gmetad restart", :action => :nothing})
|
107
|
+
has_file(:name => "/etc/init.d/gmetad") do
|
108
|
+
mode 0755
|
109
|
+
template :bin/"gmetad.erb"
|
110
|
+
calls get_exec("restart-gmetad")
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
def monitor(*cloud_names)
|
115
|
+
@monitored_clouds = cloud_names
|
116
|
+
end
|
117
|
+
|
118
|
+
def perform_after_all_loaded_for_slave
|
119
|
+
gmond_after_all_loaded
|
120
|
+
end
|
121
|
+
|
122
|
+
def perform_after_all_loaded_for_master
|
123
|
+
raise "No clouds to monitor with ganglia specified. Please use the 'monitor(*cloud_names)' directive within your ganglia block" unless @monitored_clouds
|
124
|
+
gmond_after_all_loaded
|
125
|
+
|
126
|
+
data_sources = ""
|
127
|
+
@monitored_clouds.each do |cloud_name|
|
128
|
+
line = "data_source \\\"#{cloud_name}\\\" "
|
129
|
+
ips = []
|
130
|
+
clouds[cloud_name.intern].nodes(:status => 'running').each_with_index do |n, i|
|
131
|
+
ips << n[:private_dns_name] + ":8649"
|
132
|
+
end
|
133
|
+
data_sources << (line + ips.join(" ") + "\n")
|
134
|
+
end
|
135
|
+
data_sources.gsub!(/\n/, '\n')
|
136
|
+
|
137
|
+
has_variable "ganglia_gmetad_data_sources", :value => data_sources
|
138
|
+
has_file(:name => "/etc/ganglia/gmetad.conf") do
|
139
|
+
mode 0644
|
140
|
+
template "gmetad.conf.erb"
|
141
|
+
# calls get_exec("restart-gmetad")
|
142
|
+
end
|
143
|
+
has_service "gmetad", :enabled => true, :running => true, :supports => [:restart]
|
144
|
+
end
|
145
|
+
|
146
|
+
def gmond_after_all_loaded
|
147
|
+
has_variable "ganglia_cloud_name", :value => cloud_name
|
148
|
+
has_variable "ganglia_this_nodes_private_ip", :value => lambda{ %Q{%x[curl http://169.254.169.254/latest/meta-data/local-ipv4]}}
|
149
|
+
has_variable "ganglia_masters_ip", :value => lambda { %Q{\`ping -c1 master0 | grep PING | awk -F '[()]' '{print $2 }'\`.strip}}
|
150
|
+
|
151
|
+
first_node = clouds[cloud_name].nodes(:status => 'running').first
|
152
|
+
|
153
|
+
if first_node
|
154
|
+
has_variable "ganglia_first_node_in_clusters_ip", :value => lambda { %Q{\`ping -c1 #{first_node[:private_dns_name]} | grep PING | awk -F '[()]' '{print $2 }'\`.strip}}
|
155
|
+
|
156
|
+
has_file(:name => "/etc/ganglia/gmond.conf") do
|
157
|
+
mode 0644
|
158
|
+
template "gmond.conf.erb"
|
159
|
+
# calls get_exec("restart-gmond")
|
160
|
+
end
|
161
|
+
end
|
162
|
+
has_service "gmond", :enabled => true, :running => true, :supports => [:restart]
|
163
|
+
|
164
|
+
end
|
165
|
+
|
166
|
+
# todo, add a verifier
|
167
|
+
# telnet localhost 8649
|
168
|
+
|
169
|
+
end
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
|
@@ -0,0 +1,38 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
|
3
|
+
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
4
|
+
DAEMON=/usr/sbin/gmetad
|
5
|
+
NAME=gmetad
|
6
|
+
DESC="Ganglia Monitor Meta-Daemon"
|
7
|
+
|
8
|
+
test -x $DAEMON || exit 0
|
9
|
+
set -e
|
10
|
+
|
11
|
+
case "$1" in
|
12
|
+
start)
|
13
|
+
echo -n "Starting $DESC: "
|
14
|
+
start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
|
15
|
+
--exec $DAEMON
|
16
|
+
echo "$NAME."
|
17
|
+
;;
|
18
|
+
stop)
|
19
|
+
echo -n "Stopping $DESC: "
|
20
|
+
start-stop-daemon --stop --quiet --oknodo \
|
21
|
+
--exec $DAEMON 2>&1 > /dev/null
|
22
|
+
echo "$NAME."
|
23
|
+
;;
|
24
|
+
reload)
|
25
|
+
;;
|
26
|
+
restart|force-reload)
|
27
|
+
$0 stop
|
28
|
+
$0 start
|
29
|
+
;;
|
30
|
+
*)
|
31
|
+
N=/etc/init.d/$NAME
|
32
|
+
# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
|
33
|
+
echo "Usage: $N {start|stop|restart|force-reload}" >&2
|
34
|
+
exit 1
|
35
|
+
;;
|
36
|
+
esac
|
37
|
+
|
38
|
+
exit 0
|
@@ -0,0 +1,38 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
|
3
|
+
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
4
|
+
DAEMON=/usr/sbin/gmond
|
5
|
+
NAME=gmond
|
6
|
+
DESC="Ganglia Monitor Daemon"
|
7
|
+
|
8
|
+
test -x $DAEMON || exit 0
|
9
|
+
set -e
|
10
|
+
|
11
|
+
case "$1" in
|
12
|
+
start)
|
13
|
+
echo -n "Starting $DESC: "
|
14
|
+
start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
|
15
|
+
--exec $DAEMON
|
16
|
+
echo "$NAME."
|
17
|
+
;;
|
18
|
+
stop)
|
19
|
+
echo -n "Stopping $DESC: "
|
20
|
+
start-stop-daemon --stop --quiet --oknodo \
|
21
|
+
--exec $DAEMON 2>&1 > /dev/null
|
22
|
+
echo "$NAME."
|
23
|
+
;;
|
24
|
+
reload)
|
25
|
+
;;
|
26
|
+
restart|force-reload)
|
27
|
+
$0 stop
|
28
|
+
$0 start
|
29
|
+
;;
|
30
|
+
*)
|
31
|
+
N=/etc/init.d/$NAME
|
32
|
+
# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
|
33
|
+
echo "Usage: $N {start|stop|restart|force-reload}" >&2
|
34
|
+
exit 1
|
35
|
+
;;
|
36
|
+
esac
|
37
|
+
|
38
|
+
exit 0
|
@@ -0,0 +1,191 @@
|
|
1
|
+
<?php
|
2
|
+
# $Id: conf.php.in 1831 2008-09-26 12:18:54Z carenas $
|
3
|
+
#
|
4
|
+
# Gmetad-webfrontend version. Used to check for updates.
|
5
|
+
#
|
6
|
+
include_once "./version.php";
|
7
|
+
|
8
|
+
#
|
9
|
+
# The name of the directory in "./templates" which contains the
|
10
|
+
# templates that you want to use. Templates are like a skin for the
|
11
|
+
# site that can alter its look and feel.
|
12
|
+
#
|
13
|
+
$template_name = "default";
|
14
|
+
|
15
|
+
#
|
16
|
+
# If you installed gmetad in a directory other than the default
|
17
|
+
# make sure you change it here.
|
18
|
+
#
|
19
|
+
|
20
|
+
# Where gmetad stores the rrd archives.
|
21
|
+
$gmetad_root = "/var/lib/ganglia";
|
22
|
+
$rrds = "$gmetad_root/rrds";
|
23
|
+
|
24
|
+
# Leave this alone if rrdtool is installed in $gmetad_root,
|
25
|
+
# otherwise, change it if it is installed elsewhere (like /usr/bin)
|
26
|
+
define("RRDTOOL", "/usr/bin/rrdtool");
|
27
|
+
|
28
|
+
# Location for modular-graph files.
|
29
|
+
$graphdir='./graph.d';
|
30
|
+
|
31
|
+
#
|
32
|
+
# If you want to grab data from a different ganglia source specify it here.
|
33
|
+
# Although, it would be strange to alter the IP since the Round-Robin
|
34
|
+
# databases need to be local to be read.
|
35
|
+
#
|
36
|
+
$ganglia_ip = "127.0.0.1";
|
37
|
+
$ganglia_port = 8652;
|
38
|
+
|
39
|
+
#
|
40
|
+
# The maximum number of dynamic graphs to display. If you set this
|
41
|
+
# to 0 (the default) all graphs will be shown. This option is
|
42
|
+
# helpful if you are viewing the web pages from a browser with a
|
43
|
+
# small pipe.
|
44
|
+
#
|
45
|
+
$max_graphs = 0;
|
46
|
+
|
47
|
+
#
|
48
|
+
# In the Cluster View this sets the default number of columns used to
|
49
|
+
# display the host grid below the summary graphs.
|
50
|
+
#
|
51
|
+
$hostcols = 4;
|
52
|
+
|
53
|
+
#
|
54
|
+
# In the Host View this sets the default number of columns used to
|
55
|
+
# display the metric grid below the summary graphs.
|
56
|
+
#
|
57
|
+
$metriccols = 2;
|
58
|
+
|
59
|
+
#
|
60
|
+
# Turn on and off the Grid Snapshot. Now that we have a
|
61
|
+
# hierarchical snapshot (per-cluster instead of per-node) on
|
62
|
+
# the meta page this makes more sense. Most people will want this
|
63
|
+
# on.
|
64
|
+
#
|
65
|
+
$show_meta_snapshot = "yes";
|
66
|
+
|
67
|
+
#
|
68
|
+
# The default refresh frequency on pages.
|
69
|
+
#
|
70
|
+
$default_refresh = 300;
|
71
|
+
|
72
|
+
#
|
73
|
+
# Colors for the CPU report graph
|
74
|
+
#
|
75
|
+
$cpu_user_color = "3333bb";
|
76
|
+
$cpu_nice_color = "ffea00";
|
77
|
+
$cpu_system_color = "dd0000";
|
78
|
+
$cpu_wio_color = "ff8a60";
|
79
|
+
$cpu_idle_color = "e2e2f2";
|
80
|
+
|
81
|
+
#
|
82
|
+
# Colors for the MEMORY report graph
|
83
|
+
#
|
84
|
+
$mem_used_color = "5555cc";
|
85
|
+
$mem_shared_color = "0000aa";
|
86
|
+
$mem_cached_color = "33cc33";
|
87
|
+
$mem_buffered_color = "99ff33";
|
88
|
+
$mem_free_color = "00ff00";
|
89
|
+
$mem_swapped_color = "9900CC";
|
90
|
+
|
91
|
+
#
|
92
|
+
# Colors for the LOAD report graph
|
93
|
+
#
|
94
|
+
$load_one_color = "CCCCCC";
|
95
|
+
$proc_run_color = "0000FF";
|
96
|
+
$cpu_num_color = "FF0000";
|
97
|
+
$num_nodes_color = "00FF00";
|
98
|
+
|
99
|
+
# Other colors
|
100
|
+
$jobstart_color = "ff3300";
|
101
|
+
|
102
|
+
#
|
103
|
+
# Colors for the load ranks.
|
104
|
+
#
|
105
|
+
$load_colors = array(
|
106
|
+
"100+" => "ff634f",
|
107
|
+
"75-100" =>"ffa15e",
|
108
|
+
"50-75" => "ffde5e",
|
109
|
+
"25-50" => "caff98",
|
110
|
+
"0-25" => "e2ecff",
|
111
|
+
"down" => "515151"
|
112
|
+
);
|
113
|
+
|
114
|
+
#
|
115
|
+
# Load scaling
|
116
|
+
#
|
117
|
+
$load_scale = 1.0;
|
118
|
+
|
119
|
+
#
|
120
|
+
# Default color for single metric graphs
|
121
|
+
#
|
122
|
+
$default_metric_color = "555555";
|
123
|
+
|
124
|
+
#
|
125
|
+
# Default metric
|
126
|
+
#
|
127
|
+
$default_metric = "load_one";
|
128
|
+
|
129
|
+
#
|
130
|
+
# remove the domainname from the FQDN hostnames in graphs
|
131
|
+
# (to help with long hostnames in small charts)
|
132
|
+
#
|
133
|
+
$strip_domainname = false;
|
134
|
+
|
135
|
+
#
|
136
|
+
# Optional summary graphs
|
137
|
+
#
|
138
|
+
#$optional_graphs = array('packet');
|
139
|
+
|
140
|
+
#
|
141
|
+
# Time ranges
|
142
|
+
# Each value is the # of seconds in that range.
|
143
|
+
#
|
144
|
+
$time_ranges = array(
|
145
|
+
'hour'=>3600,
|
146
|
+
'day'=>86400,
|
147
|
+
'week'=>604800,
|
148
|
+
'month'=>2419200,
|
149
|
+
'year'=>31449600
|
150
|
+
);
|
151
|
+
|
152
|
+
# this key must exist in $time_ranges
|
153
|
+
$default_time_range = 'hour';
|
154
|
+
|
155
|
+
#
|
156
|
+
# Graph sizes
|
157
|
+
#
|
158
|
+
$graph_sizes = array(
|
159
|
+
'small'=>array(
|
160
|
+
'height'=>40,
|
161
|
+
'width'=>130,
|
162
|
+
'fudge_0'=>0,
|
163
|
+
'fudge_1'=>0,
|
164
|
+
'fudge_2'=>0
|
165
|
+
),
|
166
|
+
'medium'=>array(
|
167
|
+
'height'=>75,
|
168
|
+
'width'=>300,
|
169
|
+
'fudge_0'=>0,
|
170
|
+
'fudge_1'=>14,
|
171
|
+
'fudge_2'=>28
|
172
|
+
),
|
173
|
+
'large'=>array(
|
174
|
+
'height'=>600,
|
175
|
+
'width'=>800,
|
176
|
+
'fudge_0'=>0,
|
177
|
+
'fudge_1'=>0,
|
178
|
+
'fudge_2'=>0
|
179
|
+
),
|
180
|
+
# this was the default value when no other size was provided.
|
181
|
+
'default'=>array(
|
182
|
+
'height'=>100,
|
183
|
+
'width'=>400,
|
184
|
+
'fudge_0'=>0,
|
185
|
+
'fudge_1'=>0,
|
186
|
+
'fudge_2'=>0
|
187
|
+
)
|
188
|
+
);
|
189
|
+
$default_graph_size = 'default';
|
190
|
+
$graph_sizes_keys = array_keys( $graph_sizes );
|
191
|
+
?>
|
@@ -0,0 +1,115 @@
|
|
1
|
+
# This is an example of a Ganglia Meta Daemon configuration file
|
2
|
+
# http://ganglia.sourceforge.net/
|
3
|
+
#
|
4
|
+
# $Id: gmetad.conf.in 1639 2008-08-09 23:30:32Z carenas $
|
5
|
+
#
|
6
|
+
#-------------------------------------------------------------------------------
|
7
|
+
# Setting the debug_level to 1 will keep daemon in the forground and
|
8
|
+
# show only error messages. Setting this value higher than 1 will make
|
9
|
+
# gmetad output debugging information and stay in the foreground.
|
10
|
+
# default: 0
|
11
|
+
# debug_level 10
|
12
|
+
#
|
13
|
+
#-------------------------------------------------------------------------------
|
14
|
+
# What to monitor. The most important section of this file.
|
15
|
+
#
|
16
|
+
# The data_source tag specifies either a cluster or a grid to
|
17
|
+
# monitor. If we detect the source is a cluster, we will maintain a complete
|
18
|
+
# set of RRD databases for it, which can be used to create historical
|
19
|
+
# graphs of the metrics. If the source is a grid (it comes from another gmetad),
|
20
|
+
# we will only maintain summary RRDs for it.
|
21
|
+
#
|
22
|
+
# Format:
|
23
|
+
# data_source "my cluster" [polling interval] address1:port addreses2:port ...
|
24
|
+
#
|
25
|
+
# The keyword 'data_source' must immediately be followed by a unique
|
26
|
+
# string which identifies the source, then an optional polling interval in
|
27
|
+
# seconds. The source will be polled at this interval on average.
|
28
|
+
# If the polling interval is omitted, 15sec is asssumed.
|
29
|
+
#
|
30
|
+
# A list of machines which service the data source follows, in the
|
31
|
+
# format ip:port, or name:port. If a port is not specified then 8649
|
32
|
+
# (the default gmond port) is assumed.
|
33
|
+
# default: There is no default value
|
34
|
+
#
|
35
|
+
# data_source "my cluster" 10 localhost my.machine.edu:8649 1.2.3.5:8655
|
36
|
+
# data_source "my grid" 50 1.3.4.7:8655 grid.org:8651 grid-backup.org:8651
|
37
|
+
# data_source "another source" 1.3.4.7:8655 1.3.4.8
|
38
|
+
# data_source "my cluster" localhost
|
39
|
+
#
|
40
|
+
<%= @node[:poolparty][:ganglia_gmetad_data_sources] %>
|
41
|
+
|
42
|
+
#
|
43
|
+
# Round-Robin Archives
|
44
|
+
# You can specify custom Round-Robin archives here (defaults are listed below)
|
45
|
+
#
|
46
|
+
# RRAs "RRA:AVERAGE:0.5:1:244" "RRA:AVERAGE:0.5:24:244" "RRA:AVERAGE:0.5:168:244" "RRA:AVERAGE:0.5:672:244" \
|
47
|
+
# "RRA:AVERAGE:0.5:5760:374"
|
48
|
+
#
|
49
|
+
|
50
|
+
#
|
51
|
+
#-------------------------------------------------------------------------------
|
52
|
+
# Scalability mode. If on, we summarize over downstream grids, and respect
|
53
|
+
# authority tags. If off, we take on 2.5.0-era behavior: we do not wrap our output
|
54
|
+
# in <GRID></GRID> tags, we ignore all <GRID> tags we see, and always assume
|
55
|
+
# we are the "authority" on data source feeds. This approach does not scale to
|
56
|
+
# large groups of clusters, but is provided for backwards compatibility.
|
57
|
+
# default: on
|
58
|
+
# scalable off
|
59
|
+
#
|
60
|
+
#-------------------------------------------------------------------------------
|
61
|
+
# The name of this Grid. All the data sources above will be wrapped in a GRID
|
62
|
+
# tag with this name.
|
63
|
+
# default: unspecified
|
64
|
+
# gridname "MyGrid"
|
65
|
+
#
|
66
|
+
#-------------------------------------------------------------------------------
|
67
|
+
# The authority URL for this grid. Used by other gmetads to locate graphs
|
68
|
+
# for our data sources. Generally points to a ganglia/
|
69
|
+
# website on this machine.
|
70
|
+
# default: "http://hostname/ganglia/",
|
71
|
+
# where hostname is the name of this machine, as defined by gethostname().
|
72
|
+
# authority "http://mycluster.org/newprefix/"
|
73
|
+
#
|
74
|
+
#-------------------------------------------------------------------------------
|
75
|
+
# List of machines this gmetad will share XML with. Localhost
|
76
|
+
# is always trusted.
|
77
|
+
# default: There is no default value
|
78
|
+
# trusted_hosts 127.0.0.1 169.229.50.165 my.gmetad.org
|
79
|
+
#
|
80
|
+
#-------------------------------------------------------------------------------
|
81
|
+
# If you want any host which connects to the gmetad XML to receive
|
82
|
+
# data, then set this value to "on"
|
83
|
+
# default: off
|
84
|
+
# all_trusted on
|
85
|
+
#
|
86
|
+
#-------------------------------------------------------------------------------
|
87
|
+
# If you don't want gmetad to setuid then set this to off
|
88
|
+
# default: on
|
89
|
+
# setuid off
|
90
|
+
#
|
91
|
+
#-------------------------------------------------------------------------------
|
92
|
+
# User gmetad will setuid to (defaults to "nobody")
|
93
|
+
# default: "nobody"
|
94
|
+
setuid_username "ganglia"
|
95
|
+
#
|
96
|
+
#-------------------------------------------------------------------------------
|
97
|
+
# The port gmetad will answer requests for XML
|
98
|
+
# default: 8651
|
99
|
+
# xml_port 8651
|
100
|
+
#
|
101
|
+
#-------------------------------------------------------------------------------
|
102
|
+
# The port gmetad will answer queries for XML. This facility allows
|
103
|
+
# simple subtree and summation views of the XML tree.
|
104
|
+
# default: 8652
|
105
|
+
interactive_port 8652
|
106
|
+
#
|
107
|
+
#-------------------------------------------------------------------------------
|
108
|
+
# The number of threads answering XML requests
|
109
|
+
# default: 4
|
110
|
+
# server_threads 10
|
111
|
+
#
|
112
|
+
#-------------------------------------------------------------------------------
|
113
|
+
# Where gmetad stores its round-robin databases
|
114
|
+
# default: "/var/lib/ganglia/rrds"
|
115
|
+
# rrd_rootdir "/some/other/place"
|
@@ -0,0 +1,362 @@
|
|
1
|
+
/* This configuration is as close to 2.5.x default behavior as possible
|
2
|
+
The values closely match ./gmond/metric.h definitions in 2.5.x */
|
3
|
+
globals {
|
4
|
+
daemonize = yes
|
5
|
+
setuid = yes
|
6
|
+
user = ganglia
|
7
|
+
debug_level = 0
|
8
|
+
max_udp_msg_len = 1472
|
9
|
+
mute = no
|
10
|
+
deaf = no
|
11
|
+
allow_extra_data = yes
|
12
|
+
host_dmax = 0 /*secs */
|
13
|
+
cleanup_threshold = 300 /*secs */
|
14
|
+
gexec = no
|
15
|
+
send_metadata_interval = 10
|
16
|
+
}
|
17
|
+
|
18
|
+
/*
|
19
|
+
* The cluster attributes specified will be used as part of the <CLUSTER>
|
20
|
+
* tag that will wrap all hosts collected by this instance.
|
21
|
+
*/
|
22
|
+
cluster {
|
23
|
+
name = "<%= @node[:poolparty][:ganglia_cloud_name] %>"
|
24
|
+
owner = "unspecified"
|
25
|
+
latlong = "unspecified"
|
26
|
+
url = "unspecified"
|
27
|
+
}
|
28
|
+
|
29
|
+
/* The host section describes attributes of the host, like the location */
|
30
|
+
host {
|
31
|
+
location = "unspecified"
|
32
|
+
}
|
33
|
+
|
34
|
+
/* Feel free to specify as many udp_send_channels as you like. Gmond
|
35
|
+
used to only support having a single channel */
|
36
|
+
udp_send_channel {
|
37
|
+
/* mcast_join = <%= @node[:poolparty][:ganglia_masters_ip] %> */
|
38
|
+
/* host = <%= @node[:poolparty][:ganglia_masters_ip] %> */
|
39
|
+
host = <%= @node[:poolparty][:ganglia_first_node_in_clusters_ip] %>
|
40
|
+
port = 8649
|
41
|
+
ttl = 1
|
42
|
+
}
|
43
|
+
|
44
|
+
/* You can specify as many udp_recv_channels as you like as well. */
|
45
|
+
udp_recv_channel {
|
46
|
+
/* mcast_join = <%= @node[:poolparty][:ganglia_this_nodes_private_ip] %> */
|
47
|
+
port = 8649
|
48
|
+
bind = <%= @node[:poolparty][:ganglia_this_nodes_private_ip] %>
|
49
|
+
/* bind = 0.0.0.0 */
|
50
|
+
family = inet4
|
51
|
+
|
52
|
+
acl {
|
53
|
+
default = "allow"
|
54
|
+
}
|
55
|
+
}
|
56
|
+
|
57
|
+
<%# if @node[:poolparty][:ganglia_gmond_is_master] %>
|
58
|
+
<%# end %>
|
59
|
+
|
60
|
+
/* You can specify as many tcp_accept_channels as you like to share
|
61
|
+
an xml description of the state of the cluster */
|
62
|
+
tcp_accept_channel {
|
63
|
+
port = 8649
|
64
|
+
bind = <%= @node[:poolparty][:ganglia_this_nodes_private_ip] %>
|
65
|
+
|
66
|
+
acl {
|
67
|
+
default = "allow"
|
68
|
+
}
|
69
|
+
|
70
|
+
}
|
71
|
+
|
72
|
+
|
73
|
+
/* Each metrics module that is referenced by gmond must be specified and
|
74
|
+
loaded. If the module has been statically linked with gmond, it does
|
75
|
+
not require a load path. However all dynamically loadable modules must
|
76
|
+
include a load path. */
|
77
|
+
modules {
|
78
|
+
module {
|
79
|
+
name = "core_metrics"
|
80
|
+
}
|
81
|
+
module {
|
82
|
+
name = "cpu_module"
|
83
|
+
path = "modcpu.so"
|
84
|
+
}
|
85
|
+
module {
|
86
|
+
name = "disk_module"
|
87
|
+
path = "moddisk.so"
|
88
|
+
}
|
89
|
+
module {
|
90
|
+
name = "load_module"
|
91
|
+
path = "modload.so"
|
92
|
+
}
|
93
|
+
module {
|
94
|
+
name = "mem_module"
|
95
|
+
path = "modmem.so"
|
96
|
+
}
|
97
|
+
module {
|
98
|
+
name = "net_module"
|
99
|
+
path = "modnet.so"
|
100
|
+
}
|
101
|
+
module {
|
102
|
+
name = "proc_module"
|
103
|
+
path = "modproc.so"
|
104
|
+
}
|
105
|
+
module {
|
106
|
+
name = "sys_module"
|
107
|
+
path = "modsys.so"
|
108
|
+
}
|
109
|
+
}
|
110
|
+
|
111
|
+
include ('/etc/ganglia/conf.d/*.conf')
|
112
|
+
|
113
|
+
/* The old internal 2.5.x metric array has been replaced by the following
|
114
|
+
collection_group directives. What follows is the default behavior for
|
115
|
+
collecting and sending metrics that is as close to 2.5.x behavior as
|
116
|
+
possible. */
|
117
|
+
|
118
|
+
/* This collection group will cause a heartbeat (or beacon) to be sent every
|
119
|
+
20 seconds. In the heartbeat is the GMOND_STARTED data which expresses
|
120
|
+
the age of the running gmond. */
|
121
|
+
collection_group {
|
122
|
+
collect_once = yes
|
123
|
+
time_threshold = 20
|
124
|
+
metric {
|
125
|
+
name = "heartbeat"
|
126
|
+
}
|
127
|
+
}
|
128
|
+
|
129
|
+
/* This collection group will send general info about this host every
|
130
|
+
1200 secs.
|
131
|
+
This information doesn't change between reboots and is only collected
|
132
|
+
once. */
|
133
|
+
collection_group {
|
134
|
+
collect_once = yes
|
135
|
+
time_threshold = 1200
|
136
|
+
metric {
|
137
|
+
name = "cpu_num"
|
138
|
+
title = "CPU Count"
|
139
|
+
}
|
140
|
+
metric {
|
141
|
+
name = "cpu_speed"
|
142
|
+
title = "CPU Speed"
|
143
|
+
}
|
144
|
+
metric {
|
145
|
+
name = "mem_total"
|
146
|
+
title = "Memory Total"
|
147
|
+
}
|
148
|
+
/* Should this be here? Swap can be added/removed between reboots. */
|
149
|
+
metric {
|
150
|
+
name = "swap_total"
|
151
|
+
title = "Swap Space Total"
|
152
|
+
}
|
153
|
+
metric {
|
154
|
+
name = "boottime"
|
155
|
+
title = "Last Boot Time"
|
156
|
+
}
|
157
|
+
metric {
|
158
|
+
name = "machine_type"
|
159
|
+
title = "Machine Type"
|
160
|
+
}
|
161
|
+
metric {
|
162
|
+
name = "os_name"
|
163
|
+
title = "Operating System"
|
164
|
+
}
|
165
|
+
metric {
|
166
|
+
name = "os_release"
|
167
|
+
title = "Operating System Release"
|
168
|
+
}
|
169
|
+
metric {
|
170
|
+
name = "location"
|
171
|
+
title = "Location"
|
172
|
+
}
|
173
|
+
}
|
174
|
+
|
175
|
+
/* This collection group will send the status of gexecd for this host
|
176
|
+
every 300 secs.*/
|
177
|
+
/* Unlike 2.5.x the default behavior is to report gexecd OFF. */
|
178
|
+
collection_group {
|
179
|
+
collect_once = yes
|
180
|
+
time_threshold = 300
|
181
|
+
metric {
|
182
|
+
name = "gexec"
|
183
|
+
title = "Gexec Status"
|
184
|
+
}
|
185
|
+
}
|
186
|
+
|
187
|
+
/* This collection group will collect the CPU status info every 20 secs.
|
188
|
+
The time threshold is set to 90 seconds. In honesty, this
|
189
|
+
time_threshold could be set significantly higher to reduce
|
190
|
+
unneccessary network chatter. */
|
191
|
+
collection_group {
|
192
|
+
collect_every = 20
|
193
|
+
time_threshold = 90
|
194
|
+
/* CPU status */
|
195
|
+
metric {
|
196
|
+
name = "cpu_user"
|
197
|
+
value_threshold = "1.0"
|
198
|
+
title = "CPU User"
|
199
|
+
}
|
200
|
+
metric {
|
201
|
+
name = "cpu_system"
|
202
|
+
value_threshold = "1.0"
|
203
|
+
title = "CPU System"
|
204
|
+
}
|
205
|
+
metric {
|
206
|
+
name = "cpu_idle"
|
207
|
+
value_threshold = "5.0"
|
208
|
+
title = "CPU Idle"
|
209
|
+
}
|
210
|
+
metric {
|
211
|
+
name = "cpu_nice"
|
212
|
+
value_threshold = "1.0"
|
213
|
+
title = "CPU Nice"
|
214
|
+
}
|
215
|
+
metric {
|
216
|
+
name = "cpu_aidle"
|
217
|
+
value_threshold = "5.0"
|
218
|
+
title = "CPU aidle"
|
219
|
+
}
|
220
|
+
metric {
|
221
|
+
name = "cpu_wio"
|
222
|
+
value_threshold = "1.0"
|
223
|
+
title = "CPU wio"
|
224
|
+
}
|
225
|
+
/* The next two metrics are optional if you want more detail...
|
226
|
+
... since they are accounted for in cpu_system.
|
227
|
+
metric {
|
228
|
+
name = "cpu_intr"
|
229
|
+
value_threshold = "1.0"
|
230
|
+
title = "CPU intr"
|
231
|
+
}
|
232
|
+
metric {
|
233
|
+
name = "cpu_sintr"
|
234
|
+
value_threshold = "1.0"
|
235
|
+
title = "CPU sintr"
|
236
|
+
}
|
237
|
+
*/
|
238
|
+
}
|
239
|
+
|
240
|
+
collection_group {
|
241
|
+
collect_every = 20
|
242
|
+
time_threshold = 90
|
243
|
+
/* Load Averages */
|
244
|
+
metric {
|
245
|
+
name = "load_one"
|
246
|
+
value_threshold = "1.0"
|
247
|
+
title = "One Minute Load Average"
|
248
|
+
}
|
249
|
+
metric {
|
250
|
+
name = "load_five"
|
251
|
+
value_threshold = "1.0"
|
252
|
+
title = "Five Minute Load Average"
|
253
|
+
}
|
254
|
+
metric {
|
255
|
+
name = "load_fifteen"
|
256
|
+
value_threshold = "1.0"
|
257
|
+
title = "Fifteen Minute Load Average"
|
258
|
+
}
|
259
|
+
}
|
260
|
+
|
261
|
+
/* This group collects the number of running and total processes */
|
262
|
+
collection_group {
|
263
|
+
collect_every = 80
|
264
|
+
time_threshold = 950
|
265
|
+
metric {
|
266
|
+
name = "proc_run"
|
267
|
+
value_threshold = "1.0"
|
268
|
+
title = "Total Running Processes"
|
269
|
+
}
|
270
|
+
metric {
|
271
|
+
name = "proc_total"
|
272
|
+
value_threshold = "1.0"
|
273
|
+
title = "Total Processes"
|
274
|
+
}
|
275
|
+
}
|
276
|
+
|
277
|
+
/* This collection group grabs the volatile memory metrics every 40 secs and
|
278
|
+
sends them at least every 180 secs. This time_threshold can be increased
|
279
|
+
significantly to reduce unneeded network traffic. */
|
280
|
+
collection_group {
|
281
|
+
collect_every = 40
|
282
|
+
time_threshold = 180
|
283
|
+
metric {
|
284
|
+
name = "mem_free"
|
285
|
+
value_threshold = "1024.0"
|
286
|
+
title = "Free Memory"
|
287
|
+
}
|
288
|
+
metric {
|
289
|
+
name = "mem_shared"
|
290
|
+
value_threshold = "1024.0"
|
291
|
+
title = "Shared Memory"
|
292
|
+
}
|
293
|
+
metric {
|
294
|
+
name = "mem_buffers"
|
295
|
+
value_threshold = "1024.0"
|
296
|
+
title = "Memory Buffers"
|
297
|
+
}
|
298
|
+
metric {
|
299
|
+
name = "mem_cached"
|
300
|
+
value_threshold = "1024.0"
|
301
|
+
title = "Cached Memory"
|
302
|
+
}
|
303
|
+
metric {
|
304
|
+
name = "swap_free"
|
305
|
+
value_threshold = "1024.0"
|
306
|
+
title = "Free Swap Space"
|
307
|
+
}
|
308
|
+
}
|
309
|
+
|
310
|
+
collection_group {
|
311
|
+
collect_every = 40
|
312
|
+
time_threshold = 300
|
313
|
+
metric {
|
314
|
+
name = "bytes_out"
|
315
|
+
value_threshold = 4096
|
316
|
+
title = "Bytes Sent"
|
317
|
+
}
|
318
|
+
metric {
|
319
|
+
name = "bytes_in"
|
320
|
+
value_threshold = 4096
|
321
|
+
title = "Bytes Received"
|
322
|
+
}
|
323
|
+
metric {
|
324
|
+
name = "pkts_in"
|
325
|
+
value_threshold = 256
|
326
|
+
title = "Packets Received"
|
327
|
+
}
|
328
|
+
metric {
|
329
|
+
name = "pkts_out"
|
330
|
+
value_threshold = 256
|
331
|
+
title = "Packets Sent"
|
332
|
+
}
|
333
|
+
}
|
334
|
+
|
335
|
+
/* Different than 2.5.x default since the old config made no sense */
|
336
|
+
collection_group {
|
337
|
+
collect_every = 1800
|
338
|
+
time_threshold = 3600
|
339
|
+
metric {
|
340
|
+
name = "disk_total"
|
341
|
+
value_threshold = 1.0
|
342
|
+
title = "Total Disk Space"
|
343
|
+
}
|
344
|
+
}
|
345
|
+
|
346
|
+
collection_group {
|
347
|
+
collect_every = 40
|
348
|
+
time_threshold = 180
|
349
|
+
metric {
|
350
|
+
name = "disk_free"
|
351
|
+
value_threshold = 1.0
|
352
|
+
title = "Disk Space Available"
|
353
|
+
}
|
354
|
+
metric {
|
355
|
+
name = "part_max_used"
|
356
|
+
value_threshold = 1.0
|
357
|
+
title = "Maximum Disk Space Used"
|
358
|
+
}
|
359
|
+
}
|
360
|
+
|
361
|
+
|
362
|
+
# vim: ft=javascript
|
data/lib/poolparty-extensions.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
class PoolpartyExtensions
|
2
2
|
end
|
3
3
|
|
4
|
-
|
5
|
-
|
4
|
+
["#{File.dirname(__FILE__)}/extensions/*.rb", "#{File.dirname(__FILE__)}/extensions/*/*.rb"].each do |dir|
|
5
|
+
Dir[dir].each do |lib|
|
6
|
+
PoolParty::Resources::File.add_searchable_path(File.dirname(lib)) if File.exists?(File.dirname(lib) + "/templates")
|
7
|
+
require lib if ::File.stat(lib).file?
|
8
|
+
end
|
6
9
|
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jashmenn-poolparty-extensions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Ari Lerner
|
7
|
+
- Ari Lerner, Nate Murray, & Michael Fairchild
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-06-
|
12
|
+
date: 2009-06-26 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -28,8 +28,15 @@ files:
|
|
28
28
|
- Rakefile
|
29
29
|
- VERSION.yml
|
30
30
|
- lib/extensions/bash_alias.rb
|
31
|
+
- lib/extensions/convenience_helpers.rb
|
31
32
|
- lib/extensions/development_gem_package.rb
|
32
33
|
- lib/extensions/dynomite.rb
|
34
|
+
- lib/extensions/ganglia/ganglia.rb
|
35
|
+
- lib/extensions/ganglia/templates/bin/gmetad.erb
|
36
|
+
- lib/extensions/ganglia/templates/bin/gmond.erb
|
37
|
+
- lib/extensions/ganglia/templates/ganglia-web-conf.php.erb
|
38
|
+
- lib/extensions/ganglia/templates/gmetad.conf.erb
|
39
|
+
- lib/extensions/ganglia/templates/gmond.conf.erb
|
33
40
|
- lib/extensions/lightcloud.rb
|
34
41
|
- lib/extensions/nanite.rb
|
35
42
|
- lib/extensions/tokyo_tyrant.rb
|