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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 641acf44ae266d4790320ae506cc968b20fe9fdcbc63b7fb50b0cb41c13a77b6
4
- data.tar.gz: adeed75be0d03687fa1700e3ee5c8048885a904b0e8ad5667969328e8a4472a0
3
+ metadata.gz: e2cf76bae5e748e46672c8d59f8859358452f2fca813499b148e85dfa61f38c9
4
+ data.tar.gz: 7a9fbbd0115edefa597b9d374407576f4dfedb133da781dffe066c3e4ba6f73a
5
5
  SHA512:
6
- metadata.gz: 3b7f039bc8f7046051a8150576eb6a29ba10edb6287251bd0980a211eecec41b69bcda10dde9cf8d920f5dcf07c7be1752b2b211dda5419f7fd7c5686cfd0195
7
- data.tar.gz: 12f5981b5fc696c4cb0b36a68dd38a5ad814085bf8f3aded30cfb2e2446607f0971a6adc9220cb29f3615ca44a9673c8dcac18f8d825bd1a28755bdb4e92a3cd
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
- @aggregator_mutex.synchronize {@aggregator[hash_group_key] = aggregator_item}
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
- @aggregator_mutex.synchronize {aggregator_item['aggregate_fields'][aggregator_hash_key] = hash_aggregator}
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 interval_aggregator_item_value[:time_started] < aggregator_item_value[:time_started]
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.5
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-04-26 00:00:00.000000000 Z
11
+ date: 2020-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: descriptive_statistics