quark 0.0.6 → 0.0.7
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 +19 -6
- data/lib/quark.rb +9 -1
- data/lib/quark/commands/observe.rb +4 -0
- metadata +13 -13
data/bin/quark
CHANGED
@@ -7,10 +7,12 @@ module Quark
|
|
7
7
|
class CLI
|
8
8
|
class<<self
|
9
9
|
def run()
|
10
|
-
Quark::Config.set("quark.address",
|
11
|
-
Quark::Config.set("quark.port",
|
12
|
-
Quark::Config.set("quark.blocksize",
|
13
|
-
Quark::Config.set("quark.udp.enabled",
|
10
|
+
Quark::Config.set("quark.address", "127.0.0.1")
|
11
|
+
Quark::Config.set("quark.port", 12161)
|
12
|
+
Quark::Config.set("quark.blocksize", 3600000)
|
13
|
+
Quark::Config.set("quark.udp.enabled", false)
|
14
|
+
Quark::Config.set("quark.graphite_compat", true)
|
15
|
+
Quark::Config.set("debug", false)
|
14
16
|
|
15
17
|
(OptionParser.new do |opts|
|
16
18
|
opts.banner = "Usage: quark [options]"
|
@@ -36,12 +38,12 @@ module Quark
|
|
36
38
|
end
|
37
39
|
|
38
40
|
# -----------------------------------------------------------------------------
|
39
|
-
opts.on('-a', '--
|
41
|
+
opts.on('-a', '--tcp-address ADDR', 'The IP address for the TCP server to listen on') do |addr|
|
40
42
|
Quark::Config.set("quark.address", addr)
|
41
43
|
end
|
42
44
|
|
43
45
|
# -----------------------------------------------------------------------------
|
44
|
-
opts.on('-p', '--
|
46
|
+
opts.on('-p', '--tcp-port PORT', 'The TCP port to listen on') do |port|
|
45
47
|
Quark::Config.set("quark.port", port)
|
46
48
|
end
|
47
49
|
|
@@ -55,6 +57,11 @@ module Quark
|
|
55
57
|
Quark::Config.set("quark.udp.enabled", true)
|
56
58
|
end
|
57
59
|
|
60
|
+
# -----------------------------------------------------------------------------
|
61
|
+
opts.on('-D', '--debug', 'Enable debug mode') do
|
62
|
+
Quark::Config.set("debug", true)
|
63
|
+
end
|
64
|
+
|
58
65
|
# -----------------------------------------------------------------------------
|
59
66
|
opts.on('', '--udp-address ADDR', 'The IP address to start the UDP server on') do |addr|
|
60
67
|
Quark::Config.set("quark.udp.enabled", true)
|
@@ -67,6 +74,12 @@ module Quark
|
|
67
74
|
Quark::Config.set("quark.udp.port", port)
|
68
75
|
end
|
69
76
|
|
77
|
+
|
78
|
+
# -----------------------------------------------------------------------------
|
79
|
+
opts.on('', '--[no-]graphite', 'Enable/disable Graphite socket compatibility mode') do |mode|
|
80
|
+
Quark::Config.set("quark.graphite_compat", mode)
|
81
|
+
end
|
82
|
+
|
70
83
|
end).parse!
|
71
84
|
|
72
85
|
Quark::Server.run()
|
data/lib/quark.rb
CHANGED
@@ -30,7 +30,7 @@ module Quark
|
|
30
30
|
def receive_data(data)
|
31
31
|
# if the data perfectly resembles a graphite-formatted metric (without a command prefix)
|
32
32
|
# then assume the command is "observe"
|
33
|
-
if data =~ /^[\w\.\-]+ -?[\d\.]+ \d{10,13}$/
|
33
|
+
if Quark::Config.get("quark.graphite_compat") and data =~ /^[\w\.\-]+ -?[\d\.]+ \d{10,13}$/
|
34
34
|
command = "OBSERVE"
|
35
35
|
arguments = data.chomp
|
36
36
|
else
|
@@ -93,6 +93,10 @@ module Quark
|
|
93
93
|
@filename = Quark::Config.get("quark.socket")
|
94
94
|
|
95
95
|
EM.run do
|
96
|
+
if Quark::Config.get("debug")
|
97
|
+
puts "Debug mode is ON"
|
98
|
+
end
|
99
|
+
|
96
100
|
if not @filename.nil? and File.writable?(File.dirname(@filename))
|
97
101
|
puts "Starting socket server at #{@filename}..."
|
98
102
|
EM::start_server(@filename, Quark::SocketServer)
|
@@ -110,6 +114,10 @@ module Quark
|
|
110
114
|
puts "Starting TCP server on #{@address}:#{@port}..."
|
111
115
|
EM::start_server(@address, @port, Quark::SocketServer)
|
112
116
|
end
|
117
|
+
|
118
|
+
if Quark::Config.get("quark.graphite_compat")
|
119
|
+
puts "Graphite compatibility mode enabled: all sockets will accept Graphite-formatted metrics as observations"
|
120
|
+
end
|
113
121
|
end
|
114
122
|
end
|
115
123
|
end
|
@@ -11,6 +11,10 @@ module Quark
|
|
11
11
|
|
12
12
|
block = Integer(timestamp / Quark::Config.get("quark.blocksize").to_i)
|
13
13
|
|
14
|
+
if Quark::Config.get("debug")
|
15
|
+
puts "OBSERVE #{@_prefix}:#{id}:#{block} #{value} #{timestamp}"
|
16
|
+
end
|
17
|
+
|
14
18
|
@redis.hset("#{@_prefix}:#{id}:#{block}", timestamp, value)
|
15
19
|
return ({
|
16
20
|
:metric => id,
|
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.0.
|
4
|
+
version: 0.0.7
|
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: &15249980 !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: *15249980
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: eventmachine
|
27
|
-
requirement: &
|
27
|
+
requirement: &15249020 !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: *15249020
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: redis
|
38
|
-
requirement: &
|
38
|
+
requirement: &15248140 !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: *15248140
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: hiredis
|
49
|
-
requirement: &
|
49
|
+
requirement: &15263700 !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: *15263700
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: em-synchrony
|
60
|
-
requirement: &
|
60
|
+
requirement: &15262720 !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: *15262720
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: hashlib
|
71
|
-
requirement: &
|
71
|
+
requirement: &15261440 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: 0.0.35
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *15261440
|
80
80
|
description: A small service for logging and retrieving timeseries metrics into a
|
81
81
|
Redis server
|
82
82
|
email: garyhetzel@gmail.com
|