Skip to content

Commit 96294fa

Browse files
authored
Merge pull request #4027 from DataDog/munir/remove-version-tag-in-some-scenarios
2 parents 321f513 + a8025b1 commit 96294fa

File tree

2 files changed

+27
-10
lines changed

2 files changed

+27
-10
lines changed

lib/datadog/tracing/tracer.rb

+15-10
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,7 @@ def start_span(
406406
on_error: on_error,
407407
resource: resource,
408408
service: service,
409-
tags: resolve_tags(tags),
409+
tags: resolve_tags(tags, service),
410410
type: type,
411411
id: id,
412412
&block
@@ -420,7 +420,7 @@ def start_span(
420420
resource: resource,
421421
service: service,
422422
start_time: start_time,
423-
tags: resolve_tags(tags),
423+
tags: resolve_tags(tags, service),
424424
type: type,
425425
id: id
426426
)
@@ -432,15 +432,20 @@ def start_span(
432432
end
433433
# rubocop:enable Lint/UnderscorePrefixedVariableName
434434

435-
def resolve_tags(tags)
436-
if @tags.any? && tags
437-
# Combine default tags with provided tags,
438-
# preferring provided tags.
439-
@tags.merge(tags)
440-
else
441-
# Use provided tags or default tags if none.
442-
tags || @tags.dup
435+
def resolve_tags(tags, service)
436+
merged_tags = if @tags.any? && tags
437+
# Combine default tags with provided tags,
438+
# preferring provided tags.
439+
@tags.merge(tags)
440+
else
441+
# Use provided tags or default tags if none.
442+
tags || @tags.dup
443+
end
444+
# Remove version tag if service is not the default service
445+
if merged_tags.key?(Core::Environment::Ext::TAG_VERSION) && service != @default_service
446+
merged_tags.delete(Core::Environment::Ext::TAG_VERSION)
443447
end
448+
merged_tags
444449
end
445450

446451
# Manually activate and deactivate the trace, when the span completes.

spec/datadog/tracing/tracer_spec.rb

+12
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,18 @@
126126
expect(span.get_tag('my')).to eq('tag')
127127
end
128128

129+
context 'contains version and span.service is not equal to the default tracer service' do
130+
let(:tracer_options) { { default_service: 'global-service', tags: { version: '1.1.0' } } }
131+
let(:service) { 'my-service' }
132+
it 'does not set version on the span' do
133+
expect(tracer.default_service).to eq('global-service')
134+
expect(span.service).not_to eq('my-service')
135+
136+
expect(tracer.tags).to include(version: '1.1.0')
137+
expect(span.tags).not_to include(:version)
138+
end
139+
end
140+
129141
context 'and default tags are set on the tracer' do
130142
let(:tracer_options) { { tags: default_tags } }
131143

0 commit comments

Comments
 (0)