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