dataoperations-aggregate 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/dataoperations-aggregate.rb +8 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e2cf76bae5e748e46672c8d59f8859358452f2fca813499b148e85dfa61f38c9
|
4
|
+
data.tar.gz: 7a9fbbd0115edefa597b9d374407576f4dfedb133da781dffe066c3e4ba6f73a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 403435362bd15744b154604e6322dcbba89ea9952e36d82ffe3ac3299f3ad28cd5c29187843e780cf149dabf2abdb4fbb6700f1e8ddce8e792ab033adf174255
|
7
|
+
data.tar.gz: f883f091f074ebbe48e18c46790ceb37c5ba98d7a879ec8259f69c88a19225130864897ab8bb63e47c7ab31dbcc5a400ae6c7fe68f3b8a27abec476c6e34123d
|
@@ -9,6 +9,7 @@ module DataOperations
|
|
9
9
|
DEFAULT_INTERVALS = [10].freeze
|
10
10
|
DEFAULT_FLUSH_INTERVAL = 5
|
11
11
|
DEFAULT_PROCESSING_MODE = :batch
|
12
|
+
DEFAULT_TIME_STARTED_MODE = :first_message
|
12
13
|
DEFAULT_FIELD_NO_DATA_VALUE = 'no_data'.freeze
|
13
14
|
DEFAULT_AGGREGATIONS = %w[sum min max mean median variance standard_deviation].freeze
|
14
15
|
VALID_AGGREGATIONS = %w[sum min max mean median variance standard_deviation].freeze
|
@@ -24,6 +25,7 @@ module DataOperations
|
|
24
25
|
keep_interval: DEFAULT_KEEP_INTERVAL,
|
25
26
|
field_no_data_value: DEFAULT_FIELD_NO_DATA_VALUE,
|
26
27
|
processing_mode: DEFAULT_PROCESSING_MODE,
|
28
|
+
time_started_mode: DEFAULT_TIME_STARTED_MODE,
|
27
29
|
aggregator_name: nil,
|
28
30
|
log: Logger.new(STDOUT),
|
29
31
|
aggregation_names:,
|
@@ -39,6 +41,7 @@ module DataOperations
|
|
39
41
|
@keep_interval = keep_interval
|
40
42
|
@field_no_data_value = field_no_data_value
|
41
43
|
@processing_mode = processing_mode
|
44
|
+
@time_started_mode = time_started_mode
|
42
45
|
@aggregator_name = aggregator_name
|
43
46
|
|
44
47
|
|
@@ -117,14 +120,14 @@ module DataOperations
|
|
117
120
|
aggregator_item['aggregate_fields'] = aggregate_detail
|
118
121
|
aggregator_item['intervals'] = interval_detail
|
119
122
|
|
120
|
-
|
123
|
+
@aggregator_mutex.synchronize {@aggregator[hash_group_key] = aggregator_item}
|
121
124
|
end
|
122
125
|
|
123
126
|
if !aggregator_item['aggregate_fields'].key?(aggregator_hash_key)
|
124
127
|
hash_aggregator = {}
|
125
128
|
hash_aggregator[:time_started] = Time.now.to_i
|
126
129
|
hash_aggregator['processed'] = 1
|
127
|
-
|
130
|
+
@aggregator_mutex.synchronize {aggregator_item['aggregate_fields'][aggregator_hash_key] = hash_aggregator}
|
128
131
|
else
|
129
132
|
aggregator_item['aggregate_fields'][aggregator_hash_key]['processed'] += 1
|
130
133
|
end
|
@@ -249,7 +252,9 @@ module DataOperations
|
|
249
252
|
# @log.debug "interval_aggregator_item_key: #{interval_aggregator_item_key}"
|
250
253
|
|
251
254
|
if interval_aggregator_item_value = group_item_value['intervals'][interval_secs][interval_aggregator_item_key]
|
252
|
-
if
|
255
|
+
if @time_started_mode == :first_event && aggregator_item_value[:time_started] < interval_aggregator_item_value[:time_started]
|
256
|
+
interval_aggregator_item_value[:time_started] = aggregator_item_value[:time_started]
|
257
|
+
elseif @time_started_mode == :last_event && aggregator_item_value[:time_started] > interval_aggregator_item_value[:time_started]
|
253
258
|
interval_aggregator_item_value[:time_started] = aggregator_item_value[:time_started]
|
254
259
|
end
|
255
260
|
interval_aggregator_item_value['processed'] += aggregator_item_value['processed']
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dataoperations-aggregate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Victor Guillen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-05-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: descriptive_statistics
|