Skip to content

Commit 11416c1

Browse files
committed
Reduce, refactor, rubocop
1 parent f45e813 commit 11416c1

File tree

6 files changed

+23
-33
lines changed

6 files changed

+23
-33
lines changed

lib/new_relic/agent/configuration/sampler_config_validator.rb

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,7 @@ module SamplerConfigValidator
1313
class << self
1414
def validate_sampling_ratio(ratio)
1515
return nil if ratio.nil?
16-
17-
unless valid_ratio?(ratio)
18-
return nil
19-
end
16+
return nil unless valid_ratio?(ratio)
2017

2118
ratio
2219
end
@@ -27,9 +24,7 @@ def validate_sampler_strategy_with_ratio(strategy_key, ratio_key)
2724

2825
ratio = NewRelic::Agent.config[ratio_key]
2926

30-
if valid_ratio?(ratio)
31-
next strategy
32-
end
27+
next strategy if valid_ratio?(ratio)
3328

3429
unless @sampler_strategy_warnings[strategy_key]
3530
NewRelic::Agent.logger.warn(
@@ -48,11 +43,12 @@ def valid_ratio?(ratio)
4843
ratio.is_a?(Float) && (0.0..1.0).cover?(ratio)
4944
end
5045

46+
# used for testing
5147
def reset_warnings!
5248
@sampler_strategy_warnings = {}
5349
end
5450
end
5551
end
5652
end
5753
end
58-
end
54+
end

lib/new_relic/agent/transaction.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -302,8 +302,7 @@ def sampled?
302302
when 'always_off'
303303
false
304304
when 'trace_id_ratio_based'
305-
ratio = NewRelic::Agent.config[:'distributed_tracing.sampler.root.trace_id_ratio_based.ratio']
306-
trace_ratio_sampled?(ratio)
305+
trace_ratio_sampled?(NewRelic::Agent.config[:'distributed_tracing.sampler.root.trace_id_ratio_based.ratio'])
307306
when 'adaptive'
308307
NewRelic::Agent.instance.adaptive_sampler.sampled?
309308
end
@@ -312,8 +311,9 @@ def sampled?
312311
end
313312

314313
def trace_ratio_sampled?(ratio)
315-
upper_bound = (ratio * (2**64 - 1)).ceil
316-
ratio == 1.0 || trace_id[8, 8].unpack1('Q>') < upper_bound
314+
# if the ratio is 1.0, always sample
315+
# otherwise, do math
316+
ratio == 1.0 || trace_id[8, 8].unpack1('Q>') < (ratio * (2**64 - 1)).ceil
317317
end
318318

319319
def trace_id

lib/new_relic/agent/transaction/distributed_tracing.rb

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -161,29 +161,21 @@ def assign_payload_and_sampling_params(payload)
161161
transaction.parent_span_id = payload.id
162162

163163
unless payload.sampled.nil?
164-
if payload.sampled == true
164+
if payload.sampled
165165
set_priority_and_sampled(
166166
NewRelic::Agent.config[:'distributed_tracing.sampler.remote_parent_sampled'],
167167
NewRelic::Agent.config[:'distributed_tracing.sampler.remote_parent_sampled.trace_id_ratio_based.ratio'],
168168
payload
169169
)
170-
elsif payload.sampled == false
170+
else
171171
set_priority_and_sampled(
172172
NewRelic::Agent.config[:'distributed_tracing.sampler.remote_parent_not_sampled'],
173173
NewRelic::Agent.config[:'distributed_tracing.sampler.remote_parent_not_sampled.trace_id_ratio_based.ratio'],
174174
payload
175175
)
176-
else
177-
transaction.sampled = payload.sampled
178-
transaction.priority = payload.priority if payload.priority
179176
end
180177
end
181178
end
182-
183-
def default_sampling(payload)
184-
transaction.sampled = payload.sampled
185-
transaction.priority = payload.priority if payload.priority
186-
end
187179
end
188180
end
189181
end

lib/new_relic/agent/transaction/trace_context.rb

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -155,16 +155,16 @@ def accept_trace_context(header_data)
155155
def determine_sampling_decision(payload, trace_flags)
156156
if trace_flags == '01'
157157
set_priority_and_sampled(
158-
NewRelic::Agent.config[:'distributed_tracing.sampler.remote_parent_sampled'],
159-
NewRelic::Agent.config[:'distributed_tracing.sampler.remote_parent_sampled.trace_id_ratio_based.ratio'],
160-
payload
161-
)
158+
NewRelic::Agent.config[:'distributed_tracing.sampler.remote_parent_sampled'],
159+
NewRelic::Agent.config[:'distributed_tracing.sampler.remote_parent_sampled.trace_id_ratio_based.ratio'],
160+
payload
161+
)
162162
elsif trace_flags == '00'
163163
set_priority_and_sampled(
164-
NewRelic::Agent.config[:'distributed_tracing.sampler.remote_parent_not_sampled'],
165-
NewRelic::Agent.config[:'distributed_tracing.sampler.remote_parent_not_sampled.trace_id_ratio_based.ratio'],
166-
payload
167-
)
164+
NewRelic::Agent.config[:'distributed_tracing.sampler.remote_parent_not_sampled'],
165+
NewRelic::Agent.config[:'distributed_tracing.sampler.remote_parent_not_sampled.trace_id_ratio_based.ratio'],
166+
payload
167+
)
168168
else
169169
use_nr_tracestate_sampled(payload)
170170
end

test/new_relic/agent/configuration/sampler_config_validator_test.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -288,4 +288,4 @@ def test_config_system_applies_strategy_fallback_when_accessed
288288
end
289289
end
290290
end
291-
end
291+
end

test/new_relic/agent/distributed_tracing/trace_context_cross_agent_test.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,9 @@ def self.focus_tests
5757
}
5858

5959
if test_case.key?('ratio')
60-
key = %w[root remote_parent_sampled remote_parent_not_sampled].find { |f| test_case[f] == 'trace_id_ratio_based'}
61-
config.merge!({"distributed_tracing.sampler.#{key}.trace_id_ratio_based.ratio".to_sym => test_case['ratio']}) if key
60+
strategies = %w[root remote_parent_sampled remote_parent_not_sampled]
61+
key = strategies.find { |f| test_case[f] == 'trace_id_ratio_based' }
62+
config["distributed_tracing.sampler.#{key}.trace_id_ratio_based.ratio".to_sym] = test_case['ratio']
6263
end
6364

6465
with_server_source(config) do
@@ -235,6 +236,7 @@ def verify_attributes(test_case_attributes, actual_attributes, event_type)
235236
pp(actual_attributes)
236237
puts '*' * 80
237238
end
239+
238240
(test_case_attributes['exact'] || []).each do |k, v|
239241
assert_equal v,
240242
actual_attributes[k],

0 commit comments

Comments
 (0)