|
5 | 5 | import wrapt |
6 | 6 |
|
7 | 7 |
|
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 |
11 | 10 |
|
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() |
15 | 14 |
|
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) |
20 | 18 |
|
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]) |
23 | 23 |
|
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}) |
26 | 35 | span.set_tag("error", True) |
27 | 36 | ec = span.tags.get('ec', 0) |
28 | 37 | 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