sentry-rails 5.7.0 → 5.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/sentry/rails/action_cable.rb +2 -1
- data/lib/sentry/rails/configuration.rb +0 -1
- data/lib/sentry/rails/controller_transaction.rb +27 -3
- data/lib/sentry/rails/error_subscriber.rb +5 -0
- data/lib/sentry/rails/railtie.rb +3 -1
- data/lib/sentry/rails/tracing/action_controller_subscriber.rb +5 -0
- data/lib/sentry/rails/tracing/active_record_subscriber.rb +1 -0
- 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: 7338e366bfa078e533320c9d9fcac994ca4202104a3a3efb2069644d4ac80e9c
|
4
|
+
data.tar.gz: 27b90498fc73e7884ffcdea4733244723fa0e6f8a48d3322f9e7a91b25f8b73b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7c67ec56cf2d1cd69d8808f7a83ce2af69fea58781fff3c5979bac4005ea077451b9682e6e45b1b8333d9d1b42cb29690dc53cc59b6baef4ba2ef47895bd0bb0
|
7
|
+
data.tar.gz: 1ec19c91b4d6e7bd2255c2f73ad12f035d90433a1d36a6fbba4f7ec21cbe6d5694b9ec44690ac22411003ab2e6948b9a56da8ba441123a84daa1d4b477266a51
|
@@ -20,8 +20,9 @@ module Sentry
|
|
20
20
|
scope.set_span(transaction) if transaction
|
21
21
|
|
22
22
|
begin
|
23
|
-
block.call
|
23
|
+
result = block.call
|
24
24
|
finish_transaction(transaction, 200)
|
25
|
+
result
|
25
26
|
rescue Exception => e # rubocop:disable Lint/RescueException
|
26
27
|
Sentry::Rails.capture_exception(e)
|
27
28
|
finish_transaction(transaction, 500)
|
@@ -83,7 +83,6 @@ module Sentry
|
|
83
83
|
%r(\A/{0,2}#{::Rails.application.config.assets.prefix})
|
84
84
|
end
|
85
85
|
@tracing_subscribers = Set.new([
|
86
|
-
Sentry::Rails::Tracing::ActionControllerSubscriber,
|
87
86
|
Sentry::Rails::Tracing::ActionViewSubscriber,
|
88
87
|
Sentry::Rails::Tracing::ActiveRecordSubscriber,
|
89
88
|
Sentry::Rails::Tracing::ActiveStorageSubscriber
|
@@ -2,10 +2,34 @@ module Sentry
|
|
2
2
|
module Rails
|
3
3
|
module ControllerTransaction
|
4
4
|
def self.included(base)
|
5
|
-
base.
|
6
|
-
|
7
|
-
|
5
|
+
base.prepend_around_action(:sentry_around_action)
|
6
|
+
end
|
7
|
+
|
8
|
+
private
|
9
|
+
|
10
|
+
def sentry_around_action
|
11
|
+
if Sentry.initialized?
|
12
|
+
transaction_name = "#{self.class}##{action_name}"
|
13
|
+
Sentry.get_current_scope.set_transaction_name(transaction_name, source: :view)
|
14
|
+
Sentry.with_child_span(op: "view.process_action.action_controller", description: transaction_name) do |child_span|
|
15
|
+
if child_span
|
16
|
+
begin
|
17
|
+
result = yield
|
18
|
+
ensure
|
19
|
+
child_span.set_http_status(response.status)
|
20
|
+
child_span.set_data(:format, request.format)
|
21
|
+
child_span.set_data(:method, request.method)
|
22
|
+
child_span.set_data(:path, request.path)
|
23
|
+
child_span.set_data(:params, request.params)
|
24
|
+
end
|
25
|
+
|
26
|
+
result
|
27
|
+
else
|
28
|
+
yield
|
29
|
+
end
|
8
30
|
end
|
31
|
+
else
|
32
|
+
yield
|
9
33
|
end
|
10
34
|
end
|
11
35
|
end
|
@@ -14,6 +14,11 @@ module Sentry
|
|
14
14
|
tags[:source] = source
|
15
15
|
end
|
16
16
|
|
17
|
+
if context[:tags].is_a?(Hash)
|
18
|
+
context = context.dup
|
19
|
+
tags.merge!(context.delete(:tags))
|
20
|
+
end
|
21
|
+
|
17
22
|
Sentry::Rails.capture_exception(error, level: severity, contexts: { "rails.error" => context }, tags: tags)
|
18
23
|
end
|
19
24
|
end
|
data/lib/sentry/rails/railtie.rb
CHANGED
@@ -56,7 +56,9 @@ module Sentry
|
|
56
56
|
|
57
57
|
at_exit do
|
58
58
|
# TODO: Add a condition for Rails 7.1 to avoid confliction with https://github.com/rails/rails/pull/44999
|
59
|
-
|
59
|
+
if $ERROR_INFO && !($ERROR_INFO.is_a?(SystemExit) && $ERROR_INFO.success?)
|
60
|
+
Sentry::Rails.capture_exception($ERROR_INFO, tags: { source: "runner" })
|
61
|
+
end
|
60
62
|
end
|
61
63
|
end
|
62
64
|
|
@@ -11,6 +11,11 @@ module Sentry
|
|
11
11
|
OP_NAME = "view.process_action.action_controller".freeze
|
12
12
|
|
13
13
|
def self.subscribe!
|
14
|
+
Sentry.logger.warn <<~MSG
|
15
|
+
DEPRECATION WARNING: sentry-rails has changed its approach on controller span recording and #{self.name} is now depreacted.
|
16
|
+
Please stop using or referencing #{self.name} as it will be removed in the next major release.
|
17
|
+
MSG
|
18
|
+
|
14
19
|
subscribe_to_event(EVENT_NAMES) do |event_name, duration, payload|
|
15
20
|
controller = payload[:controller]
|
16
21
|
action = payload[:action]
|
@@ -14,6 +14,7 @@ module Sentry
|
|
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
16
|
span.set_data(:connection_id, payload[:connection_id])
|
17
|
+
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
|
end
|
18
19
|
end
|
19
20
|
end
|
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.8.0
|
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: 2023-02-06 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.8.0
|
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.8.0
|
41
41
|
description: A gem that provides Rails integration for the Sentry error logger
|
42
42
|
email: accounts@sentry.io
|
43
43
|
executables: []
|