3535CREATE_CHANNEL = 'create_channel'
3636
3737
38- def trace_integration ():
38+ def trace_integration (tracer = None ):
3939 """Trace the Google Cloud Client libraries by integrating with
4040 the transport level including HTTP and gRPC.
4141 """
4242 log .info ('Integrated module: {}' .format (MODULE_NAME ))
4343
4444 # Integrate with gRPC
45- trace_grpc ()
45+ trace_grpc (tracer )
4646
4747 # Integrate with HTTP
48- trace_http ()
48+ trace_http (tracer )
4949
5050
51- def trace_grpc ():
51+ def trace_grpc (tracer = None ):
5252 """Integrate with gRPC."""
5353 # Wrap google.cloud._helpers.make_secure_channel
5454 make_secure_channel_func = getattr (_helpers , MAKE_SECURE_CHANNEL )
5555 make_secure_channel_wrapped = wrap_make_secure_channel (
56- make_secure_channel_func )
56+ make_secure_channel_func , tracer )
5757 setattr (
5858 _helpers ,
5959 MAKE_SECURE_CHANNEL ,
@@ -62,34 +62,37 @@ def trace_grpc():
6262 # Wrap the grpc.insecure_channel.
6363 insecure_channel_func = getattr (grpc , INSECURE_CHANNEL )
6464 insecure_channel_wrapped = wrap_insecure_channel (
65- insecure_channel_func )
65+ insecure_channel_func , tracer )
6666 setattr (
6767 grpc ,
6868 INSECURE_CHANNEL ,
6969 insecure_channel_wrapped )
7070
7171 # Wrap google.api_core.grpc_helpers.create_channel
7272 create_channel_func = getattr (grpc_helpers , CREATE_CHANNEL )
73- create_channel_wrapped = wrap_create_channel (create_channel_func )
73+ create_channel_wrapped = wrap_create_channel (create_channel_func , tracer )
7474 setattr (
7575 grpc_helpers ,
7676 CREATE_CHANNEL ,
7777 create_channel_wrapped )
7878
7979
80- def trace_http ():
80+ def trace_http (tracer = None ):
8181 """Integrate with HTTP (requests library)."""
82- trace_requests ()
82+ trace_requests (tracer )
8383
8484
85- def wrap_make_secure_channel (make_secure_channel_func ):
85+ def wrap_make_secure_channel (make_secure_channel_func , tracer = None ):
8686 """Wrap the google.cloud._helpers.make_secure_channel."""
8787 def call (* args , ** kwargs ):
8888 channel = make_secure_channel_func (* args , ** kwargs )
8989
9090 try :
9191 host = kwargs .get ('host' )
92- _tracer = execution_context .get_opencensus_tracer ()
92+ if tracer is None :
93+ _tracer = execution_context .get_opencensus_tracer ()
94+ else : # pragma: NO COVER
95+ _tracer = tracer
9396 tracer_interceptor = OpenCensusClientInterceptor (_tracer , host )
9497 intercepted_channel = grpc .intercept_channel (
9598 channel , tracer_interceptor )
@@ -102,14 +105,17 @@ def call(*args, **kwargs):
102105 return call
103106
104107
105- def wrap_insecure_channel (insecure_channel_func ):
108+ def wrap_insecure_channel (insecure_channel_func , tracer = None ):
106109 """Wrap the grpc.insecure_channel."""
107110 def call (* args , ** kwargs ):
108111 channel = insecure_channel_func (* args , ** kwargs )
109112
110113 try :
111114 target = kwargs .get ('target' )
112- _tracer = execution_context .get_opencensus_tracer ()
115+ if tracer is None :
116+ _tracer = execution_context .get_opencensus_tracer ()
117+ else : # pragma: NO COVER
118+ _tracer = tracer
113119 tracer_interceptor = OpenCensusClientInterceptor (_tracer , target )
114120 intercepted_channel = grpc .intercept_channel (
115121 channel , tracer_interceptor )
@@ -122,14 +128,17 @@ def call(*args, **kwargs):
122128 return call
123129
124130
125- def wrap_create_channel (create_channel_func ):
131+ def wrap_create_channel (create_channel_func , tracer = None ):
126132 """Wrap the google.api_core.grpc_helpers.create_channel."""
127133 def call (* args , ** kwargs ):
128134 channel = create_channel_func (* args , ** kwargs )
129135
130136 try :
131137 target = kwargs .get ('target' )
132- _tracer = execution_context .get_opencensus_tracer ()
138+ if tracer is None :
139+ _tracer = execution_context .get_opencensus_tracer ()
140+ else : # pragma: NO COVER
141+ _tracer = tracer
133142 tracer_interceptor = OpenCensusClientInterceptor (_tracer , target )
134143 intercepted_channel = grpc .intercept_channel (
135144 channel , tracer_interceptor )
0 commit comments