@@ -27,47 +27,49 @@ def process_request(self, request):
2727 try :
2828 env = request .environ
2929 ctx = None
30+
3031 if 'HTTP_X_INSTANA_T' in env and 'HTTP_X_INSTANA_S' in env :
3132 ctx = tracer .extract (ot .Format .HTTP_HEADERS , env )
3233
33- self . scope = tracer .start_active_span ('django' , child_of = ctx )
34+ request . iscope = tracer .start_active_span ('django' , child_of = ctx )
3435
35- self . scope .span .set_tag (ext .HTTP_METHOD , request .method )
36+ request . iscope .span .set_tag (ext .HTTP_METHOD , request .method )
3637 if 'PATH_INFO' in env :
37- self . scope .span .set_tag (ext .HTTP_URL , env ['PATH_INFO' ])
38+ request . iscope .span .set_tag (ext .HTTP_URL , env ['PATH_INFO' ])
3839 if 'QUERY_STRING' in env :
39- self . scope .span .set_tag ("http.params" , env ['QUERY_STRING' ])
40+ request . iscope .span .set_tag ("http.params" , env ['QUERY_STRING' ])
4041 if 'HTTP_HOST' in env :
41- self . scope .span .set_tag ("http.host" , env ['HTTP_HOST' ])
42+ request . iscope .span .set_tag ("http.host" , env ['HTTP_HOST' ])
4243 except Exception :
4344 logger .debug ("Django middleware @ process_response" , exc_info = True )
4445
4546 def process_response (self , request , response ):
4647 try :
47- if self . scope is not None :
48+ if request . iscope is not None :
4849 if 500 <= response .status_code <= 511 :
49- self . scope .span .set_tag ("error" , True )
50- ec = self . scope .span .tags .get ('ec' , 0 )
50+ request . iscope .span .set_tag ("error" , True )
51+ ec = request . iscope .span .tags .get ('ec' , 0 )
5152 if ec is 0 :
52- self . scope .span .set_tag ("ec" , ec + 1 )
53+ request . iscope .span .set_tag ("ec" , ec + 1 )
5354
54- self . scope .span .set_tag (ext .HTTP_STATUS_CODE , response .status_code )
55- tracer .inject (self . scope .span .context , ot .Format .HTTP_HEADERS , response )
55+ request . iscope .span .set_tag (ext .HTTP_STATUS_CODE , response .status_code )
56+ tracer .inject (request . iscope .span .context , ot .Format .HTTP_HEADERS , response )
5657 except Exception as e :
5758 logger .debug ("Instana middleware @ process_response: " , e )
5859 finally :
59- self . scope .close ()
60- self . scope = None
60+ request . iscope .close ()
61+ request . iscope = None
6162 return response
6263
6364 def process_exception (self , request , exception ):
64- if self .scope is not None :
65- self .scope .span .set_tag (ext .HTTP_STATUS_CODE , 500 )
66- self .scope .span .set_tag ('http.error' , str (exception ))
67- self .scope .span .set_tag ("error" , True )
68- ec = self .scope .span .tags .get ('ec' , 0 )
69- self .scope .span .set_tag ("ec" , ec + 1 )
70- self .scope .close ()
65+ if request .iscope is not None :
66+ request .iscope .span .set_tag (ext .HTTP_STATUS_CODE , 500 )
67+ request .iscope .span .set_tag ('http.error' , str (exception ))
68+ request .iscope .span .set_tag ("error" , True )
69+ ec = request .iscope .span .tags .get ('ec' , 0 )
70+ request .iscope .span .set_tag ("ec" , ec + 1 )
71+ request .iscope .close ()
72+ request .iscope = None
7173
7274
7375def load_middleware_wrapper (wrapped , instance , args , kwargs ):
@@ -114,6 +116,7 @@ def load_middleware_wrapper(wrapped, instance, args, kwargs):
114116
115117try :
116118 if 'django' in sys .modules :
119+ logger .debug ("Instrumenting django" )
117120 wrapt .wrap_function_wrapper ('django.core.handlers.base' , 'BaseHandler.load_middleware' , load_middleware_wrapper )
118121except Exception :
119122 pass
0 commit comments