nats 0.4.10 → 0.4.22
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/HISTORY.md +42 -0
- data/README.md +68 -56
- data/Rakefile +1 -1
- data/bin/nats-request +41 -0
- data/bin/nats-top +146 -0
- data/lib/nats/client.rb +190 -74
- data/lib/nats/server.rb +15 -0
- data/lib/nats/server/connection.rb +269 -0
- data/lib/nats/server/connz.rb +54 -0
- data/lib/nats/server/const.rb +24 -2
- data/lib/nats/server/options.rb +64 -3
- data/lib/nats/server/server.rb +73 -172
- data/lib/nats/server/sublist.rb +67 -16
- data/lib/nats/server/util.rb +45 -2
- data/lib/nats/server/varz.rb +35 -0
- data/nats.gemspec +12 -6
- metadata +64 -55
- data/ChangeLog +0 -11
@@ -0,0 +1,35 @@
|
|
1
|
+
module NATSD #:nodoc: all
|
2
|
+
|
3
|
+
class Varz
|
4
|
+
def call(env)
|
5
|
+
varz_json = JSON.pretty_generate(Server.update_varz) + "\n"
|
6
|
+
hdrs = RACK_JSON_HDR.dup
|
7
|
+
hdrs['Content-Length'] = varz_json.bytesize.to_s
|
8
|
+
[200, hdrs, varz_json]
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
class Server
|
13
|
+
class << self
|
14
|
+
|
15
|
+
def update_varz
|
16
|
+
# Snapshot uptime
|
17
|
+
@varz[:uptime] = uptime_string(Time.now - @varz[:start])
|
18
|
+
|
19
|
+
# Grab current cpu and memory usage.
|
20
|
+
rss, pcpu = `ps -o rss=,pcpu= -p #{Process.pid}`.split
|
21
|
+
@varz[:mem] = rss.to_i
|
22
|
+
@varz[:cpu] = pcpu.to_f
|
23
|
+
@varz[:connections] = num_connections
|
24
|
+
@varz[:in_msgs] = in_msgs
|
25
|
+
@varz[:out_msgs] = out_msgs
|
26
|
+
@varz[:in_bytes] = in_bytes
|
27
|
+
@varz[:out_bytes] = out_bytes
|
28
|
+
@last_varz_update = Time.now.to_f
|
29
|
+
varz
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
data/nats.gemspec
CHANGED
@@ -8,42 +8,48 @@ require 'nats/server/const'
|
|
8
8
|
spec = Gem::Specification.new do |s|
|
9
9
|
s.name = 'nats'
|
10
10
|
s.version = NATSD::VERSION
|
11
|
-
s.summary = 'A lightweight publish-subscribe messaging system.'
|
11
|
+
s.summary = 'A lightweight publish-subscribe and distributed queuing messaging system.'
|
12
12
|
s.homepage = 'http://github.com/derekcollison/nats'
|
13
|
-
s.description = 'A lightweight publish-subscribe messaging system.'
|
13
|
+
s.description = 'A lightweight publish-subscribe and distributed queuing messaging system.'
|
14
14
|
s.has_rdoc = true
|
15
15
|
|
16
16
|
s.authors = ['Derek Collison']
|
17
17
|
s.email = ['derek.collison@gmail.com']
|
18
18
|
|
19
19
|
s.add_dependency('eventmachine', '>= 0.12.10')
|
20
|
-
s.add_dependency('json_pure', '>= 1.
|
21
|
-
s.add_dependency('daemons', '>= 1.1.
|
20
|
+
s.add_dependency('json_pure', '>= 1.6.1')
|
21
|
+
s.add_dependency('daemons', '>= 1.1.4')
|
22
|
+
s.add_dependency('thin', '>= 1.3.1')
|
22
23
|
|
23
24
|
s.require_paths = ['lib']
|
24
25
|
s.bindir = 'bin'
|
25
|
-
s.executables = [NATSD::APP_NAME, 'nats-pub', 'nats-sub', 'nats-queue']
|
26
|
+
s.executables = [NATSD::APP_NAME, 'nats-pub', 'nats-sub', 'nats-queue', 'nats-top', 'nats-request']
|
26
27
|
|
27
28
|
s.files = %w[
|
28
29
|
COPYING
|
29
30
|
README.md
|
30
|
-
|
31
|
+
HISTORY.md
|
31
32
|
nats.gemspec
|
32
33
|
Rakefile
|
33
34
|
bin/nats-server
|
34
35
|
bin/nats-sub
|
35
36
|
bin/nats-pub
|
36
37
|
bin/nats-queue
|
38
|
+
bin/nats-top
|
39
|
+
bin/nats-request
|
37
40
|
lib/nats/client.rb
|
38
41
|
lib/nats/ext/bytesize.rb
|
39
42
|
lib/nats/ext/em.rb
|
40
43
|
lib/nats/ext/json.rb
|
41
44
|
lib/nats/server.rb
|
42
45
|
lib/nats/server/server.rb
|
46
|
+
lib/nats/server/connection.rb
|
43
47
|
lib/nats/server/options.rb
|
44
48
|
lib/nats/server/sublist.rb
|
45
49
|
lib/nats/server/const.rb
|
46
50
|
lib/nats/server/util.rb
|
51
|
+
lib/nats/server/varz.rb
|
52
|
+
lib/nats/server/connz.rb
|
47
53
|
]
|
48
54
|
|
49
55
|
end
|
metadata
CHANGED
@@ -1,110 +1,119 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: nats
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.4.22
|
4
5
|
prerelease:
|
5
|
-
version: 0.4.10
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Derek Collison
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
dependencies:
|
16
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-03-05 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
17
15
|
name: eventmachine
|
18
|
-
|
19
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70168295087200 !ruby/object:Gem::Requirement
|
20
17
|
none: false
|
21
|
-
requirements:
|
22
|
-
- -
|
23
|
-
- !ruby/object:Gem::Version
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
24
21
|
version: 0.12.10
|
25
22
|
type: :runtime
|
26
|
-
version_requirements: *id001
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: json_pure
|
29
23
|
prerelease: false
|
30
|
-
|
24
|
+
version_requirements: *70168295087200
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: json_pure
|
27
|
+
requirement: &70168295086600 !ruby/object:Gem::Requirement
|
31
28
|
none: false
|
32
|
-
requirements:
|
33
|
-
- -
|
34
|
-
- !ruby/object:Gem::Version
|
35
|
-
version: 1.
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 1.6.1
|
36
33
|
type: :runtime
|
37
|
-
|
38
|
-
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70168295086600
|
36
|
+
- !ruby/object:Gem::Dependency
|
39
37
|
name: daemons
|
38
|
+
requirement: &70168295085380 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 1.1.4
|
44
|
+
type: :runtime
|
40
45
|
prerelease: false
|
41
|
-
|
46
|
+
version_requirements: *70168295085380
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: thin
|
49
|
+
requirement: &70168295084240 !ruby/object:Gem::Requirement
|
42
50
|
none: false
|
43
|
-
requirements:
|
44
|
-
- -
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: 1.1
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.3.1
|
47
55
|
type: :runtime
|
48
|
-
|
49
|
-
|
50
|
-
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *70168295084240
|
58
|
+
description: A lightweight publish-subscribe and distributed queuing messaging system.
|
59
|
+
email:
|
51
60
|
- derek.collison@gmail.com
|
52
|
-
executables:
|
61
|
+
executables:
|
53
62
|
- nats-server
|
54
63
|
- nats-pub
|
55
64
|
- nats-sub
|
56
65
|
- nats-queue
|
66
|
+
- nats-top
|
67
|
+
- nats-request
|
57
68
|
extensions: []
|
58
|
-
|
59
69
|
extra_rdoc_files: []
|
60
|
-
|
61
|
-
files:
|
70
|
+
files:
|
62
71
|
- COPYING
|
63
72
|
- README.md
|
64
|
-
-
|
73
|
+
- HISTORY.md
|
65
74
|
- nats.gemspec
|
66
75
|
- Rakefile
|
67
76
|
- bin/nats-server
|
68
77
|
- bin/nats-sub
|
69
78
|
- bin/nats-pub
|
70
79
|
- bin/nats-queue
|
80
|
+
- bin/nats-top
|
81
|
+
- bin/nats-request
|
71
82
|
- lib/nats/client.rb
|
72
83
|
- lib/nats/ext/bytesize.rb
|
73
84
|
- lib/nats/ext/em.rb
|
74
85
|
- lib/nats/ext/json.rb
|
75
86
|
- lib/nats/server.rb
|
76
87
|
- lib/nats/server/server.rb
|
88
|
+
- lib/nats/server/connection.rb
|
77
89
|
- lib/nats/server/options.rb
|
78
90
|
- lib/nats/server/sublist.rb
|
79
91
|
- lib/nats/server/const.rb
|
80
92
|
- lib/nats/server/util.rb
|
81
|
-
|
93
|
+
- lib/nats/server/varz.rb
|
94
|
+
- lib/nats/server/connz.rb
|
82
95
|
homepage: http://github.com/derekcollison/nats
|
83
96
|
licenses: []
|
84
|
-
|
85
97
|
post_install_message:
|
86
98
|
rdoc_options: []
|
87
|
-
|
88
|
-
require_paths:
|
99
|
+
require_paths:
|
89
100
|
- lib
|
90
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
101
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
91
102
|
none: false
|
92
|
-
requirements:
|
93
|
-
- -
|
94
|
-
- !ruby/object:Gem::Version
|
95
|
-
version:
|
96
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
103
|
+
requirements:
|
104
|
+
- - ! '>='
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: '0'
|
107
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
97
108
|
none: false
|
98
|
-
requirements:
|
99
|
-
- -
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version:
|
109
|
+
requirements:
|
110
|
+
- - ! '>='
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '0'
|
102
113
|
requirements: []
|
103
|
-
|
104
114
|
rubyforge_project:
|
105
|
-
rubygems_version: 1.
|
115
|
+
rubygems_version: 1.8.17
|
106
116
|
signing_key:
|
107
117
|
specification_version: 3
|
108
|
-
summary: A lightweight publish-subscribe messaging system.
|
118
|
+
summary: A lightweight publish-subscribe and distributed queuing messaging system.
|
109
119
|
test_files: []
|
110
|
-
|
data/ChangeLog
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
2011-02-21, version 0.4.2
|
2
|
-
* queue group support
|
3
|
-
* auto-unsubscribe support
|
4
|
-
* time expiration on subscriptions
|
5
|
-
* jruby initial support (1.5.6, 1.6.0-RC1)
|
6
|
-
* performance enhancements
|
7
|
-
* complete config file support
|
8
|
-
|
9
|
-
2010-11-20, version 0.3.12
|
10
|
-
* original upload to RubyGems
|
11
|
-
|