haproxy2rpm 0.0.5 → 0.0.6
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.md +9 -0
- data/bin/haproxy2rpm +24 -4
- data/lib/haproxy2rpm/rpm.rb +4 -2
- data/lib/haproxy2rpm/syslog.rb +3 -1
- data/lib/haproxy2rpm/version.rb +1 -1
- data/lib/haproxy2rpm.rb +10 -5
- metadata +4 -4
data/README.md
CHANGED
@@ -30,3 +30,12 @@ Tell haproxy to log to syslog. e.g:
|
|
30
30
|
* Apdex
|
31
31
|
* Histogram
|
32
32
|
* Web transactions
|
33
|
+
|
34
|
+
## Known issues
|
35
|
+
|
36
|
+
* Seems to stall after some time running
|
37
|
+
* Do not run with --daemonize when used inside monit.rc
|
38
|
+
|
39
|
+
## Roadmap
|
40
|
+
|
41
|
+
* Improved logging and debugging (-l, --log)
|
data/bin/haproxy2rpm
CHANGED
@@ -4,17 +4,20 @@ $:.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
|
|
4
4
|
|
5
5
|
require 'rubygems'
|
6
6
|
require 'optparse'
|
7
|
+
require 'logger'
|
7
8
|
|
8
9
|
options = {
|
9
10
|
:daemonize => false,
|
10
11
|
:version => false,
|
11
12
|
:syslog => false,
|
12
13
|
:port => 3333,
|
13
|
-
:
|
14
|
+
:address => '0.0.0.0',
|
15
|
+
:log_to => STDOUT,
|
16
|
+
:log_level => Logger::INFO
|
14
17
|
}
|
15
18
|
|
16
19
|
opts = OptionParser.new do |opts|
|
17
|
-
opts.on("-
|
20
|
+
opts.on("-d", "--daemonize", "Daemonize") do
|
18
21
|
options[:daemonize] = true
|
19
22
|
end
|
20
23
|
|
@@ -22,8 +25,8 @@ opts = OptionParser.new do |opts|
|
|
22
25
|
options[:syslog] = true
|
23
26
|
end
|
24
27
|
|
25
|
-
opts.on("-
|
26
|
-
options[:
|
28
|
+
opts.on("-aHOST", "--address HOST", "Set host address to listen on") do |host|
|
29
|
+
options[:address] = host
|
27
30
|
end
|
28
31
|
|
29
32
|
opts.on("-pPORT", "--port PORT", "Set port to listen on") do |port|
|
@@ -38,6 +41,19 @@ opts = OptionParser.new do |opts|
|
|
38
41
|
options[:env] = env
|
39
42
|
end
|
40
43
|
|
44
|
+
opts.on("-PFILE", "--pid FILE", "specify Pid file") do |file|
|
45
|
+
options[:pid] = file
|
46
|
+
end
|
47
|
+
|
48
|
+
opts.on("-lFILE", "--log FILE", "File to redirect output") do |file|
|
49
|
+
options[:log_to] = File.open(file, 'a')
|
50
|
+
options[:log_to].sync = true
|
51
|
+
end
|
52
|
+
|
53
|
+
opts.on("-D", "--debug", "verbose logging") do
|
54
|
+
options[:log_level] = Logger::DEBUG
|
55
|
+
end
|
56
|
+
|
41
57
|
opts.on_tail("-h", "--help", "Show this message") do
|
42
58
|
puts opts
|
43
59
|
exit
|
@@ -52,6 +68,10 @@ opts.parse!
|
|
52
68
|
|
53
69
|
require 'haproxy2rpm'
|
54
70
|
|
71
|
+
|
72
|
+
Haproxy2Rpm.logger = Logger.new(options[:log_to])
|
73
|
+
Haproxy2Rpm.logger.level = options[:log_level]
|
74
|
+
|
55
75
|
log_file = ARGV[0] || ''
|
56
76
|
|
57
77
|
if(options[:version])
|
data/lib/haproxy2rpm/rpm.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Haproxy2Rpm
|
2
2
|
class Rpm
|
3
3
|
def initialize(options = {})
|
4
|
-
agent_options = {}
|
4
|
+
agent_options = {:log => Haproxy2Rpm.logger}
|
5
5
|
agent_options[:app_name] = options[:app_name] if options[:app_name]
|
6
6
|
agent_options[:env] = options[:env] if options[:env]
|
7
7
|
NewRelic::Agent.manual_start agent_options
|
@@ -21,7 +21,9 @@ module Haproxy2Rpm
|
|
21
21
|
end
|
22
22
|
|
23
23
|
NewRelic::Agent.record_transaction(request.tr / 1000.0, params)
|
24
|
-
|
24
|
+
Haproxy2Rpm.logger.debug "RECORDING (transaction): #{params.inspect}"
|
25
|
+
result = @qt_stat.record_data_point(request.tw / 1000.0)
|
26
|
+
Haproxy2Rpm.logger.debug "RECORDING (data point): wait time #{request.tw}, #{result.inspect}"
|
25
27
|
end
|
26
28
|
end
|
27
29
|
end
|
data/lib/haproxy2rpm/syslog.rb
CHANGED
@@ -8,7 +8,9 @@ module Haproxy2Rpm
|
|
8
8
|
|
9
9
|
def receive_data(data)
|
10
10
|
message_start_index = data.index('haproxy')
|
11
|
-
|
11
|
+
message = data[message_start_index..-1]
|
12
|
+
Haproxy2Rpm.logger.debug "RECEIVED (syslog): #{message}"
|
13
|
+
@rpm.process_and_send(message)
|
12
14
|
end
|
13
15
|
end
|
14
16
|
end
|
data/lib/haproxy2rpm/version.rb
CHANGED
data/lib/haproxy2rpm.rb
CHANGED
@@ -10,10 +10,15 @@ require "haproxy2rpm/syslog"
|
|
10
10
|
require "haproxy2rpm/rpm"
|
11
11
|
|
12
12
|
module Haproxy2Rpm
|
13
|
+
|
14
|
+
class << self
|
15
|
+
attr_accessor :logger
|
16
|
+
end
|
17
|
+
|
13
18
|
def self.run(log_file, options)
|
14
19
|
@rpm = Rpm.new(options)
|
15
20
|
if(options[:daemonize])
|
16
|
-
|
21
|
+
logger.info 'daemonizing'
|
17
22
|
run_daemonized(log_file, options)
|
18
23
|
else
|
19
24
|
if(options[:syslog])
|
@@ -25,13 +30,13 @@ module Haproxy2Rpm
|
|
25
30
|
end
|
26
31
|
|
27
32
|
def self.stop
|
28
|
-
|
33
|
+
logger.info 'stopping new relic agent'
|
29
34
|
NewRelic::Agent.shutdown
|
30
35
|
end
|
31
36
|
|
32
37
|
def self.run_syslog_server(options)
|
33
38
|
EventMachine::run do
|
34
|
-
EventMachine::open_datagram_socket(options[:
|
39
|
+
EventMachine::open_datagram_socket(options[:address], options[:port], SyslogHandler)
|
35
40
|
end
|
36
41
|
end
|
37
42
|
|
@@ -54,8 +59,8 @@ module Haproxy2Rpm
|
|
54
59
|
default_run(log_file, options)
|
55
60
|
end
|
56
61
|
rescue => e
|
57
|
-
|
58
|
-
|
62
|
+
logger.error e.message
|
63
|
+
logger.error e.backtrace.join("\n")
|
59
64
|
abort "There was a fatal system error while starting haproxy2rpm"
|
60
65
|
end
|
61
66
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: haproxy2rpm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 6
|
10
|
+
version: 0.0.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Patrick Huesler
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2011-07-
|
19
|
+
date: 2011-07-12 00:00:00 +02:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|