26
26
_metadata_with_leader_aware_routing ,
27
27
)
28
28
from google .cloud .spanner_v1 ._opentelemetry_tracing import (
29
+ add_span_event ,
29
30
get_current_span ,
30
31
trace_call ,
31
32
)
@@ -214,27 +215,27 @@ def bind(self, database):
214
215
session_template = Session (creator_role = self .database_role ),
215
216
)
216
217
217
- if requested_session_count > 0 and span :
218
- span .add_event (
218
+ if requested_session_count > 0 :
219
+ add_span_event (
220
+ span ,
219
221
f"Requesting { requested_session_count } sessions" ,
220
222
span_event_attributes ,
221
223
)
222
224
223
225
if self ._sessions .full ():
224
- if span :
225
- span .add_event (
226
- "Session pool is already full" , span_event_attributes
227
- )
226
+ add_span_event (
227
+ span , "Session pool is already full" , span_event_attributes
228
+ )
228
229
return
229
230
230
231
returned_session_count = 0
231
232
while not self ._sessions .full ():
232
233
request .session_count = requested_session_count - self ._sessions .qsize ()
233
- if span :
234
- span . add_event (
235
- f"Creating { request .session_count } sessions" ,
236
- span_event_attributes ,
237
- )
234
+ add_span_event (
235
+ span ,
236
+ f"Creating { request .session_count } sessions" ,
237
+ span_event_attributes ,
238
+ )
238
239
resp = api .batch_create_sessions (
239
240
request = request ,
240
241
metadata = metadata ,
@@ -245,11 +246,11 @@ def bind(self, database):
245
246
self ._sessions .put (session )
246
247
returned_session_count += 1
247
248
248
- if span :
249
- span . add_event (
250
- f"Requested for { requested_session_count } sessions, returned { returned_session_count } " ,
251
- span_event_attributes ,
252
- )
249
+ add_span_event (
250
+ span ,
251
+ f"Requested for { requested_session_count } sessions, returned { returned_session_count } " ,
252
+ span_event_attributes ,
253
+ )
253
254
254
255
def get (self , timeout = None ):
255
256
"""Check a session out from the pool.
@@ -268,35 +269,34 @@ def get(self, timeout=None):
268
269
start_time = time .time ()
269
270
current_span = get_current_span ()
270
271
span_event_attributes = {"kind" : type (self ).__name__ }
271
- if current_span :
272
- current_span .add_event ("Acquiring session" , span_event_attributes )
272
+ add_span_event (current_span , "Acquiring session" , span_event_attributes )
273
273
274
274
session = None
275
275
try :
276
- if current_span :
277
- current_span .add_event (
278
- "Waiting for a session to become available" , span_event_attributes
279
- )
276
+ add_span_event (
277
+ current_span ,
278
+ "Waiting for a session to become available" ,
279
+ span_event_attributes ,
280
+ )
280
281
session = self ._sessions .get (block = True , timeout = timeout )
281
282
except queue .Empty as e :
282
- if current_span :
283
- current_span .add_event ("No session available" , span_event_attributes )
283
+ add_span_event (current_span , "No session available" , span_event_attributes )
284
284
raise e
285
285
286
286
span_event_attributes ["session.id" ] = session ._session_id
287
287
288
288
if not session .exists ():
289
- if current_span :
290
- current_span .add_event (
291
- "Session is not valid, recreating it" , span_event_attributes
292
- )
289
+ add_span_event (
290
+ current_span ,
291
+ "Session is not valid, recreating it" ,
292
+ span_event_attributes ,
293
+ )
293
294
session = self ._database .session ()
294
295
session .create ()
295
296
span_event_attributes ["session.id" ] = session ._session_id
296
297
297
298
span_event_attributes ["time.elapsed" ] = time .time () - start_time
298
- if current_span :
299
- current_span .add_event ("Acquired session" , span_event_attributes )
299
+ add_span_event (current_span , "Acquired session" , span_event_attributes )
300
300
return session
301
301
302
302
def put (self , session ):
@@ -371,28 +371,30 @@ def get(self):
371
371
"""
372
372
current_span = get_current_span ()
373
373
span_event_attributes = {"kind" : type (self ).__name__ }
374
- if current_span :
375
- current_span .add_event ("Acquiring session" , span_event_attributes )
374
+ add_span_event (current_span , "Acquiring session" , span_event_attributes )
376
375
377
376
try :
378
- if current_span :
379
- current_span .add_event (
380
- "Waiting for a session to become available" , span_event_attributes
381
- )
377
+ add_span_event (
378
+ current_span ,
379
+ "Waiting for a session to become available" ,
380
+ span_event_attributes ,
381
+ )
382
382
session = self ._sessions .get_nowait ()
383
383
except queue .Empty :
384
- if current_span :
385
- current_span .add_event (
386
- "No session available. Creating session" , span_event_attributes
387
- )
384
+ add_span_event (
385
+ current_span ,
386
+ "No session available. Creating session" ,
387
+ span_event_attributes ,
388
+ )
388
389
session = self ._new_session ()
389
390
session .create ()
390
391
else :
391
392
if not session .exists ():
392
- if current_span :
393
- current_span .add_event (
394
- "Session is not valid, recreating it" , span_event_attributes
395
- )
393
+ add_span_event (
394
+ current_span ,
395
+ "Session is not valid, recreating it" ,
396
+ span_event_attributes ,
397
+ )
396
398
session = self ._new_session ()
397
399
session .create ()
398
400
return session
@@ -504,23 +506,25 @@ def bind(self, database):
504
506
505
507
requested_session_count = request .session_count
506
508
current_span = get_current_span ()
507
- if current_span :
508
- current_span .add_event (
509
- f"Requesting { requested_session_count } sessions" , span_event_attributes
510
- )
509
+ add_span_event (
510
+ current_span ,
511
+ f"Requesting { requested_session_count } sessions" ,
512
+ span_event_attributes ,
513
+ )
511
514
512
515
if created_session_count >= self .size :
513
- if current_span :
514
- current_span . add_event (
515
- "Created no new sessions as sessionPool is full" ,
516
- span_event_attributes ,
517
- )
516
+ add_span_event (
517
+ current_span ,
518
+ "Created no new sessions as sessionPool is full" ,
519
+ span_event_attributes ,
520
+ )
518
521
return
519
522
520
- if current_span :
521
- current_span .add_event (
522
- f"Creating { request .session_count } sessions" , span_event_attributes
523
- )
523
+ add_span_event (
524
+ current_span ,
525
+ f"Creating { request .session_count } sessions" ,
526
+ span_event_attributes ,
527
+ )
524
528
525
529
returned_session_count = 0
526
530
while created_session_count < self .size :
@@ -536,11 +540,11 @@ def bind(self, database):
536
540
537
541
created_session_count += len (resp .session )
538
542
539
- if current_span :
540
- current_span . add_event (
541
- f"Requested for { requested_session_count } sessions, return { returned_session_count } " ,
542
- span_event_attributes ,
543
- )
543
+ add_span_event (
544
+ current_span ,
545
+ f"Requested for { requested_session_count } sessions, return { returned_session_count } " ,
546
+ span_event_attributes ,
547
+ )
544
548
545
549
def get (self , timeout = None ):
546
550
"""Check a session out from the pool.
@@ -559,18 +563,18 @@ def get(self, timeout=None):
559
563
start_time = time .time ()
560
564
span_event_attributes = {"kind" : type (self ).__name__ }
561
565
current_span = get_current_span ()
562
- if current_span :
563
- current_span .add_event (
564
- "Waiting for a session to become available" , span_event_attributes
565
- )
566
+ add_span_event (
567
+ current_span ,
568
+ "Waiting for a session to become available" ,
569
+ span_event_attributes ,
570
+ )
566
571
567
572
ping_after = None
568
573
session = None
569
574
try :
570
575
ping_after , session = self ._sessions .get (block = True , timeout = timeout )
571
576
except queue .Empty as e :
572
- if current_span :
573
- current_span .add_event ("No session available" , span_event_attributes )
577
+ add_span_event (current_span , "No session available" , span_event_attributes )
574
578
raise e
575
579
576
580
if _NOW () > ping_after :
@@ -581,15 +585,14 @@ def get(self, timeout=None):
581
585
session = self ._new_session ()
582
586
session .create ()
583
587
584
- if current_span :
585
- span_event_attributes .update (
586
- {
587
- "time.elapsed" : time .time () - start_time ,
588
- "session.id" : session ._session_id ,
589
- "kind" : "pinging_pool" ,
590
- }
591
- )
592
- current_span .add_event ("Acquired session" , span_event_attributes )
588
+ span_event_attributes .update (
589
+ {
590
+ "time.elapsed" : time .time () - start_time ,
591
+ "session.id" : session ._session_id ,
592
+ "kind" : "pinging_pool" ,
593
+ }
594
+ )
595
+ add_span_event (current_span , "Acquired session" , span_event_attributes )
593
596
return session
594
597
595
598
def put (self , session ):
0 commit comments