ganymed 0.4.4 → 0.5.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/bin/ganymed +14 -2
- data/ganymed.gemspec +2 -2
- data/lib/ganymed/collector.rb +5 -5
- data/lib/ganymed/config.yml +3 -0
- data/lib/ganymed/master.rb +19 -24
- data/lib/ganymed/version.rb +1 -1
- metadata +8 -10
- data/bin/ganymed-console +0 -15
data/bin/ganymed
CHANGED
@@ -5,15 +5,27 @@ $:.unshift(File.join(File.expand_path("../..", __FILE__), 'lib'))
|
|
5
5
|
|
6
6
|
$0 = "ganymed"
|
7
7
|
|
8
|
-
require 'madvertise/ext/logging'
|
9
8
|
require 'madvertise/ext/environment'
|
10
9
|
Env.key = 'GANYMED_ENV'
|
11
10
|
|
11
|
+
require 'madvertise-logging'
|
12
|
+
$log = ImprovedLogger.new(:stdout, $0)
|
13
|
+
|
12
14
|
require 'ganymed/master'
|
13
15
|
cli = Ganymed::Master::CLI.parse_options
|
14
16
|
server = Ganymed::Master.new(cli.config)
|
15
17
|
|
16
|
-
log.level = :debug if cli.config[:debug]
|
18
|
+
$log.level = :debug if cli.config[:debug]
|
19
|
+
|
20
|
+
$config ||= Configuration.new do |config|
|
21
|
+
config.mixin(File.join(Ganymed::LIB_DIR, 'ganymed/config.yml'))
|
22
|
+
config.mixin(cli.config[:config_file]) if cli.config[:config_file]
|
23
|
+
end
|
24
|
+
|
25
|
+
if Env.prod?
|
26
|
+
Madvertise::Logging::ImprovedLogger::Formatter.
|
27
|
+
format = "<%{syslog_severity}>%{msg}\n"
|
28
|
+
end
|
17
29
|
|
18
30
|
if cli.config[:daemonize] or cli.config[:kill]
|
19
31
|
daemon = Servolux::Daemon.new(:server => server)
|
data/ganymed.gemspec
CHANGED
@@ -19,8 +19,8 @@ Gem::Specification.new do |s|
|
|
19
19
|
# master
|
20
20
|
s.add_dependency "activesupport", ">= 3.2"
|
21
21
|
s.add_dependency "eventmachine", ">= 0.12.10"
|
22
|
-
s.add_dependency "madvertise-ext", ">= 0.
|
23
|
-
s.add_dependency "madvertise-logging", ">= 0.
|
22
|
+
s.add_dependency "madvertise-ext", ">= 0.4.0"
|
23
|
+
s.add_dependency "madvertise-logging", ">= 1.0.0"
|
24
24
|
s.add_dependency "mixlib-cli"
|
25
25
|
s.add_dependency "servolux"
|
26
26
|
|
data/lib/ganymed/collector.rb
CHANGED
@@ -55,9 +55,9 @@ module Ganymed
|
|
55
55
|
config = @config.collectors[name.to_sym] || Section.new
|
56
56
|
config.name = name
|
57
57
|
|
58
|
-
log.debug("loading collector #{name} from #{file}")
|
58
|
+
$log.debug("loading collector #{name} from #{file}")
|
59
59
|
Plugin.new(config).from_file(file).tap do |collector|
|
60
|
-
log.info("collecting #{name} metrics every #{collector.interval} seconds")
|
60
|
+
$log.info("collecting #{name} metrics every #{collector.interval} seconds")
|
61
61
|
collector.run
|
62
62
|
end
|
63
63
|
end
|
@@ -70,7 +70,7 @@ module Ganymed
|
|
70
70
|
|
71
71
|
[].tap do |files|
|
72
72
|
load_paths.each do |load_path|
|
73
|
-
log.debug("loading collectors from #{load_path}")
|
73
|
+
$log.debug("loading collectors from #{load_path}")
|
74
74
|
Dir[File.join(load_path, '*.rb')].each do |file|
|
75
75
|
files << file
|
76
76
|
end
|
@@ -130,8 +130,8 @@ module Ganymed
|
|
130
130
|
@splay = 0
|
131
131
|
rescue Exception => exc
|
132
132
|
@splay += 1
|
133
|
-
log.exception(exc)
|
134
|
-
log.info("slowing down collector #{config.name}", interval: @interval, splay: @splay)
|
133
|
+
$log.exception(exc)
|
134
|
+
$log.info("slowing down collector #{config.name}", interval: @interval, splay: @splay)
|
135
135
|
end
|
136
136
|
|
137
137
|
# Loads a given ruby file, and runs instance_eval against it in the
|
data/lib/ganymed/config.yml
CHANGED
data/lib/ganymed/master.rb
CHANGED
@@ -13,74 +13,69 @@ require 'metriks/reporter/logger'
|
|
13
13
|
module Ganymed
|
14
14
|
# @private
|
15
15
|
class Master < ::Servolux::Server
|
16
|
-
include Configuration::Helpers
|
17
16
|
|
18
17
|
def initialize(cli)
|
19
|
-
# load config file
|
20
|
-
@default_config_file = File.join(LIB_DIR, 'ganymed/config.yml')
|
21
|
-
@config_file = cli[:config_file]
|
22
|
-
|
23
18
|
# initialize servolux
|
24
19
|
super('ganymed',
|
25
20
|
:interval => 1,
|
26
|
-
:logger => log,
|
21
|
+
:logger => $log,
|
27
22
|
:pid_file => cli[:pidfile])
|
28
23
|
end
|
29
24
|
|
30
25
|
def run
|
31
|
-
log.info("starting Ganymed reactor in #{Env.mode} mode")
|
26
|
+
$log.info("starting Ganymed reactor in #{Env.mode} mode")
|
32
27
|
|
33
28
|
# configure eventmachine
|
34
|
-
log.debug("EventMachine threadpool_size=#{config.eventmachine.threadpool_size}")
|
35
|
-
EventMachine.threadpool_size = config.eventmachine.threadpool_size
|
29
|
+
$log.debug("EventMachine threadpool_size=#{$config.eventmachine.threadpool_size}")
|
30
|
+
EventMachine.threadpool_size = $config.eventmachine.threadpool_size
|
36
31
|
|
37
32
|
EventMachine.epoll # use epoll
|
38
33
|
EventMachine.run do
|
39
|
-
Collector.new(config) if config.collectors.any?
|
34
|
+
Collector.new($config) if $config.collectors.any?
|
40
35
|
Metriks::Reporter::Logger.new({
|
41
|
-
:logger => log,
|
42
|
-
:interval => config.interval,
|
43
|
-
:on_error => ->(e) { log.exception(e) },
|
36
|
+
:logger => $log,
|
37
|
+
:interval => $config.interval,
|
38
|
+
:on_error => ->(e) { $log.exception(e) },
|
44
39
|
}).start
|
45
40
|
end
|
46
41
|
|
47
42
|
rescue Exception => exc
|
48
|
-
log.exception(exc)
|
43
|
+
$log.exception(exc)
|
49
44
|
end
|
50
45
|
|
51
46
|
def before_starting
|
52
|
-
if config.profiling.perftools
|
53
|
-
log.info("activating PerfTools CPU profiler")
|
47
|
+
if $config.profiling.perftools
|
48
|
+
$log.info("activating PerfTools CPU profiler")
|
54
49
|
require 'perftools'
|
55
50
|
PerfTools::CpuProfiler.start('profile')
|
56
51
|
end
|
57
52
|
|
58
|
-
if config.profiling.gcprofiler
|
59
|
-
log.info("activating GC::Profiler")
|
53
|
+
if $config.profiling.gcprofiler
|
54
|
+
$log.info("activating GC::Profiler")
|
60
55
|
GC::Profiler.enable
|
61
56
|
end
|
62
57
|
|
63
|
-
if config.profiling.rubyprof
|
58
|
+
if $config.profiling.rubyprof
|
64
59
|
require 'ruby-prof'
|
65
|
-
log.info("activating RubyProf")
|
60
|
+
$log.info("activating RubyProf")
|
66
61
|
RubyProf.start
|
67
62
|
end
|
68
63
|
end
|
69
64
|
|
70
65
|
def before_stopping
|
71
66
|
if EventMachine.reactor_running?
|
72
|
-
log.info("shutting down Ganymed reactor")
|
67
|
+
$log.info("shutting down Ganymed reactor")
|
73
68
|
EventMachine.stop_event_loop
|
74
69
|
end
|
75
70
|
end
|
76
71
|
|
77
72
|
def after_stopping
|
78
|
-
if config.profiling.perftools
|
73
|
+
if $config.profiling.perftools
|
79
74
|
PerfTools::CpuProfiler.stop
|
80
75
|
`pprof.rb --svg profile > profile.svg`
|
81
76
|
end
|
82
77
|
|
83
|
-
if config.profiling.rubyprof
|
78
|
+
if $config.profiling.rubyprof
|
84
79
|
result = RubyProf.stop
|
85
80
|
result.eliminate_methods!([
|
86
81
|
/Queue#pop/,
|
@@ -92,7 +87,7 @@ module Ganymed
|
|
92
87
|
printer.print(:path => "prof", :profile => "ganymed")
|
93
88
|
end
|
94
89
|
|
95
|
-
log.info("done shutting down. exiting ...")
|
90
|
+
$log.info("done shutting down. exiting ...")
|
96
91
|
end
|
97
92
|
|
98
93
|
class CLI
|
data/lib/ganymed/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ganymed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-04-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -50,7 +50,7 @@ dependencies:
|
|
50
50
|
requirements:
|
51
51
|
- - ! '>='
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: 0.
|
53
|
+
version: 0.4.0
|
54
54
|
type: :runtime
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -58,7 +58,7 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ! '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.
|
61
|
+
version: 0.4.0
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
63
|
name: madvertise-logging
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,7 +66,7 @@ dependencies:
|
|
66
66
|
requirements:
|
67
67
|
- - ! '>='
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: 0.
|
69
|
+
version: 1.0.0
|
70
70
|
type: :runtime
|
71
71
|
prerelease: false
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -74,7 +74,7 @@ dependencies:
|
|
74
74
|
requirements:
|
75
75
|
- - ! '>='
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: 0.
|
77
|
+
version: 1.0.0
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
79
|
name: mixlib-cli
|
80
80
|
requirement: !ruby/object:Gem::Requirement
|
@@ -176,7 +176,6 @@ email:
|
|
176
176
|
- bb@xnull.de
|
177
177
|
executables:
|
178
178
|
- ganymed
|
179
|
-
- ganymed-console
|
180
179
|
extensions: []
|
181
180
|
extra_rdoc_files: []
|
182
181
|
files:
|
@@ -189,7 +188,6 @@ files:
|
|
189
188
|
- README.md
|
190
189
|
- Rakefile
|
191
190
|
- bin/ganymed
|
192
|
-
- bin/ganymed-console
|
193
191
|
- ganymed.gemspec
|
194
192
|
- lib/ganymed.rb
|
195
193
|
- lib/ganymed/collector.rb
|
@@ -222,7 +220,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
222
220
|
version: '0'
|
223
221
|
segments:
|
224
222
|
- 0
|
225
|
-
hash:
|
223
|
+
hash: 2008446248983856620
|
226
224
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
227
225
|
none: false
|
228
226
|
requirements:
|
@@ -231,7 +229,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
231
229
|
version: '0'
|
232
230
|
segments:
|
233
231
|
- 0
|
234
|
-
hash:
|
232
|
+
hash: 2008446248983856620
|
235
233
|
requirements: []
|
236
234
|
rubyforge_project:
|
237
235
|
rubygems_version: 1.8.25
|
data/bin/ganymed-console
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'rubygems'
|
4
|
-
$:.unshift(File.join(File.expand_path("../..", __FILE__), 'lib'))
|
5
|
-
|
6
|
-
$0 = "ganymed-console"
|
7
|
-
|
8
|
-
require 'madvertise/ext/logging'
|
9
|
-
require 'madvertise/ext/environment'
|
10
|
-
Env.key = 'GANYMED_ENV'
|
11
|
-
|
12
|
-
log.level = :debug
|
13
|
-
|
14
|
-
require 'ganymed/console'
|
15
|
-
Ganymed::Console.new
|