test/instrumentation/sidekiq-worker_test.rb in instana-1.9.7 vs test/instrumentation/sidekiq-worker_test.rb in instana-1.10.0.slimfast
- old
+ new
@@ -28,12 +28,13 @@
)
end
enable_redis_instrumentation
sleep 1
- assert_equal 1, ::Instana.processor.queue_count
- assert_successful_worker_trace(::Instana.processor.queued_traces.first)
+ spans = Instana.processor.queued_spans
+ worker_span = find_spans_by_name(spans, :'sidekiq-worker').first
+ assert_successful_worker_span(worker_span)
$sidekiq_mode = :client
end
def test_failed_worker_starts_new_trace
@@ -57,13 +58,15 @@
)
end
enable_redis_instrumentation
sleep 1
- assert_equal 1, ::Instana.processor.queue_count
- assert_failed_worker_trace(::Instana.processor.queued_traces.first)
+ spans = Instana.processor.queued_spans
+ worker_span = find_spans_by_name(spans, :'sidekiq-worker').first
+ assert_failed_worker_span(worker_span)
+
$sidekiq_mode = :client
end
def test_successful_worker_continues_previous_trace
clear_all!
@@ -78,19 +81,24 @@
'args' => [1, 2, 3]
)
enable_redis_instrumentation
end
sleep 1
- assert_equal 2, ::Instana.processor.queue_count
- client_trace, worker_trace = differentiate_trace(
- Instana.processor.queued_traces.to_a
- )
- assert_client_trace(client_trace, ::SidekiqJobOne)
- assert_successful_worker_trace(worker_trace)
+ spans = Instana.processor.queued_spans
+ sdk_span = find_spans_by_name(spans, :sidekiqtests).first
+ validate_sdk_span(sdk_span)
+
+ client_span = find_spans_by_name(spans, :'sidekiq-client').first
+ assert_client_span(client_span, ::SidekiqJobOne)
+
+ worker_span = find_spans_by_name(spans, :'sidekiq-worker').first
+ assert_successful_worker_span(worker_span)
+
# Worker trace and client trace are in the same trace
- assert_equal client_trace.spans.first['t'], worker_trace.spans.first['t']
+ assert_equal worker_span[:t], client_span[:t]
+ assert_equal worker_span[:p], client_span[:s]
$sidekiq_mode = :client
end
def test_failed_worker_continues_previous_trace
@@ -106,19 +114,25 @@
'args' => [1, 2, 3]
)
enable_redis_instrumentation
end
sleep 1
- assert_equal 2, ::Instana.processor.queue_count
- client_trace, worker_trace = differentiate_trace(
- Instana.processor.queued_traces.to_a
- )
- assert_client_trace(client_trace, ::SidekiqJobTwo)
- assert_failed_worker_trace(worker_trace)
+ spans = Instana.processor.queued_spans
+
+ sdk_span = find_spans_by_name(spans, :sidekiqtests).first
+ validate_sdk_span(sdk_span)
+
+ client_span = find_spans_by_name(spans, :'sidekiq-client').first
+ assert_client_span(client_span, ::SidekiqJobTwo)
+
+ worker_span = find_spans_by_name(spans, :'sidekiq-worker').first
+ assert_failed_worker_span(worker_span)
+
# Worker trace and client trace are in the same trace
- assert_equal client_trace.spans.first['t'], worker_trace.spans.first['t']
+ assert_equal worker_span[:t], client_span[:t]
+ assert_equal worker_span[:p], client_span[:s]
$sidekiq_mode = :client
end
private
@@ -130,59 +144,30 @@
chain.add ::Instana::Instrumentation::SidekiqWorker
end
end
end
- def differentiate_trace(traces)
- trying_client = traces[0]
- trying_server = traces[1]
+ def assert_successful_worker_span(worker_span)
+ assert_equal :'sidekiq-worker', worker_span[:n]
- try_successfully = trying_client.spans.any? do |span|
- span.name == :'sidekiq-client'
- end
-
- if try_successfully
- [trying_client, trying_server]
- else
- [trying_server, trying_client]
- end
+ assert_equal 'important', worker_span[:data][:'sidekiq-worker'][:queue]
+ assert_equal 'SidekiqJobOne', worker_span[:data][:'sidekiq-worker'][:job]
+ assert_equal false, worker_span[:data][:'sidekiq-worker'][:job_id].nil?
end
- def assert_successful_worker_trace(worker_trace)
- assert_equal 1, worker_trace.spans.length
- span = worker_trace.spans.first
+ def assert_failed_worker_span(worker_span)
+ assert_equal :'sidekiq-worker', worker_span[:n]
- assert_equal :'sidekiq-worker', span[:n]
+ assert_equal 'important', worker_span[:data][:'sidekiq-worker'][:queue]
+ assert_equal 'SidekiqJobTwo', worker_span[:data][:'sidekiq-worker'][:job]
+ assert_equal false, worker_span[:data][:'sidekiq-worker'][:job_id].nil?
- assert_equal 'important', span[:data][:'sidekiq-worker'][:queue]
- assert_equal 'SidekiqJobOne', span[:data][:'sidekiq-worker'][:job]
- assert_equal false, span[:data][:'sidekiq-worker'][:job_id].nil?
+ assert_equal true, worker_span[:data][:'sidekiq-worker'][:error]
+ assert_equal 'Fail to execute the job', worker_span[:data][:log][:message]
end
- def assert_failed_worker_trace(worker_trace)
- assert_equal 1, worker_trace.spans.length
- span = worker_trace.spans.first
-
- assert_equal :'sidekiq-worker', span[:n]
-
- assert_equal 'important', span[:data][:'sidekiq-worker'][:queue]
- assert_equal 'SidekiqJobTwo', span[:data][:'sidekiq-worker'][:job]
- assert_equal false, span[:data][:'sidekiq-worker'][:job_id].nil?
-
- assert_equal true, span[:data][:'sidekiq-worker'][:error]
- assert_equal 'Fail to execute the job', span[:data][:log][:message]
- end
-
- def assert_client_trace(client_trace, job)
- assert_equal 2, client_trace.spans.length
- first_span, second_span = client_trace.spans.to_a
-
- assert_equal :sdk, first_span[:n]
- assert_equal :sidekiqtests, first_span[:data][:sdk][:name]
-
- assert_equal first_span.id, second_span[:p]
-
- assert_equal :'sidekiq-client', second_span[:n]
- assert_equal 'important', second_span[:data][:'sidekiq-client'][:queue]
- assert_equal job.name, second_span[:data][:'sidekiq-client'][:job]
+ def assert_client_span(client_span, job)
+ assert_equal :'sidekiq-client', client_span[:n]
+ assert_equal 'important', client_span[:data][:'sidekiq-client'][:queue]
+ assert_equal job.name, client_span[:data][:'sidekiq-client'][:job]
end
end