Skip to content

Commit 18755c2

Browse files
committed
opentelemetry-instrumentation-aiohttp-client: fix metric attribute leakage
1 parent 8297dde commit 18755c2

File tree

1 file changed

+11
-10
lines changed
  • instrumentation/opentelemetry-instrumentation-aiohttp-client/src/opentelemetry/instrumentation/aiohttp_client

1 file changed

+11
-10
lines changed

instrumentation/opentelemetry-instrumentation-aiohttp-client/src/opentelemetry/instrumentation/aiohttp_client/__init__.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)