ramon 0.4.2 → 0.4.3

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/Gemfile CHANGED
@@ -4,6 +4,5 @@ source "http://rubygems.org"
4
4
  gemspec
5
5
 
6
6
  gem 'rails', :group => :test
7
-
8
-
7
+ gem 'zmq'
9
8
  gem 'ramon', :path => '~/ramon'
data/benchmarks.rb CHANGED
@@ -1,39 +1,91 @@
1
1
  require "rubygems"
2
+ require "bundler/setup"
2
3
  require "ramon"
3
4
  require "logger"
5
+ require 'singleton'
6
+ require "zmq"
4
7
 
5
- Ramon.configure do |config|
6
- config.address = 'http://127.0.0.1:2465'
7
- config.logger = Logger.new("/dev/null")
8
+ runs = 10000
9
+ http_address = 'http://127.0.0.1:2464'
10
+ http_bench = false
11
+ zeromq_bench = true
12
+ standart_bench = true
13
+
14
+ puts "Runs: #{runs}"
15
+
16
+ if http_bench == true
17
+ Ramon.configure do |config|
18
+ config.address = http_address
19
+ config.logger = Logger.new("/dev/null")
20
+ end
21
+
22
+ start_time = Time.now
23
+ (1..runs).each {
24
+ Ramon.log('test')
25
+ }
26
+ end_time = Time.now
27
+ puts "HTTP logging #{(end_time - start_time)} seconds"
8
28
  end
9
29
 
10
- start_time = Time.now
11
- (1..1000).each {
12
- Ramon.log('test')
13
- }
14
- end_time = Time.now
15
- puts "HTTP logging #{(end_time - start_time)} seconds"
16
30
 
31
+ if zeromq_bench == true
32
+
33
+ class ZeroMQ
34
+ include Singleton
35
+
36
+ @@address = ""
37
+ def self.address= address
38
+ @@address = address
39
+ end
40
+
41
+ def initialize
42
+ @context = ZMQ::Context.new(1)
43
+ @socket = @context.socket(ZMQ::DEALER)
44
+ @socket.connect("tcp://#{@@address}")
45
+ @socket.setsockopt(ZMQ::LINGER, 0)
46
+ @socket.setsockopt(ZMQ::SWAP, 25000000) # 25MB disk swap
47
+ end
48
+
49
+ def post(data)
50
+ @socket.send(data, ZMQ::NOBLOCK)
51
+ end
17
52
 
18
- Ramon.configure do |config|
19
- config.address = '127.0.0.1:5464'
20
- config.protocol = 'zeromq'
21
- config.logger = Logger.new("/dev/null")
22
53
  end
23
54
 
24
- start_time = Time.now
25
- (1..1000).each {
26
- Ramon.log('test')
27
- }
28
- end_time = Time.now
29
- puts "ZeroMQ logging #{(end_time - start_time)} seconds"
30
-
31
-
32
- log = Logger.new('bench.log')
33
- start_time = Time.now
34
- (1..1000).each {
35
- log.info('test')
36
- }
37
- end_time = Time.now
38
- puts "Standard logging #{(end_time - start_time)} seconds"
55
+ #start_time = Time.now
56
+ #(1..runs).each {
57
+ #json_data = {:type => 'log', :content => {:message => 'zeromq test'}}
58
+ #json_data = json_data.to_json
59
+ #ZeroMQ.address = '127.0.0.1:5464'
60
+ #ZeroMQ.instance.post(json_data)
61
+ #}
62
+ #end_time = Time.now
63
+ #puts "ZeroMQ logging #{(end_time - start_time)} seconds"
64
+
65
+ Ramon.configure do |config|
66
+ config.address = '127.0.0.1:5464'
67
+ config.protocol = 'zeromq'
68
+ config.logger = Logger.new(STDOUT)
69
+ end
70
+
71
+ start_time = Time.now
72
+ (1..runs).each {
73
+ Ramon.log('ramon zeromq test')
74
+ }
75
+ end_time = Time.now
76
+ puts "Ramon ZeroMQ logging #{(end_time - start_time)} seconds"
77
+
78
+
79
+ end
80
+
81
+
82
+ if standart_bench == true
83
+ log = Logger.new('bench.log')
84
+ start_time = Time.now
85
+ (1..runs).each {
86
+ log.info('test')
87
+ }
88
+ end_time = Time.now
89
+ puts "Standard logging #{(end_time - start_time)} seconds"
90
+ end
39
91
 
data/lib/ramon.rb CHANGED
@@ -12,6 +12,7 @@ require_local "enviroment_data"
12
12
 
13
13
  require_local "integration/rails" if defined?(Rails)
14
14
  require_local "railtie" if defined?(Rails)
15
+ require_local "zeromq" if defined?(ZMQ)
15
16
 
16
17
  module Ramon
17
18
 
data/lib/ramon/sender.rb CHANGED
@@ -1,10 +1,6 @@
1
1
  require 'net/http'
2
2
  require 'json'
3
3
  require 'zlib'
4
- begin
5
- require 'zmq'
6
- rescue LoadError
7
- end
8
4
 
9
5
  module Ramon
10
6
  class Sender
@@ -65,22 +61,17 @@ module Ramon
65
61
 
66
62
  def post_zeromq(type, data = {})
67
63
  if defined?(ZMQ)
68
- context = ZMQ::Context.new()
69
- socket = context.socket(ZMQ::DEALER)
70
- socket.connect("tcp://#{address}")
71
- socket.setsockopt(ZMQ::LINGER,0)
72
- json_data = {:type => type,
73
- :content => data}
64
+ json_data = {:type => type, :content => data}
74
65
  if app_key
75
66
  json_data['app_key'] = app_key
76
67
  end
77
68
 
78
69
  json_data = json_data.to_json
79
70
 
80
- socket.send(json_data, ZMQ::NOBLOCK)
81
- socket.close()
82
- context.close()
83
- true
71
+ ZeroMQ.address = address
72
+ ZeroMQ.instance.post(json_data)
73
+ else
74
+ puts "ZeroMQ is not installed. You can install it with `gem install zmq`"
84
75
  end
85
76
  end
86
77
 
data/lib/ramon/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Ramon
2
- VERSION = "0.4.2"
2
+ VERSION = "0.4.3"
3
3
  end
@@ -0,0 +1,24 @@
1
+ require 'singleton'
2
+ module Ramon
3
+ class ZeroMQ
4
+ include Singleton
5
+ @@address = ""
6
+ def self.address= address
7
+ @@address = address
8
+ end
9
+
10
+ def initialize
11
+ context = ZMQ::Context.new(1)
12
+ @socket = context.socket(ZMQ::DEALER)
13
+ @socket.connect("tcp://#{@@address}")
14
+ @socket.setsockopt(ZMQ::LINGER, 0)
15
+ @socket.setsockopt(ZMQ::SWAP, 25000000) # 25MB disk swap
16
+ end
17
+
18
+ def post(data)
19
+ @socket.send(data, ZMQ::NOBLOCK)
20
+ end
21
+
22
+ end
23
+
24
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ramon
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
5
- prerelease: false
4
+ hash: 9
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 2
10
- version: 0.4.2
9
+ - 3
10
+ version: 0.4.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - martinrusev
@@ -15,8 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-04-07 00:00:00 +01:00
19
- default_executable:
18
+ date: 2012-04-27 00:00:00 Z
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
21
  name: json
@@ -56,6 +55,7 @@ files:
56
55
  - lib/ramon/railtie.rb
57
56
  - lib/ramon/sender.rb
58
57
  - lib/ramon/version.rb
58
+ - lib/ramon/zeromq.rb
59
59
  - ramon.gemspec
60
60
  - spec/config_spec.rb
61
61
  - spec/exception_data_spec.rb
@@ -64,7 +64,6 @@ files:
64
64
  - spec/spec_helper.rb
65
65
  - spec/web_spec.rb
66
66
  - spec/zeromq_spec.rb
67
- has_rdoc: true
68
67
  homepage: http://amon.cx
69
68
  licenses: []
70
69
 
@@ -94,7 +93,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
94
93
  requirements: []
95
94
 
96
95
  rubyforge_project: ramon
97
- rubygems_version: 1.3.7
96
+ rubygems_version: 1.8.15
98
97
  signing_key:
99
98
  specification_version: 3
100
99
  summary: Ruby binding for Amon