350350 _ ( exporter . finished_spans . size ) . must_equal ( 0 )
351351 end
352352 end
353+
354+ it 'uses url.template in span name when present in client context' do
355+ client_context_attrs = { 'url.template' => '/users/{id}' }
356+ OpenTelemetry ::Common ::HTTP ::ClientContext . with_attributes ( client_context_attrs ) do
357+ Excon . get ( 'http://example.com/users/123' )
358+ end
359+
360+ _ ( exporter . finished_spans . size ) . must_equal 1
361+ _ ( span . name ) . must_equal 'GET /users/{id}'
362+ _ ( span . attributes [ 'http.request.method' ] ) . must_equal 'GET'
363+ _ ( span . attributes [ 'url.template' ] ) . must_equal '/users/{id}'
364+ assert_requested (
365+ :get ,
366+ 'http://example.com/users/123' ,
367+ headers : { 'Traceparent' => "00-#{ span . hex_trace_id } -#{ span . hex_span_id } -01" }
368+ )
369+ end
353370 end
354371
355372 def assert_http_spans ( scheme : 'http' , host : 'localhost' , port : nil , target : '/' , exception : nil )
@@ -369,23 +386,4 @@ def assert_http_spans(scheme: 'http', host: 'localhost', port: nil, target: '/',
369386 end
370387 end
371388 end
372-
373- describe 'url.template' do
374- it 'uses url.template in span name when present in client context' do
375- client_context_attrs = { 'url.template' => '/users/{id}' }
376- OpenTelemetry ::Common ::HTTP ::ClientContext . with_attributes ( client_context_attrs ) do
377- Excon . get ( 'http://example.com/users/123' )
378- end
379-
380- _ ( exporter . finished_spans . size ) . must_equal 1
381- _ ( span . name ) . must_equal 'GET /users/{id}'
382- _ ( span . attributes [ 'http.request.method' ] ) . must_equal 'GET'
383- _ ( span . attributes [ 'url.template' ] ) . must_equal '/users/{id}'
384- assert_requested (
385- :get ,
386- 'http://example.com/users/123' ,
387- headers : { 'Traceparent' => "00-#{ span . hex_trace_id } -#{ span . hex_span_id } -01" }
388- )
389- end
390- end
391389end
0 commit comments