quark 0.1.2 → 0.1.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/bin/quark +17 -7
- data/lib/quark/servers/http.rb +10 -0
- data/lib/quark.rb +7 -4
- metadata +19 -19
data/bin/quark
CHANGED
@@ -20,7 +20,7 @@ module Quark
|
|
20
20
|
|
21
21
|
# -----------------------------------------------------------------------------
|
22
22
|
opts.on('', '--redis-port PORT', 'Port of the Redis server to write to') do |port|
|
23
|
-
Quark::Config.set("redis.port", port)
|
23
|
+
Quark::Config.set("redis.port", port.to_i)
|
24
24
|
end
|
25
25
|
|
26
26
|
# -----------------------------------------------------------------------------
|
@@ -40,12 +40,12 @@ module Quark
|
|
40
40
|
|
41
41
|
# -----------------------------------------------------------------------------
|
42
42
|
opts.on('-p', '--port PORT', 'The TCP/UDP port to listen on') do |port|
|
43
|
-
Quark::Config.set("quark.port", port)
|
43
|
+
Quark::Config.set("quark.port", port.to_i)
|
44
44
|
end
|
45
45
|
|
46
46
|
# -----------------------------------------------------------------------------
|
47
47
|
opts.on('', '--metric-block-size MSEC', 'The size of metric buckets (in milliseconds) that metrics should be split into') do |blocksize|
|
48
|
-
Quark::Config.set("quark.blocksize", blocksize)
|
48
|
+
Quark::Config.set("quark.blocksize", blocksize.to_i)
|
49
49
|
end
|
50
50
|
|
51
51
|
# -----------------------------------------------------------------------------
|
@@ -60,7 +60,7 @@ module Quark
|
|
60
60
|
|
61
61
|
# -----------------------------------------------------------------------------
|
62
62
|
opts.on('', '--tcp-port PORT', 'The TCP port to listen on') do |port|
|
63
|
-
Quark::Config.set("quark.tcp.port", port)
|
63
|
+
Quark::Config.set("quark.tcp.port", port.to_i)
|
64
64
|
end
|
65
65
|
|
66
66
|
# -----------------------------------------------------------------------------
|
@@ -77,7 +77,7 @@ module Quark
|
|
77
77
|
# -----------------------------------------------------------------------------
|
78
78
|
opts.on('', '--udp-port PORT', 'The port start the UDP server on') do |port|
|
79
79
|
Quark::Config.set("quark.udp.enabled", true)
|
80
|
-
Quark::Config.set("quark.udp.port", port)
|
80
|
+
Quark::Config.set("quark.udp.port", port.to_i)
|
81
81
|
end
|
82
82
|
|
83
83
|
# -----------------------------------------------------------------------------
|
@@ -92,7 +92,7 @@ module Quark
|
|
92
92
|
|
93
93
|
# -----------------------------------------------------------------------------
|
94
94
|
opts.on('', '--http-port PORT', 'The HTTP port to listen on') do |port|
|
95
|
-
Quark::Config.set("quark.http.port", port)
|
95
|
+
Quark::Config.set("quark.http.port", port.to_i)
|
96
96
|
end
|
97
97
|
|
98
98
|
# -----------------------------------------------------------------------------
|
@@ -110,9 +110,19 @@ module Quark
|
|
110
110
|
Quark::Config.set("quark.graphite_compat", mode)
|
111
111
|
end
|
112
112
|
|
113
|
+
# -----------------------------------------------------------------------------
|
114
|
+
opts.on('-e', '--exec', 'Execute the given query and output the results') do
|
115
|
+
Quark::Config.set("execute", true)
|
116
|
+
end
|
117
|
+
|
113
118
|
end).parse!
|
114
119
|
|
115
|
-
Quark::
|
120
|
+
if Quark::Config.get("execute") === true
|
121
|
+
rv = Quark::SocketServer.process_command(ARGV.join(' '))
|
122
|
+
puts MultiJson.dump(rv, :pretty => true)
|
123
|
+
else
|
124
|
+
Quark::Server.run()
|
125
|
+
end
|
116
126
|
end
|
117
127
|
end
|
118
128
|
end
|
data/lib/quark/servers/http.rb
CHANGED
@@ -10,6 +10,7 @@ module Quark
|
|
10
10
|
mime_type :json, 'application/json'
|
11
11
|
|
12
12
|
if Quark::Config.get("quark.http.cors") === true
|
13
|
+
puts "HTTP Cross-Origin Resource Sharing is ON"
|
13
14
|
set :allow_origin, :any
|
14
15
|
set :allow_methods, [:get, :post, :options]
|
15
16
|
set :allow_credentials, true
|
@@ -19,6 +20,7 @@ module Quark
|
|
19
20
|
|
20
21
|
before do
|
21
22
|
if Quark::Config.get("quark.http.cors") === true
|
23
|
+
headers 'Access-Control-Allow-Origin' => '*'
|
22
24
|
headers 'Access-Control-Allow-Headers' => 'origin, x-requested-with, accept'
|
23
25
|
end
|
24
26
|
|
@@ -36,6 +38,14 @@ module Quark
|
|
36
38
|
MultiJson.dump(Quark::SocketServer.process_command("#{params[:command].upcase} #{params[:splat].first.gsub('/',' ')}".strip))
|
37
39
|
end
|
38
40
|
|
41
|
+
get '/observe/:metric/:value/?' do
|
42
|
+
MultiJson.dump(Quark::SocketServer.process_command_observe("#{params[:metric]} #{params[:value]} #{(Time.now.to_f * 1000).to_i}"))
|
43
|
+
end
|
44
|
+
|
45
|
+
get '/observe/:metric/:value/:timestamp/?' do
|
46
|
+
MultiJson.dump(Quark::SocketServer.process_command_observe("#{params[:metric]} #{params[:value]} #{params[:timestamp]}"))
|
47
|
+
end
|
48
|
+
|
39
49
|
def _quark_command(command, payload)
|
40
50
|
io = nil
|
41
51
|
|
data/lib/quark.rb
CHANGED
@@ -5,8 +5,6 @@ require 'hiredis'
|
|
5
5
|
require 'em-synchrony'
|
6
6
|
require 'multi_json'
|
7
7
|
require 'quark/config'
|
8
|
-
require 'quark/servers/http'
|
9
|
-
|
10
8
|
|
11
9
|
module Quark
|
12
10
|
class Error < Exception; end
|
@@ -145,8 +143,11 @@ module Quark
|
|
145
143
|
|
146
144
|
# TCP server
|
147
145
|
if Quark::Config.get("quark.tcp.enabled") === true
|
148
|
-
|
149
|
-
|
146
|
+
@tcp_address = Quark::Config.get("quark.tcp.address", @address)
|
147
|
+
@tcp_port = Quark::Config.get("quark.tcp.port", @port)
|
148
|
+
|
149
|
+
puts "Starting TCP server on #{@tcp_address}:#{@tcp_port}..."
|
150
|
+
EM::start_server(@tcp_address, @tcp_port, Quark::SocketServer)
|
150
151
|
end
|
151
152
|
|
152
153
|
# HTTP server
|
@@ -155,6 +156,8 @@ module Quark
|
|
155
156
|
@http_port = Quark::Config.get("quark.http.port", 12180)
|
156
157
|
|
157
158
|
puts "Starting HTTP server on #{@http_address}:#{@http_port}..."
|
159
|
+
require 'quark/servers/http'
|
160
|
+
|
158
161
|
Quark::Server::HttpServer.new({
|
159
162
|
:address => @http_address,
|
160
163
|
:port => @http_port
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quark
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2014-05-06 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: multi_json
|
16
|
-
requirement: &
|
16
|
+
requirement: &11548480 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - =
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 1.7.9
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *11548480
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: eventmachine
|
27
|
-
requirement: &
|
27
|
+
requirement: &11548000 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 1.0.0
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *11548000
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: redis
|
38
|
-
requirement: &
|
38
|
+
requirement: &11547540 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 3.0.0
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *11547540
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: hiredis
|
49
|
-
requirement: &
|
49
|
+
requirement: &11357600 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 0.5.2
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *11357600
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: em-synchrony
|
60
|
-
requirement: &
|
60
|
+
requirement: &11357160 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 1.0.3
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *11357160
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: hashlib
|
71
|
-
requirement: &
|
71
|
+
requirement: &11356720 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: 0.0.35
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *11356720
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: sinatra
|
82
|
-
requirement: &
|
82
|
+
requirement: &11356280 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :runtime
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *11356280
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: sinatra-cross_origin
|
93
|
-
requirement: &
|
93
|
+
requirement: &11355780 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :runtime
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *11355780
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: thin
|
104
|
-
requirement: &
|
104
|
+
requirement: &11355320 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
@@ -109,7 +109,7 @@ dependencies:
|
|
109
109
|
version: '0'
|
110
110
|
type: :runtime
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *11355320
|
113
113
|
description: A small service for logging and retrieving timeseries metrics into a
|
114
114
|
Redis server
|
115
115
|
email: garyhetzel@gmail.com
|