Skip to content

Commit 75a165a

Browse files
committed
Address review feedback by attaching observability_options to Client only
1 parent c169c4f commit 75a165a

File tree

7 files changed

+15
-33
lines changed

7 files changed

+15
-33
lines changed

google/cloud/spanner_v1/_opentelemetry_tracing.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ def trace_call(name, session, extra_attributes=None, observability_options=None)
7373

7474
tracer_provider = None
7575
enable_extended_tracing = False
76-
if getattr(session, "_observability_options", None):
77-
opts = session._observability_options
76+
if getattr(session, "_database", None):
77+
opts = getattr(session._database, "observability_options", None)
7878
if opts:
7979
tracer_provider = opts.tracer_provider
8080
enable_extended_tracing = opts.enable_extended_tracing

google/cloud/spanner_v1/client.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,6 @@ def instance(
380380
self._emulator_host,
381381
labels,
382382
processing_units,
383-
observability_options=self._observability_options,
384383
)
385384

386385
def list_instances(self, filter_="", page_size=None):

google/cloud/spanner_v1/database.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,6 @@ def __init__(
156156
database_role=None,
157157
enable_drop_protection=False,
158158
proto_descriptors=None,
159-
observability_options=None,
160159
):
161160
self.database_id = database_id
162161
self._instance = instance
@@ -179,16 +178,13 @@ def __init__(
179178
self._reconciling = False
180179
self._directed_read_options = self._instance._client.directed_read_options
181180
self._proto_descriptors = proto_descriptors
182-
self._observability_options = observability_options
183181

184182
if pool is None:
185183
pool = BurstyPool(
186184
database_role=database_role,
187-
observability_options=self._observability_options,
188185
)
189186

190187
self._pool = pool
191-
self._pool._observability_options = observability_options
192188
pool.bind(self)
193189

194190
@classmethod
@@ -752,7 +748,6 @@ def session(self, labels=None, database_role=None):
752748
self,
753749
labels=labels,
754750
database_role=role,
755-
observability_options=self._observability_options,
756751
)
757752

758753
def snapshot(self, **kw):
@@ -1722,6 +1717,10 @@ def close(self):
17221717
if self._session is not None:
17231718
self._session.delete()
17241719

1720+
@property
1721+
def observability_options(self):
1722+
return self._instance.observability_options
1723+
17251724

17261725
def _check_ddl_statements(value):
17271726
"""Validate DDL Statements used to define database schema.

google/cloud/spanner_v1/instance.py

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -110,13 +110,6 @@ class Instance(object):
110110
111111
:type labels: dict (str -> str) or None
112112
:param labels: (Optional) User-assigned labels for this instance.
113-
114-
:type labels: dict (str -> any) or None
115-
:param observability_options: (Optional) the configuration to control
116-
the tracer's behavior.
117-
tracer_provider is the injected tracer provider
118-
enable_extended_tracing: :type:boolean when set to true will allow for
119-
spans that issue SQL statements to be annotated with SQL.
120113
"""
121114

122115
def __init__(
@@ -129,7 +122,6 @@ def __init__(
129122
emulator_host=None,
130123
labels=None,
131124
processing_units=None,
132-
observability_options=None,
133125
):
134126
self.instance_id = instance_id
135127
self._client = client
@@ -153,7 +145,6 @@ def __init__(
153145
if labels is None:
154146
labels = {}
155147
self.labels = labels
156-
self._observability_options = observability_options
157148

158149
def _update_from_pb(self, instance_pb):
159150
"""Refresh self from the server-provided protobuf.
@@ -508,7 +499,6 @@ def database(
508499
database_role=database_role,
509500
enable_drop_protection=enable_drop_protection,
510501
proto_descriptors=proto_descriptors,
511-
observability_options=self._observability_options,
512502
)
513503
else:
514504
return TestDatabase(
@@ -743,3 +733,8 @@ def _item_to_operation(self, operation_pb):
743733
return google.api_core.operation.from_gapic(
744734
operation_pb, operations_client, response_type, metadata_type=metadata_type
745735
)
736+
737+
@property
738+
def observability_options(self):
739+
return self._client.observability_options
740+

google/cloud/spanner_v1/pool.py

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,11 @@ class AbstractSessionPool(object):
4242

4343
_database = None
4444

45-
def __init__(self, labels=None, database_role=None, observability_options=None):
45+
def __init__(self, labels=None, database_role=None):
4646
if labels is None:
4747
labels = {}
4848
self._labels = labels
4949
self._database_role = database_role
50-
self._observability_options = observability_options
5150

5251
@property
5352
def labels(self):
@@ -179,12 +178,10 @@ def __init__(
179178
default_timeout=DEFAULT_TIMEOUT,
180179
labels=None,
181180
database_role=None,
182-
observability_options=None,
183181
):
184182
super(FixedSizePool, self).__init__(
185183
labels=labels,
186184
database_role=database_role,
187-
observability_options=observability_options,
188185
)
189186
self.size = size
190187
self.default_timeout = default_timeout
@@ -295,12 +292,10 @@ def __init__(
295292
target_size=10,
296293
labels=None,
297294
database_role=None,
298-
observability_options=None,
299295
):
300296
super(BurstyPool, self).__init__(
301297
labels=labels,
302298
database_role=database_role,
303-
observability_options=observability_options,
304299
)
305300
self.target_size = target_size
306301
self._database = None
@@ -408,12 +403,10 @@ def __init__(
408403
ping_interval=3000,
409404
labels=None,
410405
database_role=None,
411-
observability_options=None,
412406
):
413407
super(PingingPool, self).__init__(
414408
labels=labels,
415409
database_role=database_role,
416-
observability_options=observability_options,
417410
)
418411
self.size = size
419412
self.default_timeout = default_timeout
@@ -567,7 +560,6 @@ def __init__(
567560
ping_interval=3000,
568561
labels=None,
569562
database_role=None,
570-
observability_options=None,
571563
):
572564
"""This throws a deprecation warning on initialization."""
573565
warn(
@@ -583,7 +575,6 @@ def __init__(
583575
ping_interval,
584576
labels=labels,
585577
database_role=database_role,
586-
observability_options=observability_options,
587578
)
588579

589580
self.begin_pending_transactions()

google/cloud/spanner_v1/session.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,15 +63,12 @@ class Session(object):
6363
_session_id = None
6464
_transaction = None
6565

66-
def __init__(
67-
self, database, labels=None, database_role=None, observability_options=None
68-
):
66+
def __init__(self, database, labels=None, database_role=None):
6967
self._database = database
7068
if labels is None:
7169
labels = {}
7270
self._labels = labels
7371
self._database_role = database_role
74-
self._observability_options = observability_options
7572

7673
def __lt__(self, other):
7774
return self._session_id < other._session_id

tests/unit/test__opentelemetry_tracing.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ def _make_session():
3535
# of mock._tracer_provider spuriously failing tests, because per
3636
# unittest.mock.Mock's definition invoking any attribute or method
3737
# returns another mock.
38-
setattr(session, "_observability_options", None)
38+
db = session._database
39+
setattr(db, "observability_options", None)
3940
return session
4041

4142

0 commit comments

Comments
 (0)