@@ -364,27 +364,28 @@ def _before_request():
364
364
flask_request_environ = flask .request .environ
365
365
span_name = get_default_span_name ()
366
366
367
+ attributes = otel_wsgi .collect_request_attributes (
368
+ flask_request_environ
369
+ )
370
+ if flask .request .url_rule :
371
+ # For 404 that result from no route found, etc, we
372
+ # don't have a url_rule.
373
+ attributes [
374
+ SpanAttributes .HTTP_ROUTE
375
+ ] = flask .request .url_rule .rule
367
376
span , token = _start_internal_or_server_span (
368
377
tracer = tracer ,
369
378
span_name = span_name ,
370
379
start_time = flask_request_environ .get (_ENVIRON_STARTTIME_KEY ),
371
380
context_carrier = flask_request_environ ,
372
381
context_getter = otel_wsgi .wsgi_getter ,
382
+ attributes = attributes ,
373
383
)
374
384
375
385
if request_hook :
376
386
request_hook (span , flask_request_environ )
377
387
378
388
if span .is_recording ():
379
- attributes = otel_wsgi .collect_request_attributes (
380
- flask_request_environ
381
- )
382
- if flask .request .url_rule :
383
- # For 404 that result from no route found, etc, we
384
- # don't have a url_rule.
385
- attributes [
386
- SpanAttributes .HTTP_ROUTE
387
- ] = flask .request .url_rule .rule
388
389
for key , value in attributes .items ():
389
390
span .set_attribute (key , value )
390
391
if span .is_recording () and span .kind == trace .SpanKind .SERVER :
0 commit comments