sentry-rails 6.1.0 → 6.1.1

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: d0b45b14487fb54357f496eea076b669d064b0f38bbd1960014960ecaf9214df
4
- data.tar.gz: 1cd430829a299cdd9b357c940e17aa0c3984e6dc30d5f888f50a28b75accff9c
3
+ metadata.gz: a75df6b4765c66d4c8844187b1cf607e75c8089441e846ecdf6b7bb4fa9e48e4
4
+ data.tar.gz: df1a64e0c65f65600664b2f3259a227debd7d346a0dd5f8ce6497ddbea7b9644
5
5
  SHA512:
6
- metadata.gz: ebba56359ebb4c5ac43076f10b069864a61004ba33ddf893ba2a5eba825f8da1f12d18ad685a900a3b253ee8521566a983e83508809b33e02f2d634ff078f181
7
- data.tar.gz: e01b630f88aa297426743f96635e837d6de0fd888c3dec63b8382affae263c8764f6c92a9972a765d38d5aa8252629c1a568a3edde98e26b3368f530010009f6
6
+ metadata.gz: 46e20af7bc76d8d1b66337c1e25a5fec1eabcae2817960a88d11a76ddea251076f1d39970fefee0b54fb2d80c9f6fec8b1a4b88d299f4a61bdfcf9a0a4cdb1ef
7
+ data.tar.gz: d7637f46e1fb2df9c2d6b5f07bb0c4d075f17ee013979b535d9643354abce15be08eca759851439763e79b747b062ba331a20acd557291ceea54655bdcbec287
@@ -27,6 +27,7 @@ module Sentry
27
27
 
28
28
  def capture_exception(exception, env)
29
29
  # the exception will be swallowed by ShowExceptions middleware
30
+ return unless Sentry.initialized?
30
31
  return if show_exceptions?(exception, env) && !Sentry.configuration.rails.report_rescued_exceptions
31
32
 
32
33
  Sentry::Rails.capture_exception(exception).tap do |event|
@@ -30,6 +30,7 @@ module Sentry
30
30
  # @param event [ActiveSupport::Notifications::Event] The SQL event
31
31
  def sql(event)
32
32
  return unless Sentry.initialized?
33
+ return if logger && !logger.info?
33
34
  return if EXCLUDED_NAMES.include?(event.payload[:name])
34
35
 
35
36
  sql = event.payload[:sql]
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "sentry/rails/tracing/abstract_subscriber"
4
+ require "sentry/backtrace"
4
5
 
5
6
  module Sentry
6
7
  module Rails
@@ -14,9 +15,11 @@ module Sentry
14
15
  SUPPORT_SOURCE_LOCATION = ActiveSupport::BacktraceCleaner.method_defined?(:clean_frame)
15
16
 
16
17
  if SUPPORT_SOURCE_LOCATION
17
- class_attribute :backtrace_cleaner, default: (ActiveSupport::BacktraceCleaner.new.tap do |cleaner|
18
+ backtrace_cleaner = ActiveSupport::BacktraceCleaner.new.tap do |cleaner|
18
19
  cleaner.add_silencer { |line| line.include?("sentry-ruby/lib") || line.include?("sentry-rails/lib") }
19
- end)
20
+ end.method(:clean_frame)
21
+
22
+ class_attribute :backtrace_cleaner, default: backtrace_cleaner
20
23
  end
21
24
 
22
25
  class << self
@@ -62,43 +65,21 @@ module Sentry
62
65
  span.set_data(Span::DataConventions::SERVER_PORT, db_config[:port]) if db_config[:port]
63
66
  span.set_data(Span::DataConventions::SERVER_SOCKET_ADDRESS, db_config[:socket]) if db_config[:socket]
64
67
 
65
- next unless record_query_source
66
-
67
68
  # both duration and query_source_threshold are in ms
68
- next unless duration >= query_source_threshold
69
-
70
- source_location = query_source_location
71
-
72
- if source_location
73
- backtrace_line = Sentry::Backtrace::Line.parse(source_location)
74
-
75
- span.set_data(Span::DataConventions::FILEPATH, backtrace_line.file) if backtrace_line.file
76
- span.set_data(Span::DataConventions::LINENO, backtrace_line.number) if backtrace_line.number
77
- span.set_data(Span::DataConventions::FUNCTION, backtrace_line.method) if backtrace_line.method
78
- # Only JRuby has namespace in the backtrace
79
- span.set_data(Span::DataConventions::NAMESPACE, backtrace_line.module_name) if backtrace_line.module_name
69
+ if record_query_source && duration >= query_source_threshold
70
+ backtrace_line = Backtrace.source_location(&backtrace_cleaner)
71
+
72
+ if backtrace_line
73
+ span.set_data(Span::DataConventions::FILEPATH, backtrace_line.file) if backtrace_line.file
74
+ span.set_data(Span::DataConventions::LINENO, backtrace_line.number) if backtrace_line.number
75
+ span.set_data(Span::DataConventions::FUNCTION, backtrace_line.method) if backtrace_line.method
76
+ # Only JRuby has namespace in the backtrace
77
+ span.set_data(Span::DataConventions::NAMESPACE, backtrace_line.module_name) if backtrace_line.module_name
78
+ end
80
79
  end
81
80
  end
82
81
  end
83
82
  end
84
-
85
- # Thread.each_caller_location is an API added in Ruby 3.2 that doesn't always collect the entire stack like
86
- # Kernel#caller or #caller_locations do. See https://github.com/rails/rails/pull/49095 for more context.
87
- if SUPPORT_SOURCE_LOCATION && Thread.respond_to?(:each_caller_location)
88
- def query_source_location
89
- Thread.each_caller_location do |location|
90
- frame = backtrace_cleaner.clean_frame(location)
91
- return frame if frame
92
- end
93
- nil
94
- end
95
- else
96
- # Since Sentry is mostly used in production, we don't want to fallback to the slower implementation
97
- # and adds potentially big overhead to the application.
98
- def query_source_location
99
- nil
100
- end
101
- end
102
83
  end
103
84
  end
104
85
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Sentry
4
4
  module Rails
5
- VERSION = "6.1.0"
5
+ VERSION = "6.1.1"
6
6
  end
7
7
  end
data/sentry-rails.gemspec CHANGED
@@ -31,5 +31,5 @@ Gem::Specification.new do |spec|
31
31
  spec.require_paths = ["lib"]
32
32
 
33
33
  spec.add_dependency "railties", ">= 5.2.0"
34
- spec.add_dependency "sentry-ruby", "~> 6.1.0"
34
+ spec.add_dependency "sentry-ruby", "~> 6.1.1"
35
35
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sentry-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.1.0
4
+ version: 6.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sentry Team
@@ -29,14 +29,14 @@ dependencies:
29
29
  requirements:
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: 6.1.0
32
+ version: 6.1.1
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: 6.1.0
39
+ version: 6.1.1
40
40
  description: A gem that provides Rails integration for the Sentry error logger
41
41
  email: accounts@sentry.io
42
42
  executables: []
@@ -89,15 +89,15 @@ files:
89
89
  - lib/sentry/rails/tracing/active_support_subscriber.rb
90
90
  - lib/sentry/rails/version.rb
91
91
  - sentry-rails.gemspec
92
- homepage: https://github.com/getsentry/sentry-ruby/tree/6.1.0/sentry-rails
92
+ homepage: https://github.com/getsentry/sentry-ruby/tree/6.1.1/sentry-rails
93
93
  licenses:
94
94
  - MIT
95
95
  metadata:
96
- homepage_uri: https://github.com/getsentry/sentry-ruby/tree/6.1.0/sentry-rails
97
- source_code_uri: https://github.com/getsentry/sentry-ruby/tree/6.1.0/sentry-rails
98
- changelog_uri: https://github.com/getsentry/sentry-ruby/blob/6.1.0/CHANGELOG.md
96
+ homepage_uri: https://github.com/getsentry/sentry-ruby/tree/6.1.1/sentry-rails
97
+ source_code_uri: https://github.com/getsentry/sentry-ruby/tree/6.1.1/sentry-rails
98
+ changelog_uri: https://github.com/getsentry/sentry-ruby/blob/6.1.1/CHANGELOG.md
99
99
  bug_tracker_uri: https://github.com/getsentry/sentry-ruby/issues
100
- documentation_uri: http://www.rubydoc.info/gems/sentry-rails/6.1.0
100
+ documentation_uri: http://www.rubydoc.info/gems/sentry-rails/6.1.1
101
101
  rdoc_options: []
102
102
  require_paths:
103
103
  - lib