moesif_rack 1.4.1 → 1.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0cc9c9466e539ecf7d672312b98ed2f228a6b850f7c7e315559f80e31ee937a7
4
- data.tar.gz: ba2f944d8f3f19cb451c64113412780cd8141359f6473992b603fe9eddf43bac
3
+ metadata.gz: 9d8635baa7838edc611616b3fcd19d30c6a8c9034f985b1a48df744eae3fc252
4
+ data.tar.gz: bf138ca57419057dafdc088f076e3b632a623cd5d268012e6e67a9ce60372ea9
5
5
  SHA512:
6
- metadata.gz: ecac64d6a6f05a347ccb9927630e3a48eda1ad75ec65d32dc23742483f311fa55b8a5d6720bfda6e7bff49146852410c80b4d6a4cae8b17917f16a4458630523
7
- data.tar.gz: 630eb05009f358ee214a61e386f0e933222ebeced3ea38e158d70e3f1629351ef52ff885736f2dfb4e49dd41f8c6271ca8ca2731b17cfc363d46c52ab423b375
6
+ metadata.gz: 25e43ffa1f612ed39c3ddcee9a55b29ff8f81ed0f9e7d36651d605232aec4ef3ba55cf2e072bd99e72ce46fccc565591872bb58ddd982d65da86a7305f0f4784
7
+ data.tar.gz: '095a38e7f8dc9e4ba2fbf9ffd40dfd2ac01fcd72b5475915266274a807c53b70054f823109648e73319557efc07c61ddfb95f99a5d4586855b3db1f0fed7573a'
data/README.md CHANGED
@@ -22,7 +22,7 @@ gem install moesif_rack
22
22
  and if you have a `Gemfile` in your project, please add this line to
23
23
 
24
24
  ```
25
- gem 'moesif_rack', '~> 1.4.1'
25
+ gem 'moesif_rack', '~> 1.4.2'
26
26
 
27
27
  ```
28
28
 
@@ -36,6 +36,45 @@ module MoesifRack
36
36
  @config_dict = Hash.new
37
37
  @disable_transaction_id = options['disable_transaction_id'] || false
38
38
  @log_body = options.fetch('log_body', true)
39
+ @batch_size = options['batch_size'] || 25
40
+ @events_queue = Queue.new
41
+ @event_response_config_etag = nil
42
+
43
+ Thread::new do
44
+ loop do
45
+ begin
46
+ until @events_queue.empty? do
47
+ batch_events = []
48
+ until batch_events.size == @batch_size || @events_queue.empty? do
49
+ batch_events << @events_queue.pop
50
+ end
51
+ event_api_response = @api_controller.create_events_batch(batch_events)
52
+ @event_response_config_etag = event_api_response[:x_moesif_config_etag]
53
+ if @debug
54
+ puts("Events successfully sent to Moesif")
55
+ end
56
+ end
57
+
58
+ if @events_queue.empty?
59
+ if @debug
60
+ puts("No events to read from the queue")
61
+ end
62
+ end
63
+
64
+ # Sleep for 5 seconds
65
+ sleep 5
66
+ rescue MoesifApi::APIException => e
67
+ if e.response_code.between?(401, 403)
68
+ puts "Unathorized accesss sending event to Moesif. Please verify your Application Id."
69
+ end
70
+ if @debug
71
+ puts "Error sending event to Moesif, with status code: "
72
+ puts e.response_code
73
+ end
74
+ end
75
+ end
76
+ end
77
+
39
78
  begin
40
79
  if !@config.nil?
41
80
  @config_etag, @sampling_percentage, @last_updated_time = @app_config.parse_configuration(@config, @debug)
@@ -259,10 +298,13 @@ module MoesifRack
259
298
 
260
299
  if @sampling_percentage > @random_percentage
261
300
  event_model.weight = @app_config.calculate_weight(@sampling_percentage)
262
- event_api_response = @api_controller.create_event(event_model)
263
- event_response_config_etag = event_api_response[:x_moesif_config_etag]
301
+ # Add Event to the queue
302
+ @events_queue << event_model
303
+ if @debug
304
+ puts("Event added to the queue ")
305
+ end
264
306
 
265
- if !event_response_config_etag.nil? && !@config_etag.nil? && @config_etag != event_response_config_etag && Time.now.utc > @last_updated_time + 300
307
+ if !@event_response_config_etag.nil? && !@config_etag.nil? && @config_etag != @event_response_config_etag && Time.now.utc > @last_updated_time + 300
266
308
  begin
267
309
  @config = @app_config.get_config(@api_controller, @debug)
268
310
  @config_etag, @sampling_percentage, @last_updated_time = @app_config.parse_configuration(@config, @debug)
@@ -273,21 +315,15 @@ module MoesifRack
273
315
  end
274
316
  end
275
317
  end
276
- if @debug
277
- puts("Event successfully sent to Moesif")
278
- end
279
318
  else
280
319
  if @debug
281
320
  puts("Skipped Event due to sampling percentage: " + @sampling_percentage.to_s + " and random percentage: " + @random_percentage.to_s)
282
321
  end
283
322
  end
284
- rescue MoesifApi::APIException => e
285
- if e.response_code.between?(401, 403)
286
- puts "Unathorized accesss sending event to Moesif. Please verify your Application Id."
287
- end
323
+ rescue => exception
288
324
  if @debug
289
- puts "Error sending event to Moesif, with status code: "
290
- puts e.response_code
325
+ puts "Error adding event to the queue "
326
+ puts exception.to_s
291
327
  end
292
328
  end
293
329
 
@@ -108,6 +108,8 @@ class MoesifRackTest < Test::Unit::TestCase
108
108
 
109
109
  def test_log_event
110
110
  response = @moesif_rack_app.call(Rack::MockRequest.env_for("https://acmeinc.com/items/42752/reviews"))
111
+ # Sleep to allow queue to flush for testing purpose
112
+ sleep 5
111
113
  assert_equal response, @app.call(nil)
112
114
  end
113
115
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moesif_rack
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 1.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Moesif, Inc
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-05-11 00:00:00.000000000 Z
12
+ date: 2020-05-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: test-unit
@@ -31,14 +31,14 @@ dependencies:
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: 1.2.11
34
+ version: 1.2.12
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: 1.2.11
41
+ version: 1.2.12
42
42
  description: Collection/Data Ingestion SDK for Rack (also Rails) Middleware / RoR
43
43
  email: xing@moesif.com
44
44
  executables: []
@@ -76,8 +76,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0'
78
78
  requirements: []
79
- rubyforge_project:
80
- rubygems_version: 2.7.7
79
+ rubygems_version: 3.0.4
81
80
  signing_key:
82
81
  specification_version: 4
83
82
  summary: moesif_rack