Skip to content
This repository was archived by the owner on Mar 6, 2026. It is now read-only.

Commit 90581a9

Browse files
committed
fix: support OpenTelemetry >= 1.1.0
1 parent e8cf74c commit 90581a9

4 files changed

Lines changed: 22 additions & 15 deletions

File tree

google/cloud/bigquery/opentelemetry_tracing.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
logger = logging.getLogger(__name__)
2020
try:
2121
from opentelemetry import trace
22-
from opentelemetry.instrumentation.utils import http_status_to_canonical_code
22+
from opentelemetry.instrumentation.utils import http_status_to_status_code
2323
from opentelemetry.trace.status import Status
2424

2525
HAS_OPENTELEMETRY = True
@@ -65,9 +65,10 @@ def create_span(name, attributes=None, client=None, job_ref=None):
6565
if not _warned_telemetry:
6666
logger.debug(
6767
"This service is instrumented using OpenTelemetry. "
68-
"OpenTelemetry could not be imported; please "
69-
"add opentelemetry-api and opentelemetry-instrumentation "
70-
"packages in order to get BigQuery Tracing data."
68+
"OpenTelemetry or one of its components could not be imported; "
69+
"please add compatible versions of opentelemetry-api and "
70+
"opentelemetry-instrumentation packages in order to get BigQuery "
71+
"Tracing data."
7172
)
7273
_warned_telemetry = True
7374

@@ -81,7 +82,7 @@ def create_span(name, attributes=None, client=None, job_ref=None):
8182
yield span
8283
except GoogleAPICallError as error:
8384
if error.code is not None:
84-
span.set_status(Status(http_status_to_canonical_code(error.code)))
85+
span.set_status(Status(http_status_to_status_code(error.code)))
8586
raise
8687

8788

setup.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@
6363
"bignumeric_type": pyarrow_dep,
6464
"tqdm": ["tqdm >= 4.7.4, <5.0.0dev"],
6565
"opentelemetry": [
66-
"opentelemetry-api >= 0.11b0",
67-
"opentelemetry-sdk >= 0.11b0",
68-
"opentelemetry-instrumentation >= 0.11b0",
66+
"opentelemetry-api >= 1.1.0",
67+
"opentelemetry-sdk >= 1.1.0",
68+
"opentelemetry-instrumentation >= 0.20b0",
6969
],
7070
}
7171

testing/constraints-3.6.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ google-cloud-bigquery-storage==2.0.0
1111
google-cloud-core==1.4.1
1212
google-resumable-media==0.6.0
1313
grpcio==1.38.1
14-
opentelemetry-api==0.11b0
15-
opentelemetry-instrumentation==0.11b0
16-
opentelemetry-sdk==0.11b0
14+
opentelemetry-api==1.1.0
15+
opentelemetry-instrumentation==0.20b0
16+
opentelemetry-sdk==1.1.0
1717
pandas==0.24.2
1818
proto-plus==1.10.0
1919
protobuf==3.12.0

tests/unit/test_opentelemetry_tracing.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,20 @@
2020

2121
try:
2222
import opentelemetry
23+
except ImportError: # pragma: NO COVER
24+
opentelemetry = None
25+
26+
try:
2327
from opentelemetry import trace
2428
from opentelemetry.sdk.trace import TracerProvider
25-
from opentelemetry.sdk.trace.export import SimpleExportSpanProcessor
29+
from opentelemetry.sdk.trace.export import SimpleSpanProcessor
2630
from opentelemetry.sdk.trace.export.in_memory_span_exporter import (
2731
InMemorySpanExporter,
2832
)
29-
except ImportError: # pragma: NO COVER
30-
opentelemetry = None
33+
except ImportError as exc: # pragma: NO COVER
34+
msg = "Error importing from opentelemetry. If installed, is the version compatible?"
35+
raise ImportError(msg) from exc
36+
3137
import pytest
3238

3339
from google.cloud.bigquery import opentelemetry_tracing
@@ -42,7 +48,7 @@ def setup():
4248
importlib.reload(opentelemetry_tracing)
4349
tracer_provider = TracerProvider()
4450
memory_exporter = InMemorySpanExporter()
45-
span_processor = SimpleExportSpanProcessor(memory_exporter)
51+
span_processor = SimpleSpanProcessor(memory_exporter)
4652
tracer_provider.add_span_processor(span_processor)
4753
trace.set_tracer_provider(tracer_provider)
4854
yield memory_exporter

0 commit comments

Comments
 (0)