sentry-rails 4.3.0 → 4.3.4

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: 7f1aafc591c356c77484bf061be1d4f8968588270e083d6ee94ada2f80054282
4
- data.tar.gz: 74e40b15bdc17962037fd2b78b6695de5a405335a186f373c644dcb61b75aab6
3
+ metadata.gz: 48f0349352e2f19b3be18c7ea0e5b7a600ad72d01ed1d2ce4052e55b7df471c3
4
+ data.tar.gz: 7f2c6d5f3e2f2ec40cd797e81856951beced5fde6897cc993dfa8c2046ba7800
5
5
  SHA512:
6
- metadata.gz: 279ad65af3f35928746b8365bc494bf0384fde465414c1211cb565289bb7cbf1157c0649da6c835e4bbb79b928005eebba2805f387a52a57170bba876279b0fb
7
- data.tar.gz: 6bf36d990e2c7f3ab51d8e5bb6bd2ec6873d924f2baa72796145502b2b4f04eea055c8c22a06a6bb8f0cbe92b2c92b15a7e29262f21252fce98be579f7e3fc38
6
+ metadata.gz: 0eef4c4a1a50168a669fdf786f78842ca45c6c0d04e1ec1b9f783ad86f0a70bf94a40b6207ab8334a6cfaec953bdbdbe7dc8f04c3301dbf62a02656ebb0e24b8
7
+ data.tar.gz: c5d28ee621ed6ad90a520a6e5c8fce8047a38907a493c706c5bb9f77304884b70e0564ddc90689214a0e919e6a8f6ea5d3ecbfea44de3c32bf934a74dd9459ec
data/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # Changelog
2
2
 
3
+ ## 4.3.4
4
+
5
+ - Don't assign Rails.logger if it's not present [#1387](https://github.com/getsentry/sentry-ruby/pull/1387)
6
+ - Fixes [#1386](https://github.com/getsentry/sentry-ruby/issues/1386)
7
+
8
+ ## 4.3.3
9
+
10
+ - Correctly set the SDK's logger in sentry-rails [#1363](https://github.com/getsentry/sentry-ruby/pull/1363)
11
+ - Fixes [#1361](https://github.com/getsentry/sentry-ruby/issues/1361)
12
+
13
+ ## 4.3.3-beta.0
14
+
15
+ - Minimize sentry-rails' dependency requirement [#1352](https://github.com/getsentry/sentry-ruby/pull/1352)
16
+
17
+ ## 4.3.2
18
+
19
+ - Avoid recording SendEventJob's transaction [#1351](https://github.com/getsentry/sentry-ruby/pull/1351)
20
+ - Fixes [#1348](https://github.com/getsentry/sentry-ruby/issues/1348)
21
+
22
+ ## 4.3.1
23
+
24
+ - Only apply background worker patch if ActiveRecord is loaded [#1350](https://github.com/getsentry/sentry-ruby/pull/1350)
25
+ - Fixes [#1342](https://github.com/getsentry/sentry-ruby/issues/1342) and [#1346](https://github.com/getsentry/sentry-ruby/issues/1346)
26
+
3
27
  ## 4.3.0
4
28
 
5
29
  ### Features
data/Gemfile CHANGED
@@ -17,11 +17,13 @@ end
17
17
 
18
18
  gem "rails", "~> #{rails_version}"
19
19
  gem "sprockets-rails"
20
+
21
+ gem "rspec", "~> 3.0"
22
+ gem "rspec-retry"
20
23
  gem "rspec-rails", "~> 4.0"
21
24
  gem "codecov", "0.2.12"
22
25
 
23
26
  gem "rake", "~> 12.0"
24
- gem "rspec", "~> 3.0"
25
27
 
26
28
  # TODO: Remove this if https://github.com/jruby/jruby/issues/6547 is addressed
27
29
  gem "i18n", "<= 1.8.7"
@@ -22,6 +22,11 @@ if defined?(ActiveJob)
22
22
  end
23
23
 
24
24
  def perform(event, hint = {})
25
+ # users don't need the tracing result of this job
26
+ if transaction = Sentry.get_current_scope.span
27
+ transaction.instance_variable_set(:@sampled, false)
28
+ end
29
+
25
30
  Sentry.send_event(event, hint)
26
31
  end
27
32
  end
data/lib/sentry/rails.rb CHANGED
@@ -1,6 +1,6 @@
1
+ require "rails"
1
2
  require "sentry-ruby"
2
3
  require "sentry/integrable"
3
- require "sentry/rails/background_worker"
4
4
  require "sentry/rails/configuration"
5
5
  require "sentry/rails/engine"
6
6
  require "sentry/rails/railtie"
@@ -1,7 +1,5 @@
1
1
  module Sentry
2
2
  class BackgroundWorker
3
- alias_method :original_perform, :perform
4
-
5
3
  def perform(&block)
6
4
  @executor.post do
7
5
  # make sure the background worker returns AR connection if it accidentally acquire one during serialization
@@ -5,6 +5,17 @@ module Sentry
5
5
  add_post_initialization_callback do
6
6
  @rails = Sentry::Rails::Configuration.new
7
7
  @excluded_exceptions = @excluded_exceptions.concat(Sentry::Rails::IGNORE_DEFAULT)
8
+
9
+ if ::Rails.logger
10
+ @logger = ::Rails.logger
11
+ else
12
+ @logger.warn(Sentry::LOGGER_PROGNAME) do
13
+ <<~MSG
14
+ sentry-rails can't detect Rails.logger. it may be caused by misplacement of the SDK initialization code
15
+ please make sure you place the Sentry.init block under the `config/initializers` folder, e.g. `config/initializers/sentry.rb`
16
+ MSG
17
+ end
18
+ end
8
19
  end
9
20
  end
10
21
 
@@ -1,11 +1,6 @@
1
- require "rails"
2
1
  require "sentry/rails/capture_exceptions"
3
2
  require "sentry/rails/rescued_exception_interceptor"
4
3
  require "sentry/rails/backtrace_cleaner"
5
- require "sentry/rails/controller_methods"
6
- require "sentry/rails/controller_transaction"
7
- require "sentry/rails/overrides/streaming_reporter"
8
- require "sentry/rails/overrides/file_handler"
9
4
 
10
5
  module Sentry
11
6
  class Railtie < ::Rails::Railtie
@@ -21,12 +16,12 @@ module Sentry
21
16
  next unless Sentry.initialized?
22
17
 
23
18
  configure_project_root
24
- configure_sentry_logger
25
19
  configure_trusted_proxies
26
- extend_controller_methods
20
+ extend_controller_methods if defined?(ActionController)
27
21
  extend_active_job if defined?(ActiveJob)
28
- override_streaming_reporter
29
- override_file_handler if app.config.public_file_server.enabled
22
+ patch_background_worker if defined?(ActiveRecord)
23
+ override_streaming_reporter if defined?(ActionView)
24
+ override_file_handler if defined?(ActionDispatch) && app.config.public_file_server.enabled
30
25
  setup_backtrace_cleanup_callback
31
26
  inject_breadcrumbs_logger
32
27
  activate_tracing
@@ -36,10 +31,6 @@ module Sentry
36
31
  Sentry.configuration.project_root = ::Rails.root.to_s
37
32
  end
38
33
 
39
- def configure_sentry_logger
40
- Sentry.configuration.logger = ::Rails.logger
41
- end
42
-
43
34
  def configure_trusted_proxies
44
35
  Sentry.configuration.trusted_proxies += Array(::Rails.application.config.action_dispatch.trusted_proxies)
45
36
  end
@@ -50,6 +41,10 @@ module Sentry
50
41
  end
51
42
 
52
43
  def extend_controller_methods
44
+ require "sentry/rails/controller_methods"
45
+ require "sentry/rails/controller_transaction"
46
+ require "sentry/rails/overrides/streaming_reporter"
47
+
53
48
  ActiveSupport.on_load :action_controller do
54
49
  include Sentry::Rails::ControllerMethods
55
50
  include Sentry::Rails::ControllerTransaction
@@ -57,6 +52,10 @@ module Sentry
57
52
  end
58
53
  end
59
54
 
55
+ def patch_background_worker
56
+ require "sentry/rails/background_worker"
57
+ end
58
+
60
59
  def inject_breadcrumbs_logger
61
60
  if Sentry.configuration.breadcrumbs_logger.include?(:active_support_logger)
62
61
  require 'sentry/rails/breadcrumb/active_support_logger'
@@ -73,12 +72,16 @@ module Sentry
73
72
  end
74
73
 
75
74
  def override_streaming_reporter
75
+ require "sentry/rails/overrides/streaming_reporter"
76
+
76
77
  ActiveSupport.on_load :action_view do
77
78
  ActionView::StreamingTemplateRenderer::Body.send(:prepend, Sentry::Rails::Overrides::StreamingReporter)
78
79
  end
79
80
  end
80
81
 
81
82
  def override_file_handler
83
+ require "sentry/rails/overrides/file_handler"
84
+
82
85
  ActiveSupport.on_load :action_controller do
83
86
  ActionDispatch::FileHandler.send(:prepend, Sentry::Rails::Overrides::FileHandler)
84
87
  end
@@ -1,5 +1,5 @@
1
1
  module Sentry
2
2
  module Rails
3
- VERSION = "4.3.0"
3
+ VERSION = "4.3.4"
4
4
  end
5
5
  end
data/sentry-rails.gemspec CHANGED
@@ -22,6 +22,6 @@ Gem::Specification.new do |spec|
22
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
23
  spec.require_paths = ["lib"]
24
24
 
25
- spec.add_dependency "rails", ">= 5.0"
25
+ spec.add_dependency "railties", ">= 5.0"
26
26
  spec.add_dependency "sentry-ruby-core", "~> 4.3.0"
27
27
  end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sentry-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.3.0
4
+ version: 4.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sentry Team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-03-12 00:00:00.000000000 Z
11
+ date: 2021-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: railties
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
@@ -103,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
103
  - !ruby/object:Gem::Version
104
104
  version: '0'
105
105
  requirements: []
106
- rubygems_version: 3.0.3
106
+ rubygems_version: 3.0.3.1
107
107
  signing_key:
108
108
  specification_version: 4
109
109
  summary: A gem that provides Rails integration for the Sentry error logger