test/tracing/opentracing_test.rb in instana-1.9.7 vs test/tracing/opentracing_test.rb in instana-1.10.0.slimfast
- old
+ new
@@ -77,46 +77,40 @@
def test_basic_get_with_opentracing
clear_all!
get '/mrlobster'
assert last_response.ok?
- traces = ::Instana.processor.queued_traces
- assert_equal 1, traces.length
+ spans = ::Instana.processor.queued_spans
+ assert_equal 3, spans.length
- trace = traces[0]
- assert trace.valid?
+ first_span = find_first_span_by_name(spans, :rack)
+ second_span = find_first_span_by_name(spans, :otrack1)
+ third_span = find_first_span_by_name(spans, :otrack2)
- # Span validation
- assert_equal 3, trace.spans.length
- first_span, second_span, third_span = trace.spans.to_a
-
- assert_equal :rack, first_span.name
+ assert_equal :rack, first_span[:n]
assert first_span[:ts].is_a?(Integer)
assert first_span[:ts] > 0
assert first_span[:d].is_a?(Integer)
assert first_span[:d].between?(0, 5)
assert first_span.key?(:data)
assert first_span[:data].key?(:http)
assert_equal "GET", first_span[:data][:http][:method]
assert_equal "/mrlobster", first_span[:data][:http][:url]
assert_equal 200, first_span[:data][:http][:status]
assert_equal 'example.org', first_span[:data][:http][:host]
- assert_equal :otrack1, second_span.name
+ assert_equal :otrack1, second_span[:data][:sdk][:name]
assert second_span.key?(:data)
assert second_span[:data].key?(:sdk)
assert second_span[:data][:sdk].key?(:name)
- assert_equal :otrack2, third_span.name
+ assert_equal :otrack2, third_span[:data][:sdk][:name]
assert third_span.key?(:data)
assert third_span[:data].key?(:sdk)
assert third_span[:data][:sdk].key?(:name)
# ID Validation
- assert_equal trace.id, first_span[:t]
- assert_equal trace.id, third_span[:t]
-
- # Linkage
- assert_equal second_span[:s], third_span[:p]
+ refute_equal first_span[:t], second_span[:t]
+ refute_equal second_span[:t], third_span[:t]
end
def test_get_with_inject_extract
clear_all!
@@ -127,32 +121,26 @@
header 'X-Instana-S', ::Instana::Util.id_to_header(span_id)
get '/mrlobster'
assert last_response.ok?
- traces = ::Instana.processor.queued_traces
- assert_equal 1, traces.length
+ spans = ::Instana.processor.queued_spans
- trace = traces[0]
- assert trace.valid?
+ assert_equal 3, spans.length
+ first_span = find_first_span_by_name(spans, :rack)
- # Span validation
- assert_equal 3, trace.spans.length
- first_span = trace.spans.to_a.first
-
# Make sure context was picked up and continued in the resulting
# trace
- assert_equal trace_id, trace.id
+ assert_equal trace_id, first_span[:t]
assert_equal span_id, first_span[:p]
end
def test_start_span_with_tags
clear_all!
span = OpenTracing.start_span('my_app_entry')
assert span.is_a?(::Instana::Span)
- assert_equal :my_app_entry, OpenTracing.current_trace.current_span.name
span.set_tag(:tag_integer, 1234)
span.set_tag(:tag_boolean, true)
span.set_tag(:tag_array, [1,2,3,4])
span.set_tag(:tag_string, "1234")
@@ -170,11 +158,10 @@
now_in_ms = ::Instana::Util.time_to_ms(now)
span = OpenTracing.start_span('my_app_entry', :start_time => now)
assert span.is_a?(::Instana::Span)
- assert_equal :my_app_entry, OpenTracing.current_trace.current_span.name
span.set_tag(:tag_integer, 1234)
span.set_tag(:tag_boolean, true)
span.set_tag(:tag_array, [1,2,3,4])
span.set_tag(:tag_string, "1234")
@@ -194,32 +181,31 @@
def test_span_kind_translation
clear_all!
span = OpenTracing.start_span('my_app_entry')
assert span.is_a?(::Instana::Span)
- assert_equal :my_app_entry, OpenTracing.current_trace.current_span.name
span.set_tag(:'span.kind', :server)
assert_equal :entry, span[:data][:sdk][:type]
- assert_equal :entry, span[:k]
+ assert_equal 1, span[:k]
span.set_tag(:'span.kind', :consumer)
assert_equal :entry, span[:data][:sdk][:type]
- assert_equal :entry, span[:k]
+ assert_equal 1, span[:k]
span.set_tag(:'span.kind', :client)
assert_equal :exit, span[:data][:sdk][:type]
- assert_equal :exit, span[:k]
+ assert_equal 2, span[:k]
span.set_tag(:'span.kind', :producer)
assert_equal :exit, span[:data][:sdk][:type]
- assert_equal :exit, span[:k]
+ assert_equal 2, span[:k]
span[:data][:sdk].delete(:type)
span.set_tag(:'span.kind', :blah)
assert_equal :intermediate, span[:data][:sdk][:type]
- assert_equal :intermediate, span[:k]
+ assert_equal 3, span[:k]
assert_equal :blah, span[:data][:sdk][:custom][:tags][:'span.kind']
span.finish
end
@@ -268,176 +254,82 @@
sleep 0.1
av_span.finish
ac_span.finish
entry_span.finish
- traces = ::Instana.processor.queued_traces
+ spans = ::Instana.processor.queued_spans
+ assert_equal 3, spans.length
- assert_equal 1, traces.length
+ first_span = find_first_span_by_name(spans, :rack)
+ second_span = find_first_span_by_name(spans, :action_controller)
+ third_span = find_first_span_by_name(spans, :action_view)
- trace = traces.first
- first_span, second_span, third_span = trace.spans.to_a
-
- assert_equal 3, trace.spans.length
- assert trace.valid?
-
# IDs
- assert_equal trace.id, first_span[:t]
- assert_equal trace.id, second_span[:t]
- assert_equal trace.id, third_span[:t]
+ assert_equal first_span[:t], second_span[:t]
+ assert_equal second_span[:t], third_span[:t]
# Linkage
- assert first_span.is_root?
+ assert first_span[:p].nil?
assert_equal first_span[:s], second_span[:p]
assert_equal second_span[:s], third_span[:p]
end
- def test_start_span_with_nested_spans
- clear_all!
- entry_span = OpenTracing.start_span(:rack)
- ac_span = OpenTracing.start_span(:action_controller)
- av_span = OpenTracing.start_span(:action_view)
- sleep 0.1
- av_span.finish
- ac_span.finish
- entry_span.finish
-
- traces = ::Instana.processor.queued_traces
-
- assert_equal 1, traces.length
- trace = traces.first
- assert trace.valid?
- assert_equal 3, trace.spans.length
-
- first_span, second_span, third_span = trace.spans.to_a
-
- # IDs
- assert_equal trace.id, first_span[:t]
- assert_equal trace.id, second_span[:t]
- assert_equal trace.id, third_span[:t]
-
- # Linkage
- assert first_span.is_root?
- assert_equal first_span[:s], second_span[:p]
- assert_equal second_span[:s], third_span[:p]
- end
-
def test_nested_spans_with_baggage
clear_all!
entry_span = OpenTracing.start_span(:rack)
- ac_span = OpenTracing.start_span(:action_controller)
+ ac_span = OpenTracing.start_span(:action_controller, child_of: entry_span)
ac_span.set_baggage_item(:my_bag, 1)
- av_span = OpenTracing.start_span(:action_view)
+ av_span = OpenTracing.start_span(:action_view, child_of: ac_span)
sleep 0.1
av_span.finish
ac_span.finish
entry_span.finish
- traces = ::Instana.processor.queued_traces
+ spans = ::Instana.processor.queued_spans
+ assert_equal 3, spans.length
- assert_equal 1, traces.length
- trace = traces.first
- assert trace.valid?
- assert_equal 3, trace.spans.length
+ first_span = find_first_span_by_name(spans, :rack)
+ second_span = find_first_span_by_name(spans, :action_controller)
+ third_span = find_first_span_by_name(spans, :action_view)
- first_span, second_span, third_span = trace.spans.to_a
-
# IDs
- assert_equal trace.id, first_span[:t]
- assert_equal trace.id, second_span[:t]
- assert_equal trace.id, third_span[:t]
+ assert_equal first_span[:t], second_span[:t]
+ assert_equal second_span[:t], third_span[:t]
# Linkage
- assert first_span.is_root?
+ assert first_span[:p].nil?
assert_equal first_span[:s], second_span[:p]
assert_equal second_span[:s], third_span[:p]
# Every span should have baggage
- assert_equal nil, first_span.get_baggage_item(:my_bag)
- assert_equal 1, second_span.get_baggage_item(:my_bag)
- assert_equal 1, third_span.get_baggage_item(:my_bag)
+ assert_equal(nil, entry_span.context.baggage)
+ assert_equal({:my_bag=>1}, ac_span.context.baggage)
+ assert_equal({:my_bag=>1}, av_span.context.baggage)
end
def test_context_should_carry_baggage
clear_all!
entry_span = OpenTracing.start_span(:rack)
entry_span_context = entry_span.context
- ac_span = OpenTracing.start_span(:action_controller)
+ ac_span = OpenTracing.start_span(:action_controller, child_of: entry_span)
ac_span.set_baggage_item(:my_bag, 1)
ac_span_context = ac_span.context
- av_span = OpenTracing.start_span(:action_view)
+ av_span = OpenTracing.start_span(:action_view, child_of: entry_span)
av_span_context = av_span.context
sleep 0.1
- av_span.finish
- ac_span.finish
- entry_span.finish
- traces = ::Instana.processor.queued_traces
-
- assert_equal 1, traces.length
- trace = traces.first
- assert trace.valid?
- assert_equal 3, trace.spans.length
-
- assert_equal nil, entry_span_context.baggage[:my_bag]
- assert_equal 1, ac_span_context.baggage[:my_bag]
- assert_equal 1, av_span_context.baggage[:my_bag]
- end
-
- def test_baggage_with_complex_data
- clear_all!
-
- entry_span = OpenTracing.start_span(:rack)
- entry_span_context = entry_span.context
-
- ac_span = OpenTracing.start_span(:action_controller)
-
- ac_span.set_baggage_item(:integer, 1)
- ac_span.set_baggage_item(:float, 1.0123948293)
- ac_span.set_baggage_item(:hash, { :hash_sublevel => "blah",
- :another => {} })
- ac_span_context = ac_span.context
-
- av_span = OpenTracing.start_span(:action_view)
- av_span_context = av_span.context
-
- sleep 0.1
av_span.finish
ac_span.finish
entry_span.finish
- traces = ::Instana.processor.queued_traces
+ spans = ::Instana.processor.queued_spans
+ assert_equal 3, spans.length
- assert_equal 1, traces.length
- trace = traces.first
- assert trace.valid?
- assert_equal 3, trace.spans.length
-
- # Context
- assert_equal true, entry_span_context.baggage.empty?
- assert_equal true, entry_span.baggage.empty?
-
- assert_equal 1, ac_span_context.baggage[:integer]
- assert_equal 1.0123948293, ac_span_context.baggage[:float]
- assert_equal true, ac_span_context.baggage[:hash][:another].empty?
- assert_equal "blah", ac_span_context.baggage[:hash][:hash_sublevel]
- assert_equal 1, av_span_context.baggage[:integer]
- assert_equal 1.0123948293, av_span_context.baggage[:float]
- assert_equal true, av_span_context.baggage[:hash][:another].empty?
- assert_equal "blah", av_span_context.baggage[:hash][:hash_sublevel]
-
- # Spans
- assert_equal true, entry_span.baggage.empty?
- assert_equal 1, ac_span.baggage[:integer]
- assert_equal 1.0123948293, ac_span.baggage[:float]
- assert_equal true, ac_span.baggage[:hash][:another].empty?
- assert_equal "blah", ac_span.baggage[:hash][:hash_sublevel]
- assert_equal 1, av_span.baggage[:integer]
- assert_equal 1.0123948293, av_span.baggage[:float]
- assert_equal true, av_span.baggage[:hash][:another].empty?
- assert_equal "blah", av_span.baggage[:hash][:hash_sublevel]
+ assert_equal(nil, entry_span.context.baggage)
+ assert_equal({:my_bag=>1}, ac_span.context.baggage)
+ assert_equal(nil, av_span.context.baggage)
end
end