dataoperations-aggregate 0.0.5 → 0.0.6
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.
- 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
|