logjam_agent 0.19.4 → 0.19.5
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.
- checksums.yaml +4 -4
- data/lib/logjam_agent/amqp_forwarder.rb +25 -23
- data/lib/logjam_agent/request.rb +1 -2
- data/lib/logjam_agent/version.rb +1 -1
- data/lib/logjam_agent/zmq_forwarder.rb +3 -2
- data/logjam_agent.gemspec +1 -0
- data/test/amqp_forwarder_test.rb +32 -0
- data/test/test_helper.rb +1 -1
- data/test/zmq_forwarder_test.rb +23 -0
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0279d90588ebec498f742e91649a69419e8d64cb
|
4
|
+
data.tar.gz: bd5268ff93c0f8d61f5bab144d815da2438c3432
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 32b4a9a97156a850fba99f585b53fec62b0aec9b1bf397e4cb3ceb419252886811eee5351a773b5f2b5ae8ecf9cd6ca39dc13a9f759500f2ecdb821b817615e0
|
7
|
+
data.tar.gz: ee8df18ee840b4d1dd79dc82ddf175eb3aae3cbb83886ee1d83b45cf5bfc9490d9c9186b9c01e7cc576ac75c1f78e5eaea9928eda0dedd9b98afb759706120cf
|
@@ -28,36 +28,38 @@ module LogjamAgent
|
|
28
28
|
end
|
29
29
|
|
30
30
|
# TODO: mutex!
|
31
|
-
def forward(
|
31
|
+
def forward(data, options = {})
|
32
32
|
return if paused?
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
key += ".#{engine}"
|
38
|
-
end
|
39
|
-
info = pack_info(@sequence = next_fixnum(@sequence))
|
40
|
-
exchange(app_env).publish(msg, :key => key, :persistent => false, :headers => {:info => info})
|
41
|
-
rescue => error
|
42
|
-
reraise_expectation_errors!
|
43
|
-
pause(error)
|
33
|
+
app_env = options[:app_env] || @app_env
|
34
|
+
key = options[:routing_key] || "logs.#{app_env.sub('-','.')}"
|
35
|
+
if engine = options[:engine]
|
36
|
+
key += ".#{engine}"
|
44
37
|
end
|
38
|
+
msg = LogjamAgent.encode_payload(data)
|
39
|
+
publish(app_env, key, msg)
|
40
|
+
rescue => error
|
41
|
+
reraise_expectation_errors!
|
42
|
+
pause(error)
|
43
|
+
end
|
44
|
+
|
45
|
+
def publish(app_env, key, data)
|
46
|
+
info = pack_info(@sequence = next_fixnum(@sequence))
|
47
|
+
exchange(app_env).publish(data, :key => key, :persistent => false, :headers => {:info => info})
|
45
48
|
end
|
46
49
|
|
47
50
|
def reset(exception=nil)
|
48
51
|
return unless @bunny
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
@bunny.stop
|
54
|
-
end
|
55
|
-
rescue
|
56
|
-
# if bunny throws an exception here, its not usable anymore anyway
|
57
|
-
ensure
|
58
|
-
@exchanges = {}
|
59
|
-
@bunny = nil
|
52
|
+
if exception
|
53
|
+
@bunny.__send__(:close_socket)
|
54
|
+
else
|
55
|
+
@bunny.stop
|
60
56
|
end
|
57
|
+
rescue
|
58
|
+
# swallow StandardError
|
59
|
+
ensure
|
60
|
+
# if bunny throws an exception here, its not usable anymore anyway
|
61
|
+
@exchanges = {}
|
62
|
+
@bunny = nil
|
61
63
|
end
|
62
64
|
|
63
65
|
private
|
data/lib/logjam_agent/request.rb
CHANGED
@@ -84,8 +84,7 @@ module LogjamAgent
|
|
84
84
|
def forward
|
85
85
|
return if @ignored || LogjamAgent.disabled
|
86
86
|
engine = @fields.delete(:engine)
|
87
|
-
|
88
|
-
@forwarder.forward(LogjamAgent.encode_payload(@fields), :engine => engine)
|
87
|
+
@forwarder.forward(@fields, :engine => engine)
|
89
88
|
rescue Exception => e
|
90
89
|
handle_forwarding_error(e)
|
91
90
|
end
|
data/lib/logjam_agent/version.rb
CHANGED
@@ -20,7 +20,7 @@ module LogjamAgent
|
|
20
20
|
def default_options
|
21
21
|
{
|
22
22
|
:port => 9605,
|
23
|
-
:linger =>
|
23
|
+
:linger => 1000,
|
24
24
|
:snd_hwm => 100,
|
25
25
|
}
|
26
26
|
end
|
@@ -58,12 +58,13 @@ module LogjamAgent
|
|
58
58
|
@socket = nil
|
59
59
|
end
|
60
60
|
|
61
|
-
def forward(
|
61
|
+
def forward(data, options={})
|
62
62
|
app_env = options[:app_env] || @app_env
|
63
63
|
key = options[:routing_key] || "logs.#{app_env.sub('-','.')}"
|
64
64
|
if engine = options[:engine]
|
65
65
|
key += ".#{engine}"
|
66
66
|
end
|
67
|
+
msg = LogjamAgent.encode_payload(data)
|
67
68
|
publish(app_env, key, msg)
|
68
69
|
rescue => error
|
69
70
|
reraise_expectation_errors!
|
data/logjam_agent.gemspec
CHANGED
@@ -24,6 +24,7 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.add_development_dependency "oj"
|
25
25
|
s.add_development_dependency "byebug"
|
26
26
|
s.add_development_dependency "minitest"
|
27
|
+
s.add_development_dependency "mocha"
|
27
28
|
|
28
29
|
s.add_runtime_dependency "activesupport"
|
29
30
|
s.add_runtime_dependency "time_bandits", [">= 0.6.0"]
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require_relative "test_helper.rb"
|
2
|
+
|
3
|
+
module LogjamAgent
|
4
|
+
class AMQPForwarderTest < MiniTest::Test
|
5
|
+
def setup
|
6
|
+
AMQPForwarder.any_instance.expects(:ensure_bunny_gem_is_available)
|
7
|
+
end
|
8
|
+
|
9
|
+
def teardown
|
10
|
+
LogjamAgent.compression_method = NO_COMPRESSION
|
11
|
+
end
|
12
|
+
|
13
|
+
test "encodes the payload" do
|
14
|
+
data = {a: 1, b: "str"}
|
15
|
+
msg = LogjamAgent.encode_payload(data)
|
16
|
+
f = AMQPForwarder.new
|
17
|
+
f.expects(:publish).with("a-b", "x", msg)
|
18
|
+
f.forward(data, :routing_key => "x", :app_env => "a-b")
|
19
|
+
end
|
20
|
+
|
21
|
+
test "compressed message using snappy can be uncompressed" do
|
22
|
+
data = {a: 1, b: "str"}
|
23
|
+
normal_msg = LogjamAgent.encode_payload(data)
|
24
|
+
LogjamAgent.compression_method = SNAPPY_COMPRESSION
|
25
|
+
compressed_msg = LogjamAgent.encode_payload(data)
|
26
|
+
assert_equal normal_msg, Snappy.inflate(compressed_msg)
|
27
|
+
f = AMQPForwarder.new
|
28
|
+
f.expects(:publish).with("a-b", "x", compressed_msg)
|
29
|
+
f.forward(data, :routing_key => "x", :app_env => "a-b")
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/test/test_helper.rb
CHANGED
data/test/zmq_forwarder_test.rb
CHANGED
@@ -3,6 +3,10 @@ require_relative "test_helper.rb"
|
|
3
3
|
module LogjamAgent
|
4
4
|
class ZMQForwarderTest < MiniTest::Test
|
5
5
|
|
6
|
+
def teardown
|
7
|
+
LogjamAgent.compression_method = NO_COMPRESSION
|
8
|
+
end
|
9
|
+
|
6
10
|
test "sets up single connection with default port" do
|
7
11
|
f = ZMQForwarder.new(:host => "a.b.c", :port => 3001)
|
8
12
|
assert_equal ["tcp://a.b.c:3001"], f.connection_specs
|
@@ -13,5 +17,24 @@ module LogjamAgent
|
|
13
17
|
assert_equal %w(tcp://a.b.c:9605 tcp://x.y.z:9000 tcp://zmq.gnu.org:600), f.connection_specs
|
14
18
|
end
|
15
19
|
|
20
|
+
test "encodes the payload" do
|
21
|
+
data = {a: 1, b: "str"}
|
22
|
+
msg = LogjamAgent.encode_payload(data)
|
23
|
+
f = ZMQForwarder.new
|
24
|
+
f.expects(:publish).with("a-b", "x", msg)
|
25
|
+
f.forward(data, :routing_key => "x", :app_env => "a-b")
|
26
|
+
end
|
27
|
+
|
28
|
+
test "compressed message using snappy can be uncompressed" do
|
29
|
+
data = {a: 1, b: "str"}
|
30
|
+
normal_msg = LogjamAgent.encode_payload(data)
|
31
|
+
LogjamAgent.compression_method = SNAPPY_COMPRESSION
|
32
|
+
compressed_msg = LogjamAgent.encode_payload(data)
|
33
|
+
assert_equal normal_msg, Snappy.inflate(compressed_msg)
|
34
|
+
f = ZMQForwarder.new
|
35
|
+
f.expects(:publish).with("a-b", "x", compressed_msg)
|
36
|
+
f.forward(data, :routing_key => "x", :app_env => "a-b")
|
37
|
+
end
|
38
|
+
|
16
39
|
end
|
17
40
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logjam_agent
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.19.
|
4
|
+
version: 0.19.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefan Kaes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-05-
|
11
|
+
date: 2016-05-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: mocha
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: activesupport
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -148,6 +162,7 @@ files:
|
|
148
162
|
- lib/logjam_agent/zmq_forwarder.rb
|
149
163
|
- logjam_agent.gemspec
|
150
164
|
- script/console
|
165
|
+
- test/amqp_forwarder_test.rb
|
151
166
|
- test/test_helper.rb
|
152
167
|
- test/util_test.rb
|
153
168
|
- test/zmq_forwarder_test.rb
|
@@ -175,6 +190,7 @@ signing_key:
|
|
175
190
|
specification_version: 4
|
176
191
|
summary: Logjam client library to be used with logjam
|
177
192
|
test_files:
|
193
|
+
- test/amqp_forwarder_test.rb
|
178
194
|
- test/test_helper.rb
|
179
195
|
- test/util_test.rb
|
180
196
|
- test/zmq_forwarder_test.rb
|