getaround_utils 0.2.11 → 0.2.13

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: 9c5d5708a53cbea1e3d9ac5a8f955f953174c30f6e2346894e2da2cb02754086
4
- data.tar.gz: c7b4896ff5bebb107944d1143bd01936cc89a1190c88c770d7b03fd6fd404988
3
+ metadata.gz: 51565d059ccaf6283cf55e699ccd205e4f043efd597c093739f45e52fdfba22c
4
+ data.tar.gz: 9f28c08c0f04120166c802c158dc8fa1263a3304e63c1e498d58f1df926987b5
5
5
  SHA512:
6
- metadata.gz: ec6aad3ef2675a176404d6f64c8c66ec5cb0a2386546d3a9e5a03b0648884f144130a58186b81e57d2d3d6dee8fbb22cb0066fd2a201f216a60ace96716aae7e
7
- data.tar.gz: b10937d3b045a8dc8c69df67a2db5658729734615afe90aa9602e7a77c253ef4aac14e552028b221bc9ceeba2ebd9e104d6c12c602d034c492f12737d8c73c7b
6
+ metadata.gz: 384fe8dbcbd3b6fbaea8b093a9217daeaaf3bd2c3432c7bb3bc4e7204055edf75e2b3f0af6926c17328c1f80b0ee054c05b7410f772734a99916cfe3eaf3ac4f
7
+ data.tar.gz: 9040d753022b812502f084dc3c3cef369f6b4ca720123443d95f7c17ee2c2683cdba97505a453c9e584596413f9ba2abd6f052ef6aa4c974e59ef0b779b8c1a3
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- getaround_utils (0.2.11)
4
+ getaround_utils (0.2.13)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -103,7 +103,7 @@ GEM
103
103
  minitest (5.13.0)
104
104
  multipart-post (2.1.1)
105
105
  nio4r (2.5.2)
106
- nokogiri (1.10.5)
106
+ nokogiri (1.10.10)
107
107
  mini_portile2 (~> 2.4.0)
108
108
  oj (3.10.14)
109
109
  ougai (1.8.5)
@@ -115,7 +115,7 @@ GEM
115
115
  coderay (~> 1.1.0)
116
116
  method_source (~> 0.9.0)
117
117
  public_suffix (4.0.2)
118
- rack (2.0.7)
118
+ rack (2.2.3)
119
119
  rack-protection (2.0.7)
120
120
  rack
121
121
  rack-test (1.1.0)
@@ -147,7 +147,7 @@ GEM
147
147
  rake (>= 0.8.7)
148
148
  thor (>= 0.20.3, < 2.0)
149
149
  rainbow (3.0.0)
150
- rake (10.5.0)
150
+ rake (12.3.3)
151
151
  redis (4.1.3)
152
152
  relaxed-rubocop (2.4)
153
153
  request_store (1.4.1)
@@ -209,7 +209,7 @@ GEM
209
209
  hashdiff (>= 0.4.0, < 2.0.0)
210
210
  websocket-driver (0.7.1)
211
211
  websocket-extensions (>= 0.1.0)
212
- websocket-extensions (0.1.4)
212
+ websocket-extensions (0.1.5)
213
213
  zeitwerk (2.2.1)
214
214
 
215
215
  PLATFORMS
@@ -224,7 +224,7 @@ DEPENDENCIES
224
224
  ougai (~> 1.8)
225
225
  pry (~> 0.12.2)
226
226
  rails (~> 6.0)
227
- rake (~> 10.0)
227
+ rake (~> 12.3)
228
228
  request_store_rails (~> 2.0)
229
229
  rspec (~> 3.9, >= 3.9.0)
230
230
  rspec-rails (~> 3.9)
@@ -19,7 +19,7 @@ Gem::Specification.new do |gem|
19
19
  gem.add_development_dependency 'lograge', '~> 0.11.2'
20
20
  gem.add_development_dependency 'pry', '~> 0.12.2'
21
21
  gem.add_development_dependency 'rails', '~> 6.0'
22
- gem.add_development_dependency "rake", "~> 10.0"
22
+ gem.add_development_dependency "rake", "~> 12.3"
23
23
  gem.add_development_dependency 'rspec', '~> 3.9', '>= 3.9.0'
24
24
  gem.add_development_dependency 'rspec-rails', '~> 3.9'
25
25
  gem.add_development_dependency 'rubocop', '~> 0.75', '>= 0.75.0'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rails/railtie'
2
4
  require 'lograge'
3
5
 
@@ -8,13 +10,12 @@ class GetaroundUtils::Railties::Lograge < Rails::Railtie
8
10
  module LogrageActionController
9
11
  def append_info_to_payload(payload)
10
12
  super
11
- payload[:lograge] ||= {}
13
+ payload[:lograge] = {}
12
14
  payload[:lograge][:host] = request.host
13
15
  payload[:lograge][:params] = request.filtered_parameters.except(:action, :controller)
14
16
  payload[:lograge][:remote_ip] = request.remote_ip
15
17
  payload[:lograge][:user_agent] = request.user_agent
16
18
  payload[:lograge][:referer] = request.referer
17
- payload[:lograge][:controller_action] = "#{params[:controller]}##{params[:action]}" if defined?(params)
18
19
  payload[:lograge][:session_id] = session.is_a?(Hash) ? session[:id] : session.id if defined?(session)
19
20
  payload[:lograge][:user_id] = current_user&.id if defined?(current_user)
20
21
  end
@@ -24,6 +25,15 @@ class GetaroundUtils::Railties::Lograge < Rails::Railtie
24
25
  ActionController::Base.prepend LogrageActionController
25
26
  end
26
27
 
28
+ HTTP_PARAMS = [:method, :path, :host, :remote_ip,
29
+ :status, :duration, :location,
30
+ :user_agent, :referer].freeze
31
+
27
32
  config.lograge.enabled = true
28
- config.lograge.custom_options = ->(event) { event.payload[:lograge] }
33
+ config.lograge.custom_options = ->(event) {
34
+ event.payload[:lograge]
35
+ }
36
+ config.lograge.before_format = ->(data, _) {
37
+ data.except(*HTTP_PARAMS).merge(http: data.slice(*HTTP_PARAMS))
38
+ }
29
39
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'getaround_utils/ougai/deep_key_value_formatter'
3
+ require 'getaround_utils/ougai/json_formatter'
4
4
  require 'request_store'
5
5
  require 'rails/railtie'
6
6
  require 'ougai'
@@ -38,7 +38,7 @@ class OugaiRequestStoreMiddleware
38
38
  end
39
39
 
40
40
  def call(env)
41
- RequestStore.store[:ougai] = { request_id: env['action_dispatch.request_id'] }
41
+ RequestStore.store[:ougai] = { http: { request_id: env['action_dispatch.request_id'] } }
42
42
  @app.call(env)
43
43
  end
44
44
  end
@@ -46,10 +46,10 @@ end
46
46
  class GetaroundUtils::Railties::Ougai < Rails::Railtie
47
47
  config.ougai_logger = OugaiRailsLogger.new(STDOUT)
48
48
  config.ougai_logger.after_initialize if Rails::VERSION::MAJOR < 6
49
- config.ougai_logger.formatter = GetaroundUtils::Ougai::DeepKeyValueFormatter.new
49
+ config.ougai_logger.formatter = GetaroundUtils::Ougai::JsonFormatter.new
50
50
  config.ougai_logger.before_log = lambda do |data|
51
51
  request_store = RequestStore.store[:ougai] || {}
52
- data.merge!(request_store) if request_store&.any?
52
+ data.deep_merge!(request_store) if request_store&.any?
53
53
 
54
54
  sidekiq_context = Thread.current[:sidekiq_context] || {}
55
55
  data.merge!(sidekiq: sidekiq_context) if sidekiq_context&.any?
@@ -1,4 +1 @@
1
- require 'getaround_utils/utils/async_queue'
2
1
  require 'getaround_utils/utils/deep_key_value'
3
- require 'getaround_utils/utils/http_reporter'
4
- require 'getaround_utils/utils/captur_reporter'
@@ -1,3 +1,3 @@
1
1
  module GetaroundUtils
2
- VERSION = '0.2.11'.freeze
2
+ VERSION = '0.2.13'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: getaround_utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.11
4
+ version: 0.2.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Drivy
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-09-24 00:00:00.000000000 Z
12
+ date: 2020-11-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -93,14 +93,14 @@ dependencies:
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '10.0'
96
+ version: '12.3'
97
97
  type: :development
98
98
  prerelease: false
99
99
  version_requirements: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '10.0'
103
+ version: '12.3'
104
104
  - !ruby/object:Gem::Dependency
105
105
  name: rspec
106
106
  requirement: !ruby/object:Gem::Requirement
@@ -211,10 +211,7 @@ files:
211
211
  - lib/getaround_utils/railties/lograge.rb
212
212
  - lib/getaround_utils/railties/ougai.rb
213
213
  - lib/getaround_utils/utils.rb
214
- - lib/getaround_utils/utils/async_queue.rb
215
- - lib/getaround_utils/utils/captur_reporter.rb
216
214
  - lib/getaround_utils/utils/deep_key_value.rb
217
- - lib/getaround_utils/utils/http_reporter.rb
218
215
  - lib/getaround_utils/version.rb
219
216
  homepage: https://github.com/drivy
220
217
  licenses:
@@ -1,49 +0,0 @@
1
- module GetaroundUtils; end
2
- module GetaroundUtils::Utils; end
3
-
4
- class GetaroundUtils::Utils::AsyncQueue
5
- include GetaroundUtils::Mixins::Loggable
6
-
7
- MAX_QUEUE_SIZE = 1000
8
- BUFFER_SIZE = 50
9
-
10
- def initialize
11
- @queue = []
12
- @mutex = Mutex.new
13
- @closed = false
14
- @worker = Thread.new(&method(:thread_run))
15
- at_exit { terminate }
16
- end
17
-
18
- def perform
19
- raise NotImplementedError
20
- end
21
-
22
- def push(payload)
23
- @mutex.synchronize do
24
- if @queue.size >= MAX_QUEUE_SIZE
25
- loggable_log(:error, 'queue overflow')
26
- else
27
- @queue.push(payload)
28
- end
29
- end
30
- end
31
-
32
- def thread_run
33
- loop do
34
- buffer = @mutex.synchronize { @queue.shift(BUFFER_SIZE) }
35
- loggable_log(:debug, 'thread_run', buffer_size: buffer.size)
36
- return if @closed && buffer.empty?
37
-
38
- perform(buffer) unless buffer.empty?
39
- sleep(1) unless @mutex.synchronize { @queue.any? }
40
- rescue StandardError => e
41
- loggable_log(:error, e.message, class: e.class.to_s, backtrace: e.backtrace)
42
- end
43
- end
44
-
45
- def terminate
46
- @mutex.synchronize { @closed = true }
47
- @worker&.join
48
- end
49
- end
@@ -1,32 +0,0 @@
1
- require 'json'
2
- require 'faraday'
3
- require 'getaround_utils/utils/async_queue'
4
-
5
- class GetaroundUtils::Utils::CapturReporter < GetaroundUtils::Utils::AsyncQueue
6
- CAPTUR_URL = ENV['CAPTUR_URL']
7
-
8
- def perform(events)
9
- return unless CAPTUR_URL&.match('^https?://')
10
-
11
- Faraday.post(CAPTUR_URL) do |req|
12
- req.options[:open_timeout] = 1
13
- req.options[:timeout] = 1
14
- req.headers = { 'Content-Type': 'application/json' }
15
- req.body = JSON.generate(events: events, metas: metas)
16
- end
17
- end
18
-
19
- def metas
20
- {}
21
- end
22
-
23
- def push(uuid:, type:, anonymous_id:, timestamp: nil, attributes: {})
24
- super(
25
- uuid: uuid,
26
- type: type,
27
- timestamp: timestamp || Time.now.iso8601,
28
- anonymous_id: anonymous_id,
29
- attributes: attributes,
30
- )
31
- end
32
- end
@@ -1,11 +0,0 @@
1
- class GetaroundUtils::Utils::HttpReporter
2
- include GetaroundUtils::Mixins::Loggable
3
-
4
- def initialize(_)
5
- loggable_log(:warn, 'use of deprecated class')
6
- end
7
-
8
- def report(_)
9
- loggable_log(:warn, 'use of deprecated class')
10
- end
11
- end