nightfury 0.6.1 → 0.6.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/lib/nightfury.rb
CHANGED
@@ -10,16 +10,6 @@ require 'active_support/core_ext/date_time/calculations'
|
|
10
10
|
require 'active_support/core_ext/numeric/time'
|
11
11
|
require 'active_support/concern'
|
12
12
|
|
13
|
-
class Time
|
14
|
-
def round(seconds = 60)
|
15
|
-
Time.at((self.to_f / seconds).round * seconds)
|
16
|
-
end
|
17
|
-
|
18
|
-
def floor(seconds = 60)
|
19
|
-
Time.at((self.to_f / seconds).floor * seconds)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
13
|
module Nightfury
|
24
14
|
class << self
|
25
15
|
attr_accessor :redis, :namespace
|
@@ -1,6 +1,10 @@
|
|
1
1
|
module Nightfury
|
2
2
|
module Metric
|
3
3
|
class TimeSeries < Base
|
4
|
+
|
5
|
+
def self.round_time(time, seconds=60)
|
6
|
+
Time.at((time.to_f / seconds).round * seconds)
|
7
|
+
end
|
4
8
|
|
5
9
|
def initialize(name, options={})
|
6
10
|
super(name, options)
|
@@ -102,13 +106,17 @@ module Nightfury
|
|
102
106
|
redis.zadd redis_key, 0, default_meta.to_json
|
103
107
|
end
|
104
108
|
|
109
|
+
def round_time(time, seconds=60)
|
110
|
+
self.class.round_time(time, seconds)
|
111
|
+
end
|
112
|
+
|
105
113
|
def get_step_time(time)
|
106
114
|
case step
|
107
|
-
when :minute then time
|
108
|
-
when :hour then time
|
109
|
-
when :day then time
|
110
|
-
when :week then time
|
111
|
-
when :month then time
|
115
|
+
when :minute then round_time(time, 60)
|
116
|
+
when :hour then round_time(time, 1.hour)
|
117
|
+
when :day then round_time(time, 1.day)
|
118
|
+
when :week then round_time(time, 1.week)
|
119
|
+
when :month then round_time(time, Time.days_in_month(time.month, time.year))
|
112
120
|
end
|
113
121
|
end
|
114
122
|
end
|
data/lib/nightfury/version.rb
CHANGED
@@ -39,7 +39,7 @@ describe Nightfury::Metric::CountTimeSeries do
|
|
39
39
|
# Add a data point
|
40
40
|
count_series.set(1, time_now - 10)
|
41
41
|
count_series.incr(1,time_later)
|
42
|
-
count_series.get.should == { time_later
|
42
|
+
count_series.get.should == { round_time(time_later, 60).to_i.to_s => "2"}
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
@@ -48,7 +48,7 @@ describe Nightfury::Metric::CountTimeSeries do
|
|
48
48
|
count_series = Nightfury::Metric::CountTimeSeries.new(1)
|
49
49
|
time_now = Time.now
|
50
50
|
count_series.incr(2, time_now)
|
51
|
-
count_series.get.should == { time_now
|
51
|
+
count_series.get.should == { round_time(time_now, 60).to_i.to_s => "2"}
|
52
52
|
end
|
53
53
|
end
|
54
54
|
end
|
@@ -91,7 +91,7 @@ describe Nightfury::Metric::CountTimeSeries do
|
|
91
91
|
# Add a data point
|
92
92
|
count_series.set(1, time_now - 10)
|
93
93
|
count_series.decr(1,time_later)
|
94
|
-
count_series.get.should == { time_later
|
94
|
+
count_series.get.should == { round_time(time_later, 60).to_i.to_s => "0"}
|
95
95
|
end
|
96
96
|
end
|
97
97
|
|
@@ -100,7 +100,7 @@ describe Nightfury::Metric::CountTimeSeries do
|
|
100
100
|
count_series = Nightfury::Metric::CountTimeSeries.new(1)
|
101
101
|
time_now = Time.now
|
102
102
|
count_series.decr(2, time_now)
|
103
|
-
count_series.get.should == { time_now
|
103
|
+
count_series.get.should == { round_time(time_now, 60).to_i.to_s => "-2"}
|
104
104
|
end
|
105
105
|
end
|
106
106
|
end
|
@@ -154,7 +154,7 @@ describe Nightfury::Metric::TimeSeries do
|
|
154
154
|
|
155
155
|
flexmock(ts_metric.redis).should_receive(:zadd)
|
156
156
|
.with(ts_metric.redis_key,
|
157
|
-
time_now
|
157
|
+
round_time(time_now, 60).to_i,
|
158
158
|
FlexMock.any)
|
159
159
|
.once
|
160
160
|
|
@@ -170,7 +170,7 @@ describe Nightfury::Metric::TimeSeries do
|
|
170
170
|
|
171
171
|
flexmock(ts_metric.redis).should_receive(:zadd)
|
172
172
|
.with(ts_metric.redis_key,
|
173
|
-
time
|
173
|
+
round_time(time, 60).to_i,
|
174
174
|
FlexMock.any)
|
175
175
|
.once
|
176
176
|
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nightfury
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-02-
|
13
|
+
date: 2013-02-26 00:00:00.000000000 Z
|
14
14
|
dependencies: []
|
15
15
|
description: Nightfury is a reporting/analytics backend written on Redis
|
16
16
|
email:
|