Skip to content

Commit bee0e58

Browse files
committed
address comments
1 parent 70a9012 commit bee0e58

File tree

7 files changed

+26
-21
lines changed

7 files changed

+26
-21
lines changed

google/cloud/spanner_v1/_opentelemetry_tracing.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131

3232
@contextmanager
3333
def trace_call(name, session, extra_attributes=None):
34-
if not HAS_OPENTELEMETRY_INSTALLED:
34+
if not HAS_OPENTELEMETRY_INSTALLED or not session:
3535
# empty context manager. users will have to check if the generated value is None or a span
3636
yield None
3737
return

google/cloud/spanner_v1/snapshot.py

+2-8
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,7 @@ def _restart_on_unavailable(restart, trace_name=None, session=None, attributes=N
4141
"""
4242
resume_token = b""
4343
item_buffer = []
44-
if trace_name and session:
45-
with trace_call(trace_name, session, attributes):
46-
iterator = restart()
47-
else:
44+
with trace_call(trace_name, session, attributes):
4845
iterator = restart()
4946
while True:
5047
try:
@@ -55,10 +52,7 @@ def _restart_on_unavailable(restart, trace_name=None, session=None, attributes=N
5552
break
5653
except ServiceUnavailable:
5754
del item_buffer[:]
58-
if trace_name and session:
59-
with trace_call(trace_name, session, attributes):
60-
iterator = restart(resume_token=resume_token)
61-
else:
55+
with trace_call(trace_name, session, attributes):
6256
iterator = restart(resume_token=resume_token)
6357
continue
6458

google/cloud/spanner_v1/transaction.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ def batch_update(self, statements):
279279

280280
trace_attributes = {
281281
# Get just the queries from the DML statement batch
282-
"db.statement": [statement[0] for statement in statements]
282+
"db.statement": [statement["sql"] for statement in parsed]
283283
}
284284
with trace_call("CloudSpanner.DMLTransaction", self._session, trace_attributes):
285285
response = api.execute_batch_dml(

tests/_helpers.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,17 @@
66
from opentelemetry.trace.status import StatusCanonicalCode
77

88
from opentelemetry.sdk.trace import TracerProvider, export
9-
from opentelemetry.sdk.trace.export.in_memory_span_exporter import InMemorySpanExporter
9+
from opentelemetry.sdk.trace.export.in_memory_span_exporter import (
10+
InMemorySpanExporter,
11+
)
1012

1113
HAS_OPENTELEMETRY_INSTALLED = True
1214
except ImportError:
1315
HAS_OPENTELEMETRY_INSTALLED = False
1416

1517
StatusCanonicalCode = mock.Mock()
1618

19+
1720
class OpenTelemetryBase(unittest.TestCase):
1821
def setUp(self):
1922
if HAS_OPENTELEMETRY_INSTALLED:

tests/unit/test__opentelemetry_tracing.py

+4-6
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
try:
77
from opentelemetry import trace as trace_api
88
from opentelemetry.trace.status import StatusCanonicalCode
9-
from opentelemetry.sdk.trace import TracerProvider, export
10-
from opentelemetry.sdk.trace.export.in_memory_span_exporter import InMemorySpanExporter
119
except ImportError:
1210
pass
1311

@@ -16,6 +14,7 @@
1614

1715
from tests._helpers import OpenTelemetryBase, HAS_OPENTELEMETRY_INSTALLED
1816

17+
1918
def _make_rpc_error(error_cls, trailing_metadata=None):
2019
import grpc
2120

@@ -29,8 +28,10 @@ def _make_session():
2928

3029
return mock.Mock(autospec=Session, instance=True)
3130

31+
3232
# Skip all of these tests if we don't have OpenTelemetry
3333
if HAS_OPENTELEMETRY_INSTALLED:
34+
3435
class TestNoTracing(unittest.TestCase):
3536
def setUp(self):
3637
self._temp_opentelemetry = sys.modules["opentelemetry"]
@@ -46,7 +47,6 @@ def test_no_trace_call(self):
4647
with _opentelemetry_tracing.trace_call("Test", _make_session()) as no_span:
4748
self.assertIsNone(no_span)
4849

49-
5050
class TestTracing(OpenTelemetryBase):
5151
def test_trace_call(self):
5252
extra_attributes = {
@@ -75,9 +75,7 @@ def test_trace_call(self):
7575
self.assertEqual(span.kind, trace_api.SpanKind.CLIENT)
7676
self.assertEqual(span.attributes, expected_attributes)
7777
self.assertEqual(span.name, "CloudSpanner.Test")
78-
self.assertEqual(
79-
span.status.canonical_code, trace_api.status.StatusCanonicalCode.OK
80-
)
78+
self.assertEqual(span.status.canonical_code, StatusCanonicalCode.OK)
8179

8280
def test_trace_error(self):
8381
extra_attributes = {"db.instance": "database_name"}

tests/unit/test_session.py

+9-3
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,11 @@
1515

1616
import google.api_core.gapic_v1.method
1717
import mock
18-
from tests._helpers import OpenTelemetryBase, StatusCanonicalCode, HAS_OPENTELEMETRY_INSTALLED
18+
from tests._helpers import (
19+
OpenTelemetryBase,
20+
StatusCanonicalCode,
21+
HAS_OPENTELEMETRY_INSTALLED,
22+
)
1923

2024

2125
def _make_rpc_error(error_cls, trailing_metadata=None):
@@ -43,7 +47,7 @@ class TestSession(OpenTelemetryBase):
4347
BASE_ATTRIBUTES = {
4448
"db.type": "spanner",
4549
"db.url": "spanner.googleapis.com:443",
46-
"db.instance": "projects/project-id/instances/instance-id/databases/database-id",
50+
"db.instance": DATABASE_NAME,
4751
"net.host.name": "spanner.googleapis.com:443",
4852
}
4953

@@ -1112,7 +1116,9 @@ def _time(_results=[1, 1.5]):
11121116
with mock.patch("opentelemetry.util.time", _ConstantTime()):
11131117
with mock.patch("time.sleep") as sleep_mock:
11141118
with self.assertRaises(Aborted):
1115-
session.run_in_transaction(unit_of_work, "abc", timeout_secs=1)
1119+
session.run_in_transaction(
1120+
unit_of_work, "abc", timeout_secs=1
1121+
)
11161122
else:
11171123
with mock.patch("time.sleep") as sleep_mock:
11181124
with self.assertRaises(Aborted):

tests/unit/test_snapshot.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,11 @@
1515

1616
import google.api_core.gapic_v1.method
1717
import mock
18-
from tests._helpers import OpenTelemetryBase, StatusCanonicalCode, HAS_OPENTELEMETRY_INSTALLED
18+
from tests._helpers import (
19+
OpenTelemetryBase,
20+
StatusCanonicalCode,
21+
HAS_OPENTELEMETRY_INSTALLED,
22+
)
1923

2024
TABLE_NAME = "citizens"
2125
COLUMNS = ["email", "first_name", "last_name", "age"]

0 commit comments

Comments
 (0)