quark 0.0.1 → 0.0.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.
- data/bin/quark +8 -1
- data/lib/quark.rb +2 -2
- data/lib/quark/commands/fetch.rb +2 -2
- data/lib/quark/commands/observe.rb +8 -1
- metadata +11 -11
data/bin/quark
CHANGED
@@ -7,7 +7,9 @@ module Quark
|
|
7
7
|
class CLI
|
8
8
|
class<<self
|
9
9
|
def run()
|
10
|
-
|
10
|
+
Quark::Config.set("quark.address", "127.0.0.1")
|
11
|
+
Quark::Config.set("quark.port", 12161)
|
12
|
+
Quark::Config.set("quark.blocksize", 3600000)
|
11
13
|
|
12
14
|
(OptionParser.new do |opts|
|
13
15
|
opts.banner = "Usage: quark [options]"
|
@@ -42,6 +44,11 @@ module Quark
|
|
42
44
|
Quark::Config.set("quark.port", port)
|
43
45
|
end
|
44
46
|
|
47
|
+
# -----------------------------------------------------------------------------
|
48
|
+
opts.on('-B', '--metric-block-size MSEC', 'The size of metric buckets (in milliseconds) that metrics should be split into') do |blocksize|
|
49
|
+
Quark::Config.set("quark.blocksize", blocksize)
|
50
|
+
end
|
51
|
+
|
45
52
|
end).parse!
|
46
53
|
|
47
54
|
Quark::Server.run()
|
data/lib/quark.rb
CHANGED
@@ -48,8 +48,8 @@ module Quark
|
|
48
48
|
|
49
49
|
class Server
|
50
50
|
def self.run()
|
51
|
-
@address = Quark::Config.get("quark.address"
|
52
|
-
@port = Quark::Config.get("quark.port"
|
51
|
+
@address = Quark::Config.get("quark.address")
|
52
|
+
@port = Quark::Config.get("quark.port")
|
53
53
|
@filename = Quark::Config.get("quark.socket")
|
54
54
|
|
55
55
|
EM.run do
|
data/lib/quark/commands/fetch.rb
CHANGED
@@ -23,8 +23,8 @@ module Quark
|
|
23
23
|
block = block.to_i
|
24
24
|
|
25
25
|
# skip keys whose block falls outside of the given time range (if given)
|
26
|
-
next if block > 0 and not from.nil? and block < (from.to_i/
|
27
|
-
next if block > 0 and not to.nil? and block > (to.to_i/
|
26
|
+
next if block > 0 and not from.nil? and block < (from.to_i/Quark::Config.get("quark.blocksize").to_i).to_i
|
27
|
+
next if block > 0 and not to.nil? and block > (to.to_i/Quark::Config.get("quark.blocksize").to_i).to_i
|
28
28
|
|
29
29
|
# get all values, sort by timestamp ascending, and append to ouput (within range, if given)
|
30
30
|
@redis.hgetall(key).sort{|a,b|
|
@@ -2,7 +2,14 @@ module Quark
|
|
2
2
|
module SocketServer
|
3
3
|
def process_command_observe(data)
|
4
4
|
id, value, timestamp = data.chomp.split(' ')
|
5
|
-
|
5
|
+
timestamp = timestamp.to_i
|
6
|
+
|
7
|
+
# automatically convert epoch seconds to milliseconds to provide Graphite metric compatibility
|
8
|
+
if timestamp < 2147483647
|
9
|
+
(timestamp = timestamp * 1000)
|
10
|
+
end
|
11
|
+
|
12
|
+
block = Integer(timestamp / Quark::Config.get("quark.blocksize").to_i)
|
6
13
|
|
7
14
|
@redis.hset("#{@_prefix}:#{id}:#{block}", timestamp, value)
|
8
15
|
return nil
|
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.2
|
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: &13898660 !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: *13898660
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: eventmachine
|
27
|
-
requirement: &
|
27
|
+
requirement: &13897140 !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: *13897140
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: redis
|
38
|
-
requirement: &
|
38
|
+
requirement: &13896080 !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: *13896080
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: hiredis
|
49
|
-
requirement: &
|
49
|
+
requirement: &13894740 !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: *13894740
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: em-synchrony
|
60
|
-
requirement: &
|
60
|
+
requirement: &13893380 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: 1.0.3
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *13893380
|
69
69
|
description: A small service for logging and retrieving timeseries metrics into a
|
70
70
|
Redis server
|
71
71
|
email: garyhetzel@gmail.com
|