moesif_rack 1.4.1 → 1.4.2

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: 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