Skip to content

Commit 27c9716

Browse files
authored
Merge pull request #53 from instana/limit-urllib3-inst
Don't instrument urllib3 if it isn't present
2 parents aab4c79 + ba16871 commit 27c9716

File tree

1 file changed

+32
-28
lines changed

1 file changed

+32
-28
lines changed

instana/instrumentation/urllib3.py

Lines changed: 32 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -5,38 +5,42 @@
55
import wrapt
66

77

8-
@wrapt.patch_function_wrapper('urllib3', 'PoolManager.urlopen')
9-
def urlopen_with_instana(wrapped, instance, args, kwargs):
10-
context = instana.internal_tracer.current_context()
8+
try:
9+
import urllib3
1110

12-
# If we're not tracing, just return
13-
if context is None:
14-
return wrapped(*args, **kwargs)
11+
@wrapt.patch_function_wrapper('urllib3', 'PoolManager.urlopen')
12+
def urlopen_with_instana(wrapped, instance, args, kwargs):
13+
context = instana.internal_tracer.current_context()
1514

16-
try:
17-
span = instana.internal_tracer.start_span("urllib3", child_of=context)
18-
span.set_tag(ext.HTTP_URL, args[1])
19-
span.set_tag(ext.HTTP_METHOD, args[0])
15+
# If we're not tracing, just return
16+
if context is None:
17+
return wrapped(*args, **kwargs)
2018

21-
instana.internal_tracer.inject(span.context, opentracing.Format.HTTP_HEADERS, kwargs["headers"])
22-
rv = wrapped(*args, **kwargs)
19+
try:
20+
span = instana.internal_tracer.start_span("urllib3", child_of=context)
21+
span.set_tag(ext.HTTP_URL, args[1])
22+
span.set_tag(ext.HTTP_METHOD, args[0])
2323

24-
span.set_tag(ext.HTTP_STATUS_CODE, rv.status)
25-
if 500 <= rv.status <= 599:
24+
instana.internal_tracer.inject(span.context, opentracing.Format.HTTP_HEADERS, kwargs["headers"])
25+
rv = wrapped(*args, **kwargs)
26+
27+
span.set_tag(ext.HTTP_STATUS_CODE, rv.status)
28+
if 500 <= rv.status <= 599:
29+
span.set_tag("error", True)
30+
ec = span.tags.get('ec', 0)
31+
span.set_tag("ec", ec+1)
32+
33+
except Exception as e:
34+
span.log_kv({'message': e})
2635
span.set_tag("error", True)
2736
ec = span.tags.get('ec', 0)
2837
span.set_tag("ec", ec+1)
29-
30-
except Exception as e:
31-
span.log_kv({'message': e})
32-
span.set_tag("error", True)
33-
ec = span.tags.get('ec', 0)
34-
span.set_tag("ec", ec+1)
35-
span.finish()
36-
raise
37-
else:
38-
span.finish()
39-
return rv
40-
41-
42-
instana.log.debug("Instrumenting urllib3")
38+
span.finish()
39+
raise
40+
else:
41+
span.finish()
42+
return rv
43+
44+
instana.log.debug("Instrumenting urllib3")
45+
except ImportError:
46+
pass

0 commit comments

Comments
 (0)