Skip to content

Commit 5c50c80

Browse files
authored
Don't use array for transaction names and sources on scope (#2324)
1 parent cfc2570 commit 5c50c80

File tree

6 files changed

+22
-34
lines changed

6 files changed

+22
-34
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131
- Decrease the default number of background worker threads by half ([#2305](https://github.com/getsentry/sentry-ruby/pull/2305))
3232
- Fixes [#2297](https://github.com/getsentry/sentry-ruby/issues/2297)
3333
- Don't mutate `enabled_environments` when using `Sentry::TestHelper` ([#2317](https://github.com/getsentry/sentry-ruby/pull/2317))
34+
- Don't use array for transaction names and sources on scope ([#2324](https://github.com/getsentry/sentry-ruby/pull/2324))
35+
- Fixes [#2257](https://github.com/getsentry/sentry-ruby/issues/2257)
3436
3537
### Internal
3638

sentry-ruby/bin/console

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#!/usr/bin/env ruby
22

33
require "bundler/setup"
4+
require "debug"
45
require "sentry-ruby"
56

67
# You can add fixtures and/or initialization code here to make experimenting

sentry-ruby/lib/sentry/scope.rb

Lines changed: 10 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ class Scope
99
include ArgumentCheckingHelper
1010

1111
ATTRIBUTES = [
12-
:transaction_names,
13-
:transaction_sources,
12+
:transaction_name,
13+
:transaction_source,
1414
:contexts,
1515
:extra,
1616
:tags,
@@ -96,8 +96,8 @@ def dup
9696
copy.extra = extra.deep_dup
9797
copy.tags = tags.deep_dup
9898
copy.user = user.deep_dup
99-
copy.transaction_names = transaction_names.dup
100-
copy.transaction_sources = transaction_sources.dup
99+
copy.transaction_name = transaction_name.dup
100+
copy.transaction_source = transaction_source.dup
101101
copy.fingerprint = fingerprint.deep_dup
102102
copy.span = span.deep_dup
103103
copy.session = session.deep_dup
@@ -114,8 +114,8 @@ def update_from_scope(scope)
114114
self.extra = scope.extra
115115
self.tags = scope.tags
116116
self.user = scope.user
117-
self.transaction_names = scope.transaction_names
118-
self.transaction_sources = scope.transaction_sources
117+
self.transaction_name = scope.transaction_name
118+
self.transaction_source = scope.transaction_source
119119
self.fingerprint = scope.fingerprint
120120
self.span = scope.span
121121
self.propagation_context = scope.propagation_context
@@ -231,8 +231,8 @@ def set_level(level)
231231
# @param transaction_name [String]
232232
# @return [void]
233233
def set_transaction_name(transaction_name, source: :custom)
234-
@transaction_names << transaction_name
235-
@transaction_sources << source
234+
@transaction_name = transaction_name
235+
@transaction_source = source
236236
end
237237

238238
# Sets the currently active session on the scope.
@@ -242,20 +242,6 @@ def set_session(session)
242242
@session = session
243243
end
244244

245-
# Returns current transaction name.
246-
# The "transaction" here does not refer to `Transaction` objects.
247-
# @return [String, nil]
248-
def transaction_name
249-
@transaction_names.last
250-
end
251-
252-
# Returns current transaction source.
253-
# The "transaction" here does not refer to `Transaction` objects.
254-
# @return [String, nil]
255-
def transaction_source
256-
@transaction_sources.last
257-
end
258-
259245
# These are high cardinality and thus bad.
260246
# @return [Boolean]
261247
def transaction_source_low_quality?
@@ -311,8 +297,8 @@ def set_default_value
311297
@user = {}
312298
@level = :error
313299
@fingerprint = []
314-
@transaction_names = []
315-
@transaction_sources = []
300+
@transaction_name = nil
301+
@transaction_source = nil
316302
@event_processors = []
317303
@rack_env = {}
318304
@span = nil

sentry-ruby/spec/sentry/rack/capture_exceptions_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
event = last_sentry_event
8080
expect(event.transaction).to eq("/test")
8181
expect(event.to_hash.dig(:request, :url)).to eq("http://example.org/test")
82-
expect(Sentry.get_current_scope.transaction_names).to be_empty
82+
expect(Sentry.get_current_scope.transaction_name).to be_nil
8383
expect(Sentry.get_current_scope.rack_env).to eq({})
8484
end
8585

sentry-ruby/spec/sentry/scope/setters_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@
206206
end
207207

208208
describe "#set_transaction_name" do
209-
it "pushes the transaction_name to transaction_names stack" do
209+
it "sets the transaction name" do
210210
subject.set_transaction_name("WelcomeController#home")
211211

212212
expect(subject.transaction_name).to eq("WelcomeController#home")

sentry-ruby/spec/sentry/scope_spec.rb

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
expect(subject.tags).to eq({})
2323
expect(subject.user).to eq({})
2424
expect(subject.fingerprint).to eq([])
25-
expect(subject.transaction_names).to eq([])
26-
expect(subject.transaction_sources).to eq([])
25+
expect(subject.transaction_name).to eq(nil)
26+
expect(subject.transaction_source).to eq(nil)
2727
expect(subject.propagation_context).to be_a(Sentry::PropagationContext)
2828
end
2929

@@ -42,8 +42,7 @@
4242
copy.extra.merge!(foo: "bar")
4343
copy.tags.merge!(foo: "bar")
4444
copy.user.merge!(foo: "bar")
45-
copy.transaction_names << "foo"
46-
copy.transaction_sources << :url
45+
copy.set_transaction_name("foo", source: :url)
4746
copy.fingerprint << "bar"
4847

4948
expect(subject.breadcrumbs.to_hash).to eq({ values: [] })
@@ -53,8 +52,8 @@
5352
expect(subject.tags).to eq({})
5453
expect(subject.user).to eq({})
5554
expect(subject.fingerprint).to eq([])
56-
expect(subject.transaction_names).to eq([])
57-
expect(subject.transaction_sources).to eq([])
55+
expect(subject.transaction_name).to eq(nil)
56+
expect(subject.transaction_source).to eq(nil)
5857
expect(subject.span).to eq(nil)
5958
end
6059

@@ -143,8 +142,8 @@
143142
expect(subject.tags).to eq({})
144143
expect(subject.user).to eq({})
145144
expect(subject.fingerprint).to eq([])
146-
expect(subject.transaction_names).to eq([])
147-
expect(subject.transaction_sources).to eq([])
145+
expect(subject.transaction_name).to eq(nil)
146+
expect(subject.transaction_source).to eq(nil)
148147
expect(subject.span).to eq(nil)
149148
end
150149
end

0 commit comments

Comments
 (0)