haproxy2rpm 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -19,6 +19,6 @@ namespace :test do
19
19
  uri = ENV['uri'] || '/'
20
20
  puts 'make sure the udp server is running'
21
21
 
22
- `yes '<13>May 19 18:30:17 localhost haproxy[674]: 127.0.0.1:33319 [15/Oct/2003:08:31:57] relais-http Srv1 6559/100/7/147/6723 #{status_code} 243 - - ---- 1/3/5 0/0 "PUT #{uri} HTTP/1.0"' | nc -u -i 1 localhost #{port}`
22
+ `yes '<13>May 19 18:30:17 haproxy[674]: 127.0.0.1:33319 [15/Oct/2003:08:31:57] relais-http Srv1 6559/100/7/147/6723 #{status_code} 243 - - ---- 1/3/5 0/0 "PUT #{uri} HTTP/1.0"' | nc -u -i 1 localhost #{port}`
23
23
  end
24
24
  end
data/lib/haproxy2rpm.rb CHANGED
@@ -38,7 +38,7 @@ module Haproxy2Rpm
38
38
  def self.default_run(log_file,options)
39
39
  EventMachine.run do
40
40
  EventMachine::file_tail(log_file) do |filetail, line|
41
- @rpm.send(line)
41
+ @rpm.process_and_send(line)
42
42
  end
43
43
  end
44
44
  end
@@ -9,14 +9,18 @@ module Haproxy2Rpm
9
9
  @qt_stat = @stats_engine.get_stats_no_scope('WebFrontend/QueueTime')
10
10
  end
11
11
 
12
- def send(line)
12
+ def process_and_send(line)
13
13
  request = LineParser.new(line)
14
- NewRelic::Agent.record_transaction(
15
- request.tr / 1000.0,
16
- 'metric' => "Controller#{request.path}",
17
- 'is_error' => request.is_error?,
18
- 'error_message' => "#{request.uri} : Status code #{request.status_code}"
19
- )
14
+ params = {
15
+ 'metric' => "Controller#{request.http_path}"
16
+ }
17
+
18
+ if request.is_error?
19
+ params['is_error'] = true
20
+ params['error_message'] = "#{request.uri} : Status code #{request.status_code}"
21
+ end
22
+
23
+ NewRelic::Agent.record_transaction(request.tr / 1000.0, params)
20
24
  @qt_stat.record_data_point(request.tw / 1000.0)
21
25
  end
22
26
  end
@@ -4,37 +4,11 @@ module Haproxy2Rpm
4
4
  class SyslogHandler < EventMachine::Connection
5
5
  def initialize
6
6
  @rpm = Rpm.new
7
- @count = 0
8
- @buffer = BufferedTokenizer.new
9
- @start = Time.now
10
-
11
- # The syslog parsing stuff here taken from the 'logporter' gem.
12
- pri = "(?:<(?<pri>[0-9]{1,3})>)?"
13
- month = "(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)"
14
- day = "(?: [1-9]|[12][0-9]|3[01])"
15
- hour = "(?:[01][0-9]|2[0-4])"
16
- minute = "(?:[0-5][0-9])"
17
- second = "(?:[0-5][0-9])"
18
- time = [hour, minute, second].join(":")
19
- timestamp = "(?<timestamp>#{month} #{day} #{time})"
20
- hostname = "(?<hostname>[A-Za-z0-9_.:]+)"
21
- header = timestamp + " " + hostname
22
- message = "(?<message>[ -~]+)" # ascii 32 to 126
23
- re = "^#{pri}#{header} #{message}$"
24
-
25
- if RUBY_VERSION =~ /^1\.8/
26
- # Ruby 1.8 doesn't support named captures
27
- # replace (?<foo> with (
28
- re = re.gsub(/\(\?<[^>]+>/, "(")
29
- end
30
-
31
- @syslog3164_re = Regexp.new(re)
32
- end
7
+ end
33
8
 
34
9
  def receive_data(data)
35
- puts data
36
- m = @syslog3164_re.match(data)
37
- @rpm.send(m[:message])
10
+ message_start_index = data.index('haproxy')
11
+ @rpm.process_and_send(data[message_start_index..-1])
38
12
  end
39
13
  end
40
14
  end
@@ -1,3 +1,3 @@
1
1
  module Haproxy2Rpm
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
metadata CHANGED
@@ -1,71 +1,91 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: haproxy2rpm
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.4
3
+ version: !ruby/object:Gem::Version
4
+ hash: 21
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 5
10
+ version: 0.0.5
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Patrick Huesler
9
14
  - Martin Rehfeld
10
15
  autorequire:
11
16
  bindir: bin
12
17
  cert_chain: []
13
- date: 2011-07-11 00:00:00.000000000 +02:00
18
+
19
+ date: 2011-07-11 00:00:00 +02:00
14
20
  default_executable:
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
21
+ dependencies:
22
+ - !ruby/object:Gem::Dependency
17
23
  name: newrelic_rpm
18
- requirement: &2157686580 !ruby/object:Gem::Requirement
24
+ prerelease: false
25
+ requirement: &id001 !ruby/object:Gem::Requirement
19
26
  none: false
20
- requirements:
21
- - - ! '>='
22
- - !ruby/object:Gem::Version
23
- version: '0'
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ hash: 3
31
+ segments:
32
+ - 0
33
+ version: "0"
24
34
  type: :runtime
25
- prerelease: false
26
- version_requirements: *2157686580
27
- - !ruby/object:Gem::Dependency
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
28
37
  name: eventmachine-tail
29
- requirement: &2157686160 !ruby/object:Gem::Requirement
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
30
40
  none: false
31
- requirements:
32
- - - ! '>='
33
- - !ruby/object:Gem::Version
34
- version: '0'
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ hash: 3
45
+ segments:
46
+ - 0
47
+ version: "0"
35
48
  type: :runtime
36
- prerelease: false
37
- version_requirements: *2157686160
38
- - !ruby/object:Gem::Dependency
49
+ version_requirements: *id002
50
+ - !ruby/object:Gem::Dependency
39
51
  name: rake
40
- requirement: &2157712860 !ruby/object:Gem::Requirement
52
+ prerelease: false
53
+ requirement: &id003 !ruby/object:Gem::Requirement
41
54
  none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ hash: 3
59
+ segments:
60
+ - 0
61
+ version: "0"
46
62
  type: :development
47
- prerelease: false
48
- version_requirements: *2157712860
49
- - !ruby/object:Gem::Dependency
63
+ version_requirements: *id003
64
+ - !ruby/object:Gem::Dependency
50
65
  name: shoulda-context
51
- requirement: &2157712440 !ruby/object:Gem::Requirement
66
+ prerelease: false
67
+ requirement: &id004 !ruby/object:Gem::Requirement
52
68
  none: false
53
- requirements:
54
- - - ! '>='
55
- - !ruby/object:Gem::Version
56
- version: '0'
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ hash: 3
73
+ segments:
74
+ - 0
75
+ version: "0"
57
76
  type: :development
58
- prerelease: false
59
- version_requirements: *2157712440
77
+ version_requirements: *id004
60
78
  description: Sending haproxy logs to new relic rpm
61
- email:
79
+ email:
62
80
  - patrick.huesler@wooga.com
63
81
  - martin.rehfeld@wooga.com
64
- executables:
82
+ executables:
65
83
  - haproxy2rpm
66
84
  extensions: []
85
+
67
86
  extra_rdoc_files: []
68
- files:
87
+
88
+ files:
69
89
  - .gitignore
70
90
  - Gemfile
71
91
  - README.md
@@ -84,28 +104,37 @@ files:
84
104
  has_rdoc: true
85
105
  homepage: https://github.com/wooga/haproxy2rpm
86
106
  licenses: []
107
+
87
108
  post_install_message:
88
109
  rdoc_options: []
89
- require_paths:
110
+
111
+ require_paths:
90
112
  - lib
91
- required_ruby_version: !ruby/object:Gem::Requirement
113
+ required_ruby_version: !ruby/object:Gem::Requirement
92
114
  none: false
93
- requirements:
94
- - - ! '>='
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- required_rubygems_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ hash: 3
119
+ segments:
120
+ - 0
121
+ version: "0"
122
+ required_rubygems_version: !ruby/object:Gem::Requirement
98
123
  none: false
99
- requirements:
100
- - - ! '>='
101
- - !ruby/object:Gem::Version
102
- version: '0'
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ hash: 3
128
+ segments:
129
+ - 0
130
+ version: "0"
103
131
  requirements: []
132
+
104
133
  rubyforge_project:
105
134
  rubygems_version: 1.6.2
106
135
  signing_key:
107
136
  specification_version: 3
108
137
  summary: Sending haproxy logs to new relic rpm
109
- test_files:
138
+ test_files:
110
139
  - test/haproxy2pm_test.rb
111
140
  - test/test_helper.rb