haproxy2rpm 0.1.1 → 0.2.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.
@@ -1,5 +1,9 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## v 0.2.0
4
+
5
+ * Introducing default route
6
+
3
7
  ## v 0.1.1
4
8
 
5
9
  * BUGFIX: hostnames with hyphens e.g s-app-1 break the syslog parser
data/README.md CHANGED
@@ -27,6 +27,21 @@ Tell haproxy to log to syslog. e.g:
27
27
 
28
28
  Check the examples folder
29
29
 
30
+
31
+ ## Problems with haproxy timers
32
+
33
+ Slow clients (e.g mobile clients over an edge connection) influence the
34
+ measurements haproxy returns. The same happens for requests that do send
35
+ a lot of data (e.g POST/PUT). In that case, the 'tr' value provided by
36
+ haproxy is generally a bit higher. When you have many slow clients, it
37
+ is significantely higher. For more information about the values haproxy
38
+ provides, refer to the [manual](http://code.google.com/p/haproxy-docs/wiki/TimingEvents).
39
+
40
+ ## The issue of the default route
41
+
42
+ When haproxy2rpm does not find a route, it will record it under a
43
+ default name so that NewRelic is not flooded with millions of routes. You can provide by setting 'config.default_route'.
44
+
30
45
  ## Node.js support
31
46
 
32
47
  Check the examples folder
@@ -2,6 +2,7 @@ module Haproxy2Rpm
2
2
  class Rpm
3
3
 
4
4
  attr_accessor :routes, :queue_time_stats_engine, :stats_engine
5
+ attr_writer :default_route
5
6
 
6
7
  def initialize(options = {})
7
8
  agent_options = {:log => Haproxy2Rpm.logger}
@@ -21,7 +22,11 @@ module Haproxy2Rpm
21
22
  def config
22
23
  self
23
24
  end
24
-
25
+
26
+ def default_route
27
+ @default_route ||= '/default'
28
+ end
29
+
25
30
  def process_and_send(line)
26
31
  begin
27
32
  message = message_parser.call(line)
@@ -88,7 +93,7 @@ module Haproxy2Rpm
88
93
  return route[:target]
89
94
  end
90
95
  end
91
- path
96
+ default_route
92
97
  end
93
98
  end
94
99
  end
@@ -1,3 +1,3 @@
1
1
  module Haproxy2Rpm
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -33,6 +33,7 @@ class RpmTest < Test::Unit::TestCase
33
33
  end
34
34
 
35
35
  should 'record the controller metric' do
36
+ @instance.routes = [{:pattern => %r{^/user/check$}, :target => '/user/check'}]
36
37
  NewRelic::Agent.expects(:record_transaction).with(anything, has_entry('metric', 'Controller/user/check'))
37
38
  @instance.process_and_send(log_entry(:http_path => "/user/check"))
38
39
  end
@@ -42,6 +43,13 @@ class RpmTest < Test::Unit::TestCase
42
43
  NewRelic::Agent.expects(:record_transaction).with(anything, has_entry('metric', 'Controller/user/update'))
43
44
  @instance.process_and_send(log_entry(:http_path => "/49339032093/update"))
44
45
  end
46
+
47
+ should 'fallback to default route when unknown' do
48
+ @instance.routes = []
49
+ @instance.default_route = '/default'
50
+ NewRelic::Agent.expects(:record_transaction).with(anything, has_entry('metric', 'Controller/default'))
51
+ @instance.process_and_send(log_entry(:http_path => "/unknown/route"))
52
+ end
45
53
 
46
54
  should 'record the queue time' do
47
55
  stats = mock
metadata CHANGED
@@ -1,105 +1,81 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: haproxy2rpm
3
- version: !ruby/object:Gem::Version
4
- hash: 25
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 1
9
- - 1
10
- version: 0.1.1
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Patrick Huesler
14
9
  - Martin Rehfeld
15
10
  autorequire:
16
11
  bindir: bin
17
12
  cert_chain: []
18
-
19
- date: 2012-01-04 00:00:00 +01:00
20
- default_executable:
21
- dependencies:
22
- - !ruby/object:Gem::Dependency
13
+ date: 2012-01-05 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
23
16
  name: newrelic_rpm
24
- prerelease: false
25
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: &70355528340020 !ruby/object:Gem::Requirement
26
18
  none: false
27
- requirements:
28
- - - ">="
29
- - !ruby/object:Gem::Version
30
- hash: 3
31
- segments:
32
- - 0
33
- version: "0"
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
34
23
  type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: eventmachine-tail
38
24
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
25
+ version_requirements: *70355528340020
26
+ - !ruby/object:Gem::Dependency
27
+ name: eventmachine-tail
28
+ requirement: &70355528339240 !ruby/object:Gem::Requirement
40
29
  none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 3
45
- segments:
46
- - 0
47
- version: "0"
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
48
34
  type: :runtime
49
- version_requirements: *id002
50
- - !ruby/object:Gem::Dependency
51
- name: rake
52
35
  prerelease: false
53
- requirement: &id003 !ruby/object:Gem::Requirement
36
+ version_requirements: *70355528339240
37
+ - !ruby/object:Gem::Dependency
38
+ name: rake
39
+ requirement: &70355528338720 !ruby/object:Gem::Requirement
54
40
  none: false
55
- requirements:
56
- - - ">="
57
- - !ruby/object:Gem::Version
58
- hash: 3
59
- segments:
60
- - 0
61
- version: "0"
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
62
45
  type: :development
63
- version_requirements: *id003
64
- - !ruby/object:Gem::Dependency
65
- name: shoulda-context
66
46
  prerelease: false
67
- requirement: &id004 !ruby/object:Gem::Requirement
47
+ version_requirements: *70355528338720
48
+ - !ruby/object:Gem::Dependency
49
+ name: shoulda-context
50
+ requirement: &70355528338120 !ruby/object:Gem::Requirement
68
51
  none: false
69
- requirements:
70
- - - ">="
71
- - !ruby/object:Gem::Version
72
- hash: 3
73
- segments:
74
- - 0
75
- version: "0"
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
76
56
  type: :development
77
- version_requirements: *id004
78
- - !ruby/object:Gem::Dependency
79
- name: mocha
80
57
  prerelease: false
81
- requirement: &id005 !ruby/object:Gem::Requirement
58
+ version_requirements: *70355528338120
59
+ - !ruby/object:Gem::Dependency
60
+ name: mocha
61
+ requirement: &70355528337540 !ruby/object:Gem::Requirement
82
62
  none: false
83
- requirements:
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- hash: 3
87
- segments:
88
- - 0
89
- version: "0"
63
+ requirements:
64
+ - - ! '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
90
67
  type: :development
91
- version_requirements: *id005
68
+ prerelease: false
69
+ version_requirements: *70355528337540
92
70
  description: Sending haproxy logs to new relic rpm
93
- email:
71
+ email:
94
72
  - patrick.huesler@wooga.com
95
73
  - martin.rehfeld@wooga.com
96
- executables:
74
+ executables:
97
75
  - haproxy2rpm
98
76
  extensions: []
99
-
100
77
  extra_rdoc_files: []
101
-
102
- files:
78
+ files:
103
79
  - .gitignore
104
80
  - .travis.yml
105
81
  - CHANGELOG.md
@@ -126,41 +102,31 @@ files:
126
102
  - test/rpm_test.rb
127
103
  - test/syslog_test.rb
128
104
  - test/test_helper.rb
129
- has_rdoc: true
130
105
  homepage: https://github.com/wooga/haproxy2rpm
131
106
  licenses: []
132
-
133
107
  post_install_message:
134
108
  rdoc_options: []
135
-
136
- require_paths:
109
+ require_paths:
137
110
  - lib
138
- required_ruby_version: !ruby/object:Gem::Requirement
111
+ required_ruby_version: !ruby/object:Gem::Requirement
139
112
  none: false
140
- requirements:
141
- - - ">="
142
- - !ruby/object:Gem::Version
143
- hash: 3
144
- segments:
145
- - 0
146
- version: "0"
147
- required_rubygems_version: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ! '>='
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ required_rubygems_version: !ruby/object:Gem::Requirement
148
118
  none: false
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- hash: 3
153
- segments:
154
- - 0
155
- version: "0"
119
+ requirements:
120
+ - - ! '>='
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
156
123
  requirements: []
157
-
158
124
  rubyforge_project:
159
- rubygems_version: 1.6.2
125
+ rubygems_version: 1.8.6
160
126
  signing_key:
161
127
  specification_version: 3
162
128
  summary: Sending haproxy logs to new relic rpm
163
- test_files:
129
+ test_files:
164
130
  - test/fixtures/config.rb
165
131
  - test/haproxy2pm_test.rb
166
132
  - test/rpm_test.rb