sentry-rails 5.10.0 → 5.17.3
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 +4 -4
- data/.gitignore +1 -1
- data/Gemfile +14 -18
- data/README.md +1 -1
- data/Rakefile +1 -1
- data/app/jobs/sentry/send_event_job.rb +0 -1
- data/lib/sentry/rails/action_cable.rb +1 -4
- data/lib/sentry/rails/breadcrumb/active_support_logger.rb +4 -64
- data/lib/sentry/rails/capture_exceptions.rb +1 -4
- data/lib/sentry/rails/configuration.rb +74 -3
- data/lib/sentry/rails/error_subscriber.rb +7 -1
- data/lib/sentry/rails/railtie.rb +7 -1
- data/lib/sentry/rails/tracing/abstract_subscriber.rb +0 -1
- data/lib/sentry/rails/tracing/active_record_subscriber.rb +26 -1
- data/lib/sentry/rails/tracing/active_storage_subscriber.rb +2 -2
- data/lib/sentry/rails/version.rb +1 -1
- data/sentry-rails.gemspec +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d004cdd6b80d76424d8684494a6a0565b5f5440ada51a6878280baa0a0c174e7
|
4
|
+
data.tar.gz: 747ed1691526ff296e90d697ab61bf6f6abfe5c63687904f7a1a12afa9a833d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dec86deec8fd26222ddc97c7568d471bdea6c75caaae49b4793f37e5235d81537b026e336136ad3b734101b15f16ebeeeb546d99c6255a4a93ed305ef758be74
|
7
|
+
data.tar.gz: b0ff142977ad7ece0e73a40cd3f434a2bb967efb6cc2040e5feb9448cf3963acfa535efb14d095efaf2f235923c3780f2f1a532cb9287344774e33b955618263
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
@@ -11,19 +11,23 @@ platform :jruby do
|
|
11
11
|
end
|
12
12
|
|
13
13
|
rails_version = ENV["RAILS_VERSION"]
|
14
|
-
rails_version = "7.
|
14
|
+
rails_version = "7.1.0" if rails_version.nil?
|
15
15
|
rails_version = Gem::Version.new(rails_version)
|
16
16
|
|
17
17
|
if rails_version < Gem::Version.new("6.0.0")
|
18
18
|
gem "sqlite3", "~> 1.3.0", platform: :ruby
|
19
19
|
else
|
20
|
-
|
20
|
+
# 1.7.0 dropped support for ruby < 3.0, remove later after upgrading craft setup
|
21
|
+
gem "sqlite3", "1.6.9", platform: :ruby
|
21
22
|
end
|
22
23
|
|
23
|
-
if rails_version
|
24
|
+
if rails_version >= Gem::Version.new("7.2.0.alpha")
|
24
25
|
gem "rails", github: "rails/rails"
|
26
|
+
elsif rails_version >= Gem::Version.new("7.1.0")
|
27
|
+
gem "rails", "~> #{rails_version}"
|
25
28
|
else
|
26
29
|
gem "rails", "~> #{rails_version}"
|
30
|
+
gem "psych", "~> 3.0.0"
|
27
31
|
end
|
28
32
|
|
29
33
|
gem "mini_magick"
|
@@ -32,27 +36,19 @@ gem "sprockets-rails"
|
|
32
36
|
|
33
37
|
gem "sidekiq"
|
34
38
|
|
35
|
-
gem "rspec", "~> 3.0"
|
36
|
-
gem "rspec-retry"
|
37
39
|
gem "rspec-rails", "~> 4.0"
|
38
|
-
gem 'simplecov'
|
39
|
-
gem "simplecov-cobertura", "~> 1.4"
|
40
|
-
gem "rexml"
|
41
|
-
|
42
|
-
# https://github.com/flavorjones/loofah/pull/267
|
43
|
-
# loofah changed the required ruby version in a patch so we need to explicitly pin it
|
44
|
-
gem "loofah", "2.20.0" if RUBY_VERSION.to_f < 2.5
|
45
40
|
|
46
|
-
|
41
|
+
ruby_version = Gem::Version.new(RUBY_VERSION)
|
47
42
|
|
48
|
-
if
|
49
|
-
|
50
|
-
|
43
|
+
if ruby_version < Gem::Version.new("2.5.0")
|
44
|
+
# https://github.com/flavorjones/loofah/pull/267
|
45
|
+
# loofah changed the required ruby version in a patch so we need to explicitly pin it
|
46
|
+
gem "loofah", "2.20.0"
|
51
47
|
end
|
52
48
|
|
53
|
-
gem "pry"
|
54
|
-
|
55
49
|
gem "benchmark-ips"
|
56
50
|
gem "benchmark_driver"
|
57
51
|
gem "benchmark-ipsa"
|
58
52
|
gem "benchmark-memory"
|
53
|
+
|
54
|
+
eval_gemfile File.expand_path("../Gemfile", __dir__)
|
data/README.md
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
|
12
12
|
|
13
13
|
[](https://rubygems.org/gems/sentry-rails)
|
14
|
-

|
15
15
|
[](https://codecov.io/gh/getsentry/sentry-ruby/branch/master)
|
16
16
|
[](https://rubygems.org/gems/sentry-rails/)
|
17
17
|
[](https://dependabot.com/compatibility-score.html?dependency-name=sentry-rails&package-manager=bundler&version-scheme=semver)
|
data/Rakefile
CHANGED
@@ -33,11 +33,8 @@ module Sentry
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def start_transaction(env, scope)
|
36
|
-
sentry_trace = env["HTTP_SENTRY_TRACE"]
|
37
|
-
baggage = env["HTTP_BAGGAGE"]
|
38
|
-
|
39
36
|
options = { name: scope.transaction_name, source: scope.transaction_source, op: OP_NAME }
|
40
|
-
transaction = Sentry
|
37
|
+
transaction = Sentry.continue_trace(env, **options)
|
41
38
|
Sentry.start_transaction(transaction: transaction, **options)
|
42
39
|
end
|
43
40
|
|
@@ -2,75 +2,13 @@ module Sentry
|
|
2
2
|
module Rails
|
3
3
|
module Breadcrumb
|
4
4
|
module ActiveSupportLogger
|
5
|
-
ALLOWED_LIST = {
|
6
|
-
# action_controller
|
7
|
-
"write_fragment.action_controller" => %i[key],
|
8
|
-
"read_fragment.action_controller" => %i[key],
|
9
|
-
"exist_fragment?.action_controller" => %i[key],
|
10
|
-
"expire_fragment.action_controller" => %i[key],
|
11
|
-
"start_processing.action_controller" => %i[controller action params format method path],
|
12
|
-
"process_action.action_controller" => %i[controller action params format method path status view_runtime db_runtime],
|
13
|
-
"send_file.action_controller" => %i[path],
|
14
|
-
"redirect_to.action_controller" => %i[status location],
|
15
|
-
"halted_callback.action_controller" => %i[filter],
|
16
|
-
# action_dispatch
|
17
|
-
"process_middleware.action_dispatch" => %i[middleware],
|
18
|
-
# action_view
|
19
|
-
"render_template.action_view" => %i[identifier layout],
|
20
|
-
"render_partial.action_view" => %i[identifier],
|
21
|
-
"render_collection.action_view" => %i[identifier count cache_hits],
|
22
|
-
"render_layout.action_view" => %i[identifier],
|
23
|
-
# active_record
|
24
|
-
"sql.active_record" => %i[sql name statement_name cached],
|
25
|
-
"instantiation.active_record" => %i[record_count class_name],
|
26
|
-
# action_mailer
|
27
|
-
# not including to, from, or subject..etc. because of PII concern
|
28
|
-
"deliver.action_mailer" => %i[mailer date perform_deliveries],
|
29
|
-
"process.action_mailer" => %i[mailer action params],
|
30
|
-
# active_support
|
31
|
-
"cache_read.active_support" => %i[key store hit],
|
32
|
-
"cache_generate.active_support" => %i[key store],
|
33
|
-
"cache_fetch_hit.active_support" => %i[key store],
|
34
|
-
"cache_write.active_support" => %i[key store],
|
35
|
-
"cache_delete.active_support" => %i[key store],
|
36
|
-
"cache_exist?.active_support" => %i[key store],
|
37
|
-
# active_job
|
38
|
-
"enqueue_at.active_job" => %i[],
|
39
|
-
"enqueue.active_job" => %i[],
|
40
|
-
"enqueue_retry.active_job" => %i[],
|
41
|
-
"perform_start.active_job" => %i[],
|
42
|
-
"perform.active_job" => %i[],
|
43
|
-
"retry_stopped.active_job" => %i[],
|
44
|
-
"discard.active_job" => %i[],
|
45
|
-
# action_cable
|
46
|
-
"perform_action.action_cable" => %i[channel_class action],
|
47
|
-
"transmit.action_cable" => %i[channel_class],
|
48
|
-
"transmit_subscription_confirmation.action_cable" => %i[channel_class],
|
49
|
-
"transmit_subscription_rejection.action_cable" => %i[channel_class],
|
50
|
-
"broadcast.action_cable" => %i[broadcasting],
|
51
|
-
# active_storage
|
52
|
-
"service_upload.active_storage" => %i[service key checksum],
|
53
|
-
"service_streaming_download.active_storage" => %i[service key],
|
54
|
-
"service_download_chunk.active_storage" => %i[service key],
|
55
|
-
"service_download.active_storage" => %i[service key],
|
56
|
-
"service_delete.active_storage" => %i[service key],
|
57
|
-
"service_delete_prefixed.active_storage" => %i[service prefix],
|
58
|
-
"service_exist.active_storage" => %i[service key exist],
|
59
|
-
"service_url.active_storage" => %i[service key url],
|
60
|
-
"service_update_metadata.active_storage" => %i[service key],
|
61
|
-
"preview.active_storage" => %i[key],
|
62
|
-
"analyze.active_storage" => %i[analyzer],
|
63
|
-
}.freeze
|
64
|
-
|
65
5
|
class << self
|
66
6
|
def add(name, started, _finished, _unique_id, data)
|
67
7
|
# skip Rails' internal events
|
68
8
|
return if name.start_with?("!")
|
69
9
|
|
70
|
-
allowed_keys = ALLOWED_LIST[name]
|
71
|
-
|
72
10
|
if data.is_a?(Hash)
|
73
|
-
data = data.slice(
|
11
|
+
data = data.slice(*@allowed_keys[name])
|
74
12
|
end
|
75
13
|
|
76
14
|
crumb = Sentry::Breadcrumb.new(
|
@@ -81,7 +19,9 @@ module Sentry
|
|
81
19
|
Sentry.add_breadcrumb(crumb)
|
82
20
|
end
|
83
21
|
|
84
|
-
def inject
|
22
|
+
def inject(allowed_keys)
|
23
|
+
@allowed_keys = allowed_keys
|
24
|
+
|
85
25
|
@subscriber = ::ActiveSupport::Notifications.subscribe(/.*/) do |name, started, finished, unique_id, data|
|
86
26
|
# we only record events that has a started timestamp
|
87
27
|
if started.is_a?(Time)
|
@@ -32,16 +32,13 @@ module Sentry
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def start_transaction(env, scope)
|
35
|
-
sentry_trace = env["HTTP_SENTRY_TRACE"]
|
36
|
-
baggage = env["HTTP_BAGGAGE"]
|
37
|
-
|
38
35
|
options = { name: scope.transaction_name, source: scope.transaction_source, op: transaction_op }
|
39
36
|
|
40
37
|
if @assets_regexp && scope.transaction_name.match?(@assets_regexp)
|
41
38
|
options.merge!(sampled: false)
|
42
39
|
end
|
43
40
|
|
44
|
-
transaction = Sentry
|
41
|
+
transaction = Sentry.continue_trace(env, **options)
|
45
42
|
Sentry.start_transaction(transaction: transaction, custom_sampling_context: { env: env }, **options)
|
46
43
|
end
|
47
44
|
|
@@ -12,7 +12,12 @@ module Sentry
|
|
12
12
|
@excluded_exceptions = @excluded_exceptions.concat(Sentry::Rails::IGNORE_DEFAULT)
|
13
13
|
|
14
14
|
if ::Rails.logger
|
15
|
-
|
15
|
+
if defined?(::ActiveSupport::BroadcastLogger) && ::Rails.logger.is_a?(::ActiveSupport::BroadcastLogger)
|
16
|
+
dupped_broadcasts = ::Rails.logger.broadcasts.map(&:dup)
|
17
|
+
@logger = ::ActiveSupport::BroadcastLogger.new(*dupped_broadcasts)
|
18
|
+
else
|
19
|
+
@logger = ::Rails.logger.dup
|
20
|
+
end
|
16
21
|
else
|
17
22
|
@logger.warn(Sentry::LOGGER_PROGNAME) do
|
18
23
|
<<~MSG
|
@@ -41,6 +46,67 @@ module Sentry
|
|
41
46
|
'ActionDispatch::Http::Parameters::ParseError',
|
42
47
|
'ActiveRecord::RecordNotFound'
|
43
48
|
].freeze
|
49
|
+
|
50
|
+
ACTIVE_SUPPORT_LOGGER_SUBSCRIPTION_ITEMS_DEFAULT = {
|
51
|
+
# action_controller
|
52
|
+
"write_fragment.action_controller" => %i[key],
|
53
|
+
"read_fragment.action_controller" => %i[key],
|
54
|
+
"exist_fragment?.action_controller" => %i[key],
|
55
|
+
"expire_fragment.action_controller" => %i[key],
|
56
|
+
"start_processing.action_controller" => %i[controller action params format method path],
|
57
|
+
"process_action.action_controller" => %i[controller action params format method path status view_runtime db_runtime],
|
58
|
+
"send_file.action_controller" => %i[path],
|
59
|
+
"redirect_to.action_controller" => %i[status location],
|
60
|
+
"halted_callback.action_controller" => %i[filter],
|
61
|
+
# action_dispatch
|
62
|
+
"process_middleware.action_dispatch" => %i[middleware],
|
63
|
+
# action_view
|
64
|
+
"render_template.action_view" => %i[identifier layout],
|
65
|
+
"render_partial.action_view" => %i[identifier],
|
66
|
+
"render_collection.action_view" => %i[identifier count cache_hits],
|
67
|
+
"render_layout.action_view" => %i[identifier],
|
68
|
+
# active_record
|
69
|
+
"sql.active_record" => %i[sql name statement_name cached],
|
70
|
+
"instantiation.active_record" => %i[record_count class_name],
|
71
|
+
# action_mailer
|
72
|
+
# not including to, from, or subject..etc. because of PII concern
|
73
|
+
"deliver.action_mailer" => %i[mailer date perform_deliveries],
|
74
|
+
"process.action_mailer" => %i[mailer action params],
|
75
|
+
# active_support
|
76
|
+
"cache_read.active_support" => %i[key store hit],
|
77
|
+
"cache_generate.active_support" => %i[key store],
|
78
|
+
"cache_fetch_hit.active_support" => %i[key store],
|
79
|
+
"cache_write.active_support" => %i[key store],
|
80
|
+
"cache_delete.active_support" => %i[key store],
|
81
|
+
"cache_exist?.active_support" => %i[key store],
|
82
|
+
# active_job
|
83
|
+
"enqueue_at.active_job" => %i[],
|
84
|
+
"enqueue.active_job" => %i[],
|
85
|
+
"enqueue_retry.active_job" => %i[],
|
86
|
+
"perform_start.active_job" => %i[],
|
87
|
+
"perform.active_job" => %i[],
|
88
|
+
"retry_stopped.active_job" => %i[],
|
89
|
+
"discard.active_job" => %i[],
|
90
|
+
# action_cable
|
91
|
+
"perform_action.action_cable" => %i[channel_class action],
|
92
|
+
"transmit.action_cable" => %i[channel_class],
|
93
|
+
"transmit_subscription_confirmation.action_cable" => %i[channel_class],
|
94
|
+
"transmit_subscription_rejection.action_cable" => %i[channel_class],
|
95
|
+
"broadcast.action_cable" => %i[broadcasting],
|
96
|
+
# active_storage
|
97
|
+
"service_upload.active_storage" => %i[service key checksum],
|
98
|
+
"service_streaming_download.active_storage" => %i[service key],
|
99
|
+
"service_download_chunk.active_storage" => %i[service key],
|
100
|
+
"service_download.active_storage" => %i[service key],
|
101
|
+
"service_delete.active_storage" => %i[service key],
|
102
|
+
"service_delete_prefixed.active_storage" => %i[service prefix],
|
103
|
+
"service_exist.active_storage" => %i[service key exist],
|
104
|
+
"service_url.active_storage" => %i[service key url],
|
105
|
+
"service_update_metadata.active_storage" => %i[service key],
|
106
|
+
"preview.active_storage" => %i[key],
|
107
|
+
"analyze.active_storage" => %i[analyzer]
|
108
|
+
}.freeze
|
109
|
+
|
44
110
|
class Configuration
|
45
111
|
# Rails 7.0 introduced a new error reporter feature, which the SDK once opted-in by default.
|
46
112
|
# But after receiving multiple issue reports, the integration seemed to cause serious troubles to some users.
|
@@ -50,8 +116,8 @@ module Sentry
|
|
50
116
|
|
51
117
|
# Rails catches exceptions in the ActionDispatch::ShowExceptions or
|
52
118
|
# ActionDispatch::DebugExceptions middlewares, depending on the environment.
|
53
|
-
# When `
|
54
|
-
#
|
119
|
+
# When `report_rescued_exceptions` is true (it is by default), Sentry will
|
120
|
+
# report exceptions even when they are rescued by these middlewares.
|
55
121
|
attr_accessor :report_rescued_exceptions
|
56
122
|
|
57
123
|
# Some adapters, like sidekiq, already have their own sentry integration.
|
@@ -75,6 +141,10 @@ module Sentry
|
|
75
141
|
# ```
|
76
142
|
attr_accessor :assets_regexp
|
77
143
|
|
144
|
+
# Hash of subscription items that will be shown in breadcrumbs active support logger.
|
145
|
+
# @return [Hash<String, Array<Symbol>>]
|
146
|
+
attr_accessor :active_support_logger_subscription_items
|
147
|
+
|
78
148
|
def initialize
|
79
149
|
@register_error_subscriber = false
|
80
150
|
@report_rescued_exceptions = true
|
@@ -87,6 +157,7 @@ module Sentry
|
|
87
157
|
Sentry::Rails::Tracing::ActiveRecordSubscriber,
|
88
158
|
Sentry::Rails::Tracing::ActiveStorageSubscriber
|
89
159
|
])
|
160
|
+
@active_support_logger_subscription_items = Sentry::Rails::ACTIVE_SUPPORT_LOGGER_SUBSCRIPTION_ITEMS_DEFAULT.dup
|
90
161
|
end
|
91
162
|
end
|
92
163
|
end
|
@@ -19,7 +19,13 @@ module Sentry
|
|
19
19
|
tags.merge!(context.delete(:tags))
|
20
20
|
end
|
21
21
|
|
22
|
-
|
22
|
+
hint = {}
|
23
|
+
if context[:hint].is_a?(Hash)
|
24
|
+
context = context.dup
|
25
|
+
hint.merge!(context.delete(:hint))
|
26
|
+
end
|
27
|
+
|
28
|
+
Sentry::Rails.capture_exception(error, level: severity, contexts: { "rails.error" => context }, tags: tags, hint: hint)
|
23
29
|
end
|
24
30
|
end
|
25
31
|
end
|
data/lib/sentry/rails/railtie.rb
CHANGED
@@ -40,6 +40,7 @@ module Sentry
|
|
40
40
|
|
41
41
|
configure_project_root
|
42
42
|
configure_trusted_proxies
|
43
|
+
configure_cron_timezone
|
43
44
|
extend_controller_methods if defined?(ActionController)
|
44
45
|
patch_background_worker if defined?(ActiveRecord)
|
45
46
|
override_streaming_reporter if defined?(ActionView)
|
@@ -70,6 +71,11 @@ module Sentry
|
|
70
71
|
Sentry.configuration.trusted_proxies += Array(::Rails.application.config.action_dispatch.trusted_proxies)
|
71
72
|
end
|
72
73
|
|
74
|
+
def configure_cron_timezone
|
75
|
+
tz_info = ::ActiveSupport::TimeZone.find_tzinfo(::Rails.application.config.time_zone)
|
76
|
+
Sentry.configuration.cron.default_timezone = tz_info.name
|
77
|
+
end
|
78
|
+
|
73
79
|
def extend_controller_methods
|
74
80
|
require "sentry/rails/controller_methods"
|
75
81
|
require "sentry/rails/controller_transaction"
|
@@ -89,7 +95,7 @@ module Sentry
|
|
89
95
|
def inject_breadcrumbs_logger
|
90
96
|
if Sentry.configuration.breadcrumbs_logger.include?(:active_support_logger)
|
91
97
|
require 'sentry/rails/breadcrumb/active_support_logger'
|
92
|
-
Sentry::Rails::Breadcrumb::ActiveSupportLogger.inject
|
98
|
+
Sentry::Rails::Breadcrumb::ActiveSupportLogger.inject(Sentry.configuration.rails.active_support_logger_subscription_items)
|
93
99
|
end
|
94
100
|
|
95
101
|
if Sentry.configuration.breadcrumbs_logger.include?(:monotonic_active_support_logger)
|
@@ -13,8 +13,33 @@ module Sentry
|
|
13
13
|
next if EXCLUDED_EVENTS.include? payload[:name]
|
14
14
|
|
15
15
|
record_on_current_span(op: SPAN_PREFIX + event_name, start_timestamp: payload[START_TIMESTAMP_NAME], description: payload[:sql], duration: duration) do |span|
|
16
|
-
span.set_data(:connection_id, payload[:connection_id])
|
17
16
|
span.set_tag(:cached, true) if payload.fetch(:cached, false) # cached key is only set for hits in the QueryCache, from Rails 5.1
|
17
|
+
|
18
|
+
connection = payload[:connection]
|
19
|
+
|
20
|
+
if payload[:connection_id]
|
21
|
+
span.set_data(:connection_id, payload[:connection_id])
|
22
|
+
|
23
|
+
# we fallback to the base connection on rails < 6.0.0 since the payload doesn't have it
|
24
|
+
connection ||= ActiveRecord::Base.connection_pool.connections.find { |conn| conn.object_id == payload[:connection_id] }
|
25
|
+
end
|
26
|
+
|
27
|
+
next unless connection
|
28
|
+
|
29
|
+
db_config =
|
30
|
+
if connection.pool.respond_to?(:db_config)
|
31
|
+
connection.pool.db_config.configuration_hash
|
32
|
+
elsif connection.pool.respond_to?(:spec)
|
33
|
+
connection.pool.spec.config
|
34
|
+
end
|
35
|
+
|
36
|
+
next unless db_config
|
37
|
+
|
38
|
+
span.set_data(Span::DataConventions::DB_SYSTEM, db_config[:adapter]) if db_config[:adapter]
|
39
|
+
span.set_data(Span::DataConventions::DB_NAME, db_config[:database]) if db_config[:database]
|
40
|
+
span.set_data(Span::DataConventions::SERVER_ADDRESS, db_config[:host]) if db_config[:host]
|
41
|
+
span.set_data(Span::DataConventions::SERVER_PORT, db_config[:port]) if db_config[:port]
|
42
|
+
span.set_data(Span::DataConventions::SERVER_SOCKET_ADDRESS, db_config[:socket]) if db_config[:socket]
|
18
43
|
end
|
19
44
|
end
|
20
45
|
end
|
@@ -4,7 +4,7 @@ module Sentry
|
|
4
4
|
module Rails
|
5
5
|
module Tracing
|
6
6
|
class ActiveStorageSubscriber < AbstractSubscriber
|
7
|
-
EVENT_NAMES = %w
|
7
|
+
EVENT_NAMES = %w[
|
8
8
|
service_upload.active_storage
|
9
9
|
service_download.active_storage
|
10
10
|
service_streaming_download.active_storage
|
@@ -17,7 +17,7 @@ module Sentry
|
|
17
17
|
service_update_metadata.active_storage
|
18
18
|
preview.active_storage
|
19
19
|
analyze.active_storage
|
20
|
-
|
20
|
+
].freeze
|
21
21
|
|
22
22
|
def self.subscribe!
|
23
23
|
subscribe_to_event(EVENT_NAMES) do |event_name, duration, payload|
|
data/lib/sentry/rails/version.rb
CHANGED
data/sentry-rails.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sentry-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.17.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sentry Team
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-04-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 5.
|
33
|
+
version: 5.17.3
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 5.
|
40
|
+
version: 5.17.3
|
41
41
|
description: A gem that provides Rails integration for the Sentry error logger
|
42
42
|
email: accounts@sentry.io
|
43
43
|
executables: []
|