@@ -287,8 +287,6 @@ def create_trace_config(
287287 explicit_bucket_boundaries_advisory = HTTP_DURATION_HISTOGRAM_BUCKETS_NEW ,
288288 )
289289
290- metric_attributes = {}
291-
292290 excluded_urls = get_excluded_urls ("AIOHTTP_CLIENT" )
293291
294292 def _end_trace (trace_config_ctx : types .SimpleNamespace ):
@@ -299,7 +297,7 @@ def _end_trace(trace_config_ctx: types.SimpleNamespace):
299297
300298 if trace_config_ctx .duration_histogram_old is not None :
301299 duration_attrs_old = _filter_semconv_duration_attrs (
302- metric_attributes ,
300+ trace_config_ctx . metric_attributes ,
303301 _client_duration_attrs_old ,
304302 _client_duration_attrs_new ,
305303 _StabilityMode .DEFAULT ,
@@ -310,7 +308,7 @@ def _end_trace(trace_config_ctx: types.SimpleNamespace):
310308 )
311309 if trace_config_ctx .duration_histogram_new is not None :
312310 duration_attrs_new = _filter_semconv_duration_attrs (
313- metric_attributes ,
311+ trace_config_ctx . metric_attributes ,
314312 _client_duration_attrs_old ,
315313 _client_duration_attrs_new ,
316314 _StabilityMode .HTTP ,
@@ -348,7 +346,7 @@ async def on_request_start(
348346 sem_conv_opt_in_mode ,
349347 )
350348 _set_http_method (
351- metric_attributes ,
349+ trace_config_ctx . metric_attributes ,
352350 method ,
353351 sanitize_method (method ),
354352 sem_conv_opt_in_mode ,
@@ -359,12 +357,12 @@ async def on_request_start(
359357 parsed_url = urlparse (request_url )
360358 if parsed_url .hostname :
361359 _set_http_host_client (
362- metric_attributes ,
360+ trace_config_ctx . metric_attributes ,
363361 parsed_url .hostname ,
364362 sem_conv_opt_in_mode ,
365363 )
366364 _set_http_net_peer_name_client (
367- metric_attributes ,
365+ trace_config_ctx . metric_attributes ,
368366 parsed_url .hostname ,
369367 sem_conv_opt_in_mode ,
370368 )
@@ -376,7 +374,9 @@ async def on_request_start(
376374 )
377375 if parsed_url .port :
378376 _set_http_peer_port_client (
379- metric_attributes , parsed_url .port , sem_conv_opt_in_mode
377+ trace_config_ctx .metric_attributes ,
378+ parsed_url .port ,
379+ sem_conv_opt_in_mode ,
380380 )
381381 if _report_new (sem_conv_opt_in_mode ):
382382 _set_http_peer_port_client (
@@ -411,7 +411,7 @@ async def on_request_end(
411411 _set_http_status_code_attribute (
412412 trace_config_ctx .span ,
413413 params .response .status ,
414- metric_attributes ,
414+ trace_config_ctx . metric_attributes ,
415415 sem_conv_opt_in_mode ,
416416 )
417417
@@ -429,7 +429,7 @@ async def on_request_exception(
429429 exc_type = type (params .exception ).__qualname__
430430 if _report_new (sem_conv_opt_in_mode ):
431431 trace_config_ctx .span .set_attribute (ERROR_TYPE , exc_type )
432- metric_attributes [ERROR_TYPE ] = exc_type
432+ trace_config_ctx . metric_attributes [ERROR_TYPE ] = exc_type
433433
434434 trace_config_ctx .span .set_status (
435435 Status (StatusCode .ERROR , exc_type )
@@ -450,6 +450,7 @@ def _trace_config_ctx_factory(**kwargs):
450450 duration_histogram_old = duration_histogram_old ,
451451 duration_histogram_new = duration_histogram_new ,
452452 excluded_urls = excluded_urls ,
453+ metric_attributes = {},
453454 ** kwargs ,
454455 )
455456
0 commit comments