moesif_rack 2.2.1 → 2.2.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: 396b06aef61b8c6050b1fa34f6d8646a28556f605b7adb885a6f66f7d2815795
4
- data.tar.gz: 1873d5dd9e5db0f562407cbd9a82420d783d894d7c7c23a6044d30993a7fea92
3
+ metadata.gz: d22e96756a6c9b59c31a4615d96968dd2ab335540396a65389ddda9d8604b8b2
4
+ data.tar.gz: 40e942e0599207bb00917b0894f09f3cd42260bbf1bf3fa8e50c54abde0b57c3
5
5
  SHA512:
6
- metadata.gz: 9e16283ae468998106f1ab4289c234ccfa858c1b76d3a2c0932fa9d1e0e02929276741fd986afae9b63d81a43eac471d119d7d3eec2a2e49ee459f8d8c63eac3
7
- data.tar.gz: 495ebf15c916fe0cf98ca26758e83f53580b74c69cc78e45224a5024b71064f48b011b99b50a26a33f69da4209587d381f080b55ba0069f1daaa434a553f9c75
6
+ metadata.gz: 8fcff7759ab68baa2d7fad3c41e34816da6fb401106ade305e199347293971d52a9be62d52114915e318e46a945060608345bfa85619a1f364680af7211bef4d
7
+ data.tar.gz: f4740cb9b0181e73884d250b6c16bcdc9223366af390ebfb399e6731c4528a8c5d20ddb04c582234d0c7e763d58991c146d6cbf4da5ebe45d8a9ef69b303cd31
@@ -18,7 +18,7 @@ module MoesifRack
18
18
  @app = app
19
19
  raise 'application_id required for Moesif Middleware' unless options['application_id']
20
20
 
21
- @api_client = MoesifApi::MoesifAPIClient.new(options['application_id'], 'moesif-rack/2.2.1')
21
+ @api_client = MoesifApi::MoesifAPIClient.new(options['application_id'], 'moesif-rack/2.2.2')
22
22
  @api_controller = @api_client.api
23
23
 
24
24
  @api_version = options['api_version']
@@ -59,7 +59,7 @@ module MoesifRack
59
59
 
60
60
  @moesif_helpers.log_debug 'Start Capturing outgoing requests'
61
61
  require_relative '../../moesif_capture_outgoing/httplog'
62
- MoesifCaptureOutgoing.start_capture_outgoing(options, @app_config, @events_queue, @moesif_helpers)
62
+ MoesifCaptureOutgoing.start_capture_outgoing(options, @app_config, method(:add_to_queue), @moesif_helpers)
63
63
  end
64
64
 
65
65
  def update_user(user_profile)
@@ -94,12 +94,6 @@ module MoesifRack
94
94
  [Base64.encode64(body), 'base64']
95
95
  end
96
96
 
97
- def @moesif_helpers.log_debug(message)
98
- return unless @debug
99
-
100
- puts("#{Time.now} [Moesif Middleware] PID #{Process.pid} TID #{Thread.current.object_id} #{message}")
101
- end
102
-
103
97
  def parse_body(body, headers)
104
98
  begin
105
99
  if body.instance_of?(Hash) || body.instance_of?(Array)
@@ -124,6 +118,7 @@ module MoesifRack
124
118
  end
125
119
 
126
120
  def start_worker
121
+ @moesif_helpers.log_debug('start worker');
127
122
  Thread.new do
128
123
  loop do
129
124
  # Update the last worker run, in case the events_queue is empty
@@ -163,6 +158,18 @@ module MoesifRack
163
158
  end
164
159
  end
165
160
 
161
+ def add_to_queue(_event_model)
162
+ # Add Event to the queue
163
+ if @events_queue.size >= @event_queue_size
164
+ @moesif_helpers.log_debug("Skipped Event due to events_queue size [#{@events_queue.size}] is over max #{@event_queue_size} ")
165
+ else
166
+ @events_queue << _event_model
167
+ @moesif_helpers.log_debug('Event added to the queue ')
168
+ end
169
+
170
+ start_worker if Time.now.utc > (@last_worker_run + 60)
171
+ end
172
+
166
173
  def call(env)
167
174
  start_time = Time.now.utc.iso8601(3)
168
175
 
@@ -284,10 +291,9 @@ module MoesifRack
284
291
  end
285
292
 
286
293
  process_send = lambda do |_event_model|
287
- @moesif_helpers.log_debug 'sending data to moesif'
294
+ @moesif_helpers.log_debug 'incoming event to add to queue for sending to moesif'
288
295
  @moesif_helpers.log_debug _event_model.to_json
289
296
 
290
- # Perform the API call through the SDK function
291
297
  begin
292
298
  random_percentage = Random.rand(0.00..100.00)
293
299
 
@@ -303,15 +309,7 @@ module MoesifRack
303
309
 
304
310
  if sampling_percentage > random_percentage
305
311
  _event_model.weight = @app_config.calculate_weight(sampling_percentage)
306
- # Add Event to the queue
307
- if @events_queue.size >= @event_queue_size
308
- @moesif_helpers.log_debug("Skipped Event due to events_queue size [#{@events_queue.size}] is over max #{@event_queue_size} ")
309
- else
310
- @events_queue << _event_model
311
- @moesif_helpers.log_debug('Event added to the queue ')
312
- end
313
-
314
- start_worker if Time.now.utc > (@last_worker_run + 60)
312
+ add_to_queue(_event_model)
315
313
  else
316
314
  @moesif_helpers.log_debug('Skipped Event due to sampling percentage: ' + sampling_percentage.to_s + ' and random percentage: ' + random_percentage.to_s)
317
315
  end
@@ -7,7 +7,7 @@ require_relative '../../lib/moesif_rack/app_config'
7
7
 
8
8
  module MoesifCaptureOutgoing
9
9
  class << self
10
- def start_capture_outgoing(options, app_config_manager, events_queue, moesif_helpers)
10
+ def start_capture_outgoing(options, app_config_manager, add_to_queue, moesif_helpers)
11
11
  @moesif_options = options
12
12
  raise 'application_id required for Moesif Middleware' unless @moesif_options['application_id']
13
13
 
@@ -23,9 +23,10 @@ module MoesifCaptureOutgoing
23
23
  @log_body_outgoing = options.fetch('log_body_outgoing', true)
24
24
 
25
25
  @app_config = app_config_manager
26
- # @app_config and @events_queue should be shared instance from the middleware
27
- # so that we can use the same queue and same loaded @app_config
28
- @events_queue = events_queue
26
+ # @app_config is shared instance from the middleware
27
+ # so same loaded @app_config
28
+ # add_to_queue is method from the middleware so that we can add to the same queue
29
+ @add_to_queue = add_to_queue
29
30
  @sampling_percentage = 100
30
31
  @last_updated_time = Time.now.utc
31
32
  @moesif_helpers = moesif_helpers
@@ -51,7 +52,7 @@ module MoesifCaptureOutgoing
51
52
 
52
53
  def send_moesif_event(url, request, request_time, response, response_time, body_from_req_call, req_body_from_stream)
53
54
  if url.downcase.include? 'moesif'
54
- puts 'Skip sending as it is moesif Event' if @debug
55
+ @moesif_helpers.log_debug 'Skip adding to queue as it is moesif Event'
55
56
  else
56
57
  response.code = transform_response_code(response.code) if response.code.is_a?(Symbol)
57
58
 
@@ -173,19 +174,14 @@ module MoesifCaptureOutgoing
173
174
 
174
175
  if @sampling_percentage > @random_percentage
175
176
  event_model.weight = @app_config.calculate_weight(@sampling_percentage)
176
- if @debug
177
- puts 'Sending Outgoing Request Data to Moesif'
178
- puts event_model.to_json
179
- end
180
-
181
- # we put in the queue and format abot it.
182
- unless @events_queue.nil?
183
- @events_queue << event_model
184
- puts('Outgoing Event successfully added to event queue') if @debug
185
- return
186
- end
187
- elsif @debug
188
- puts('Skipped outgoing Event due to sampling percentage: ' + @sampling_percentage.to_s + ' and random percentage: ' + @random_percentage.to_s)
177
+ @moesif_helpers.log_debug 'Adding Outgoing Request Data to Queue'
178
+ @moesif_helpers.log_debug event_model.to_json
179
+ # we put in the queue and forget it.
180
+ @add_to_queue.call(event_model)
181
+ @moesif_helpers.log_debug 'Finished adding outgoing request data to Queue'
182
+
183
+ else
184
+ @moesif_helpers.log_debug('Skipped outgoing Event due to sampling percentage: ' + @sampling_percentage.to_s + ' and random percentage: ' + @random_percentage.to_s)
189
185
  end
190
186
  rescue MoesifApi::APIException => e
191
187
  if e.response_code.between?(401, 403)
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: 2.2.1
4
+ version: 2.2.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: 2023-11-01 00:00:00.000000000 Z
12
+ date: 2023-11-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: test-unit