Skip to content

Commit

Permalink
Botocore checks if instrumentation is suppressed
Browse files Browse the repository at this point in the history
  • Loading branch information
NathanielRN committed Nov 13, 2020
1 parent acf5706 commit de6291e
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
## Unreleased
- Add propagator injection for botocore calls
([#181](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/181))
- Make botocore instrumentation check if instrumentation has been suppressed
([#182](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/182))

## Version 0.13b0

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
from botocore.client import BaseClient
from wrapt import ObjectProxy, wrap_function_wrapper

from opentelemetry import propagators
from opentelemetry import context as context_api, propagators
from opentelemetry.instrumentation.botocore.version import __version__
from opentelemetry.instrumentation.instrumentor import BaseInstrumentor
from opentelemetry.sdk.trace import Resource
Expand Down Expand Up @@ -104,6 +104,8 @@ def _uninstrument(self, **kwargs):
unwrap(BaseClient, "_make_api_call")

def _patched_api_call(self, original_func, instance, args, kwargs):
if context_api.get_value("suppress_instrumentation"):
return original_func(*args, **kwargs)

endpoint_name = deep_getattr(instance, "_endpoint._endpoint_prefix")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,11 @@
mock_lambda,
mock_s3,
mock_sqs,
mock_xray,
)

from opentelemetry import propagators
from opentelemetry.context import attach, detach, set_value
from opentelemetry.instrumentation.botocore import BotocoreInstrumentor
from opentelemetry.sdk.resources import Resource
from opentelemetry.test.mock_textmap import MockTextMapPropagator
Expand Down Expand Up @@ -330,3 +332,15 @@ def check_headers(**kwargs):

finally:
propagators.set_global_textmap(previous_propagator)
@mock_xray
def test_suppress_instrumentation_xray_client(self):
xray_client = self.session.create_client(
"xray", region_name="us-east-1"
)
token = attach(set_value("suppress_instrumentation", True))
xray_client.put_trace_segments(TraceSegmentDocuments=["str1"])
xray_client.put_trace_segments(TraceSegmentDocuments=["str2"])
detach(token)

spans = self.memory_exporter.get_finished_spans()
self.assertEqual(0, len(spans))

0 comments on commit de6291e

Please sign in to comment.