@@ -4,8 +4,8 @@ import io.waylay.kairosdb.driver.models.Aggregator.Trim.TrimWhat
4
4
import io .waylay .kairosdb .driver .models .RangeAggregator .Align
5
5
import io .waylay .kairosdb .driver .models .TimeSpan .AbsoluteStartTime
6
6
7
- import scala .concurrent .duration .{FiniteDuration , TimeUnit }
8
7
import scala .collection .immutable .Seq
8
+ import scala .concurrent .duration .TimeUnit
9
9
10
10
sealed trait Aggregator {
11
11
val name : String
@@ -32,7 +32,7 @@ object RangeAggregator {
32
32
/** Many of the aggregators inherit from the range aggregator */
33
33
trait RangeAggregator extends Aggregator {
34
34
/** Sampling is the length of the interval on which to aggregate data */
35
- val sampling : FiniteDuration
35
+ val sampling : TimeRange
36
36
val align : Option [Align ]
37
37
/** Start time to calculate the ranges from. Typically this is the start of the query. */
38
38
val startTime : Option [AbsoluteStartTime ]
@@ -44,53 +44,53 @@ object Aggregator {
44
44
45
45
// TODO why did we not use java.time.Duration instead of scala.concurrent.duration.Duration? We could introduce an implicit conversion
46
46
47
- case class Average (sampling : FiniteDuration , startTime : Option [AbsoluteStartTime ] = None , align : Option [Align ] = None , timeZone : Option [String ] = None )
47
+ case class Average (sampling : TimeRange , startTime : Option [AbsoluteStartTime ] = None , align : Option [Align ] = None , timeZone : Option [String ] = None )
48
48
extends RangeAggregator {
49
49
override val name = " avg"
50
50
}
51
51
52
52
/** Computes standard deviation */
53
- case class StandardDeviation (sampling : FiniteDuration , startTime : Option [AbsoluteStartTime ] = None , align : Option [Align ] = None , timeZone : Option [String ] = None )
53
+ case class StandardDeviation (sampling : TimeRange , startTime : Option [AbsoluteStartTime ] = None , align : Option [Align ] = None , timeZone : Option [String ] = None )
54
54
extends RangeAggregator {
55
55
override val name = " dev"
56
56
}
57
57
58
58
/** Counts the number of data points */
59
- case class Count (sampling : FiniteDuration , startTime : Option [AbsoluteStartTime ] = None , align : Option [Align ] = None , timeZone : Option [String ] = None )
59
+ case class Count (sampling : TimeRange , startTime : Option [AbsoluteStartTime ] = None , align : Option [Align ] = None , timeZone : Option [String ] = None )
60
60
extends RangeAggregator {
61
61
override val name = " count"
62
62
}
63
63
64
64
/** Returns the first data point for the interval */
65
- case class First (sampling : FiniteDuration , startTime : Option [AbsoluteStartTime ] = None , align : Option [Align ] = None , timeZone : Option [String ] = None )
65
+ case class First (sampling : TimeRange , startTime : Option [AbsoluteStartTime ] = None , align : Option [Align ] = None , timeZone : Option [String ] = None )
66
66
extends RangeAggregator {
67
67
override val name = " first"
68
68
}
69
69
70
70
/** Marks gaps in data according to sampling rate with a null data point */
71
- case class Gaps (sampling : FiniteDuration , startTime : Option [AbsoluteStartTime ] = None , align : Option [Align ] = None , timeZone : Option [String ] = None )
71
+ case class Gaps (sampling : TimeRange , startTime : Option [AbsoluteStartTime ] = None , align : Option [Align ] = None , timeZone : Option [String ] = None )
72
72
extends RangeAggregator {
73
73
override val name = " gaps"
74
74
}
75
75
76
76
/** Returns the last data point for the interval */
77
- case class Last (sampling : FiniteDuration , startTime : Option [AbsoluteStartTime ] = None , align : Option [Align ] = None , timeZone : Option [String ] = None )
77
+ case class Last (sampling : TimeRange , startTime : Option [AbsoluteStartTime ] = None , align : Option [Align ] = None , timeZone : Option [String ] = None )
78
78
extends RangeAggregator {
79
79
override val name = " last"
80
80
}
81
81
82
82
/* Returns two points for the range which represent the best fit line through the set of points */
83
- case class LeastSquares (sampling : FiniteDuration , startTime : Option [AbsoluteStartTime ] = None , align : Option [Align ] = None , timeZone : Option [String ] = None )
83
+ case class LeastSquares (sampling : TimeRange , startTime : Option [AbsoluteStartTime ] = None , align : Option [Align ] = None , timeZone : Option [String ] = None )
84
84
extends RangeAggregator {
85
85
override val name = " least_squares"
86
86
}
87
87
88
- case class Max (sampling : FiniteDuration , startTime : Option [AbsoluteStartTime ] = None , align : Option [Align ] = None , timeZone : Option [String ] = None )
88
+ case class Max (sampling : TimeRange , startTime : Option [AbsoluteStartTime ] = None , align : Option [Align ] = None , timeZone : Option [String ] = None )
89
89
extends RangeAggregator {
90
90
override val name = " max"
91
91
}
92
92
93
- case class Min (sampling : FiniteDuration , startTime : Option [AbsoluteStartTime ] = None , align : Option [Align ] = None , timeZone : Option [String ] = None )
93
+ case class Min (sampling : TimeRange , startTime : Option [AbsoluteStartTime ] = None , align : Option [Align ] = None , timeZone : Option [String ] = None )
94
94
extends RangeAggregator {
95
95
override val name = " min"
96
96
}
@@ -100,13 +100,13 @@ object Aggregator {
100
100
*
101
101
* @param percentile Defined as 0 < percentile <= 1 where .5 is 50% and 1 is 100%
102
102
*/
103
- case class Percentile (percentile : Double , sampling : FiniteDuration , startTime : Option [AbsoluteStartTime ] = None , align : Option [Align ] = None , timeZone : Option [String ] = None )
103
+ case class Percentile (percentile : Double , sampling : TimeRange , startTime : Option [AbsoluteStartTime ] = None , align : Option [Align ] = None , timeZone : Option [String ] = None )
104
104
extends RangeAggregator {
105
105
override val name = " percentile"
106
106
}
107
107
108
108
/** Sums all value */
109
- case class Sum (sampling : FiniteDuration , startTime : Option [AbsoluteStartTime ] = None , align : Option [Align ] = None , timeZone : Option [String ] = None )
109
+ case class Sum (sampling : TimeRange , startTime : Option [AbsoluteStartTime ] = None , align : Option [Align ] = None , timeZone : Option [String ] = None )
110
110
extends RangeAggregator {
111
111
override val name = " sum"
112
112
}
@@ -122,7 +122,7 @@ object Aggregator {
122
122
}
123
123
124
124
/** Returns the rate of change between a pair of data points. Requires a “unit” property which is the sampling duration (ie rate in seconds, milliseconds, minutes, etc...). */
125
- case class Rate (unit : TimeUnit , sampling : FiniteDuration , timezone : Option [String ]) extends Aggregator {
125
+ case class Rate (unit : TimeUnit , sampling : TimeRange , timezone : Option [String ]) extends Aggregator {
126
126
override val name = " rate"
127
127
}
128
128
@@ -173,7 +173,7 @@ object Aggregator {
173
173
* @param tags Additional tags to set on the metrics {"tag1":"value1","tag2":"value2"}
174
174
* @param ttl Sets the ttl on the newly saved metrics
175
175
*/
176
- case class SaveAs (metricName : MetricName , tags : Seq [Tag ], ttl : FiniteDuration ) extends Aggregator { // TODO ttl should be Option?
176
+ case class SaveAs (metricName : MetricName , tags : Seq [Tag ], ttl : TimeRange ) extends Aggregator { // TODO ttl should be Option?
177
177
override val name = " save_as"
178
178
}
179
179
0 commit comments