logjam_agent 0.19.1 → 0.19.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 76e4acbd92955208e5de2dc2dca507706680e2ea
4
- data.tar.gz: 111c2506ca03dd76ac3845a4bfe6d5ce04b05dec
3
+ metadata.gz: 3e9d6b9f04d490d4972525d48260a3615ac025f7
4
+ data.tar.gz: 57eb3ff05b85e938cbc311bb3129f04ac917e2c8
5
5
  SHA512:
6
- metadata.gz: f168cb6d857520094b22413139410596bbe55eb15288059f77c99765fbc2a82a10a1b3f09976d86f3900449113dabb8b23f9aa4f523fde8efd1ea5fc5c2121db
7
- data.tar.gz: e64fa86a63bfa0a13bdc114447d373e3f0874d9bd1268b217958f707fd4011869eb455285b73dc4889ca032d384954b036262a818c892aacddedc68853ac7266
6
+ metadata.gz: 171dbc3e7dcee9784ad8ce9a24b2bc09c879f96c5e7703dc415ea5be771a5ea88afdcee5098ed323331a8d15028f7287a428983cb3e610f1ba873b31bc1dec11
7
+ data.tar.gz: 379fb53d4e360366f5b9e43994c0519b76b680db11099eebdfa9bd208d200316f32167b9741fa5bf83cadf3af48cc33740612f99b1ba412f293521004359e0a8
data/README.md CHANGED
@@ -38,8 +38,14 @@ module LogjamAgent
38
38
  # Configure the application revision (optional). Defaults to (git rev-parse HEAD).
39
39
  # self.application_revision = "f494e11afa0738b279517a2a96101a952052da5d"
40
40
 
41
- # Configure request data forwarder for ZeroMQ.
42
- add_forwarder(:zmq, :host => "logjam.instance.at.your.org", :port => 9605)
41
+ # Configure request data forwarder for ZeroMQ. Default options as given below.
42
+ # the host parameter can be a comma separted list of zmq connection specifictions,
43
+ # where ths protocol prefix and port suffix are optional.
44
+ add_forwarder(:zmq,
45
+ :host => "localhost",
46
+ :port => 9605,
47
+ :linger => 100,
48
+ :snd_hwm => 100)
43
49
 
44
50
  # Configure request data forwarder for AMQP.
45
51
  # add_forwarder(:amqp, :host => "message.broker.at.your.org")
data/Rakefile CHANGED
@@ -1 +1,14 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler/setup'
2
+ require 'rake'
3
+ require 'rake/testtask'
4
+ require 'bundler/gem_tasks'
5
+
6
+ Rake::TestTask.new do |t|
7
+ t.libs << "test"
8
+ t.test_files = FileList['test/**/*_test.rb']
9
+ t.verbose = true
10
+ end
11
+
12
+ task :default do
13
+ Rake::Task[:test].invoke
14
+ end
@@ -57,5 +57,12 @@ module LogjamAgent
57
57
  sequence = unpack_uint64_big_endian(info[16..23])
58
58
  [tag, compression_method, version, device, sent, sequence]
59
59
  end
60
+
61
+ def augment_connection_spec(spec, default_port)
62
+ protocol, host, port = %r{\A(?:([^:]+)://)?([^:]+)(?::(\d+))?\z}.match(spec).captures
63
+ protocol ||= "tcp"
64
+ port ||= default_port
65
+ "#{protocol}://#{host}:#{port}"
66
+ end
60
67
  end
61
68
  end
@@ -1,3 +1,3 @@
1
1
  module LogjamAgent
2
- VERSION = "0.19.1"
2
+ VERSION = "0.19.2"
3
3
  end
@@ -1,6 +1,6 @@
1
1
  module LogjamAgent
2
2
  class ZMQForwarder
3
- attr_reader :app, :env
3
+ attr_reader :app, :env, :connection_specs
4
4
 
5
5
  include Util
6
6
 
@@ -10,15 +10,18 @@ module LogjamAgent
10
10
  @env = args[1] || LogjamAgent.environment_name
11
11
  @app_env = "#{@app}-#{@env}"
12
12
  @config = default_options.merge!(opts)
13
- @zmq_hosts = Array(@config[:host])
14
- @zmq_port = @config[:port]
13
+ @connection_specs = @config[:host].split(',').map do |host|
14
+ augment_connection_spec(host, @config[:port])
15
+ end
15
16
  @sequence = 0
16
17
  end
17
18
 
18
19
  def default_options
19
20
  {
20
21
  :host => "localhost",
21
- :port => 12345
22
+ :port => 9605,
23
+ :linger => 100,
24
+ :snd_hwm => 100,
22
25
  }
23
26
  end
24
27
 
@@ -41,10 +44,10 @@ module LogjamAgent
41
44
  @socket ||=
42
45
  begin
43
46
  socket = self.class.context.socket(ZMQ::PUSH)
44
- socket.setsockopt(ZMQ::LINGER, 100)
45
- socket.setsockopt(ZMQ::SNDHWM, 10)
46
- @zmq_hosts.each do |host|
47
- socket.connect("tcp://#{host}:#{@zmq_port}")
47
+ socket.setsockopt(ZMQ::LINGER, @config[:linger])
48
+ socket.setsockopt(ZMQ::SNDHWM, @config[:snd_hwm])
49
+ @connection_specs.each do |spec|
50
+ socket.connect(spec)
48
51
  end
49
52
  at_exit { reset }
50
53
  socket
data/logjam_agent.gemspec CHANGED
@@ -23,6 +23,7 @@ Gem::Specification.new do |s|
23
23
  s.add_development_dependency "snappy"
24
24
  s.add_development_dependency "oj"
25
25
  s.add_development_dependency "byebug"
26
+ s.add_development_dependency "minitest"
26
27
 
27
28
  s.add_runtime_dependency "activesupport"
28
29
  s.add_runtime_dependency "time_bandits", [">= 0.6.0"]
@@ -0,0 +1,11 @@
1
+ require 'minitest/autorun'
2
+ require 'minitest/unit'
3
+ require 'minitest/pride' if ENV['RAINBOW_COLORED_TESTS'] == "1" && $stdout.tty?
4
+ # require 'mocha/setup'
5
+
6
+ require_relative "../lib/logjam_agent"
7
+
8
+ class MiniTest::Test
9
+ require "active_support/testing/declarative"
10
+ extend ActiveSupport::Testing::Declarative
11
+ end
data/test/util_test.rb ADDED
@@ -0,0 +1,28 @@
1
+ require_relative "test_helper.rb"
2
+
3
+ module LogjamAgent
4
+ class UtilTest < MiniTest::Test
5
+ include LogjamAgent::Util
6
+
7
+ test "does not change a full spec" do
8
+ augmented = augment_connection_spec("tcp://a:1", 2)
9
+ assert_equal "tcp://a:1", augmented
10
+ end
11
+
12
+ test "adds default port when missing" do
13
+ augmented = augment_connection_spec("tcp://a", 1)
14
+ assert_equal "tcp://a:1", augmented
15
+ end
16
+
17
+ test "adds default protocol when missing" do
18
+ augmented = augment_connection_spec("a:1", 2)
19
+ assert_equal "tcp://a:1", augmented
20
+ end
21
+
22
+ test "adds default protocol and default port when missing" do
23
+ augmented = augment_connection_spec("a", 1)
24
+ assert_equal "tcp://a:1", augmented
25
+ end
26
+
27
+ end
28
+ end
@@ -0,0 +1,17 @@
1
+ require_relative "test_helper.rb"
2
+
3
+ module LogjamAgent
4
+ class ZMQForwarderTest < MiniTest::Test
5
+
6
+ test "sets up single connection with default port" do
7
+ f = ZMQForwarder.new(:host => "a.b.c", :port => 3001)
8
+ assert_equal ["tcp://a.b.c:3001"], f.connection_specs
9
+ end
10
+
11
+ test "sets up multiple connections" do
12
+ f = ZMQForwarder.new(:host => "a.b.c,tcp://x.y.z:9000,zmq.gnu.org:600")
13
+ assert_equal %w(tcp://a.b.c:9605 tcp://x.y.z:9000 tcp://zmq.gnu.org:600), f.connection_specs
14
+ end
15
+
16
+ end
17
+ 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.1
4
+ version: 0.19.2
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-04-29 00:00:00.000000000 Z
11
+ date: 2016-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: minitest
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: activesupport
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -134,6 +148,9 @@ files:
134
148
  - lib/logjam_agent/zmq_forwarder.rb
135
149
  - logjam_agent.gemspec
136
150
  - script/console
151
+ - test/test_helper.rb
152
+ - test/util_test.rb
153
+ - test/zmq_forwarder_test.rb
137
154
  homepage: ''
138
155
  licenses: []
139
156
  metadata: {}
@@ -157,4 +174,7 @@ rubygems_version: 2.4.8
157
174
  signing_key:
158
175
  specification_version: 4
159
176
  summary: Logjam client library to be used with logjam
160
- test_files: []
177
+ test_files:
178
+ - test/test_helper.rb
179
+ - test/util_test.rb
180
+ - test/zmq_forwarder_test.rb