Skip to content

Commit

Permalink
Suppress botocore downstream instrumentation like urllib3 (#563)
Browse files Browse the repository at this point in the history
  • Loading branch information
NathanielRN authored Jul 14, 2021
1 parent 3a1746a commit 7e8b5bb
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 0 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
([#562](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/562))
- `opentelemetry-instrumentation-django` Fix AttributeError: ResolverMatch object has no attribute route
([#581](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/581))
- `opentelemetry-instrumentation-botocore` Suppress botocore downstream instrumentation like urllib3
([#563](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/563))

### Added
- `opentelemetry-instrumentation-httpx` Add `httpx` instrumentation
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,13 @@

logger = logging.getLogger(__name__)

# A key to a context variable to avoid creating duplicate spans when instrumenting
# both botocore.client and urllib3.connectionpool.HTTPConnectionPool.urlopen since
# botocore calls urlopen
_SUPPRESS_HTTP_INSTRUMENTATION_KEY = context_api.create_key(
"suppress_http_instrumentation"
)


# pylint: disable=unused-argument
def _patched_endpoint_prepare_request(wrapped, instance, args, kwargs):
Expand Down Expand Up @@ -161,10 +168,16 @@ def _patched_api_call(self, original_func, instance, args, kwargs):
"aws.table_name", api_params["TableName"]
)

token = context_api.attach(
context_api.set_value(_SUPPRESS_HTTP_INSTRUMENTATION_KEY, True)
)

try:
result = original_func(*args, **kwargs)
except ClientError as ex:
error = ex
finally:
context_api.detach(token)

if error:
result = error.response
Expand Down

0 comments on commit 7e8b5bb

Please sign in to comment.