From ff66806431d46474555e9b7231018ecb46e917fb Mon Sep 17 00:00:00 2001 From: Dylan Russell Date: Fri, 6 Jun 2025 14:30:34 +0000 Subject: [PATCH 1/4] Add span exporter property to batch span processor --- .../src/opentelemetry/sdk/trace/export/__init__.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py b/opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py index 3520c6a9f6a..ccf6a0c7d0b 100644 --- a/opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py +++ b/opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py @@ -177,6 +177,11 @@ def __init__( "Span", ) + # Added for backward compatibility. Not recommended to directly access/use underlying exporter. + @property + def span_exporter(self): + return self._batch_processor._exporter #pylint: disable=protected-access + def on_start( self, span: Span, parent_context: Context | None = None ) -> None: From 14c9080b98af8a65929b36a7e80d57350af763c5 Mon Sep 17 00:00:00 2001 From: Dylan Russell Date: Fri, 6 Jun 2025 14:40:55 +0000 Subject: [PATCH 2/4] Add test --- .../src/opentelemetry/sdk/trace/export/__init__.py | 2 +- opentelemetry-sdk/tests/trace/export/test_export.py | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py b/opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py index ccf6a0c7d0b..9e7557b05af 100644 --- a/opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py +++ b/opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py @@ -180,7 +180,7 @@ def __init__( # Added for backward compatibility. Not recommended to directly access/use underlying exporter. @property def span_exporter(self): - return self._batch_processor._exporter #pylint: disable=protected-access + return self._batch_processor._exporter # pylint: disable=protected-access def on_start( self, span: Span, parent_context: Context | None = None diff --git a/opentelemetry-sdk/tests/trace/export/test_export.py b/opentelemetry-sdk/tests/trace/export/test_export.py index e94c3e67680..1e08d4411c2 100644 --- a/opentelemetry-sdk/tests/trace/export/test_export.py +++ b/opentelemetry-sdk/tests/trace/export/test_export.py @@ -150,6 +150,11 @@ def test_simple_span_processor_not_sampled(self): # before the end of the test, otherwise the worker thread will continue # to run after the end of the test. class TestBatchSpanProcessor(unittest.TestCase): + def test_get_span_exporter(self): + exporter = MySpanExporter(destination=[]) + batch_span_processor = export.BatchSpanProcessor(exporter) + self.assertEqual(exporter, batch_span_processor.span_exporter) + @mock.patch.dict( "os.environ", { From 7f5d9518ad2f7aa810771687ca43c05578b47b78 Mon Sep 17 00:00:00 2001 From: Dylan Russell Date: Fri, 6 Jun 2025 15:49:45 +0000 Subject: [PATCH 3/4] Add changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 71f13b05a67..6ae3da8324d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - opentelemetry-sdk: Fix invalid `type: ignore` that causes mypy to ignore the whole file ([#4618](https://github.com/open-telemetry/opentelemetry-python/pull/4618)) +- Add `span_exporter` property back to `BatchSpanProcessor` class ([#4621](https://github.com/open-telemetry/opentelemetry-python/pull/4621)). ## Version 1.34.0/0.55b0 (2025-06-04) From fac6087a011be4699d22281535fc5804f65fb1a2 Mon Sep 17 00:00:00 2001 From: Riccardo Magliocchetti Date: Fri, 6 Jun 2025 18:06:10 +0200 Subject: [PATCH 4/4] Update CHANGELOG.md --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ae3da8324d..d5dcce26b98 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - opentelemetry-sdk: Fix invalid `type: ignore` that causes mypy to ignore the whole file ([#4618](https://github.com/open-telemetry/opentelemetry-python/pull/4618)) -- Add `span_exporter` property back to `BatchSpanProcessor` class ([#4621](https://github.com/open-telemetry/opentelemetry-python/pull/4621)). +- Add `span_exporter` property back to `BatchSpanProcessor` class + ([#4621](https://github.com/open-telemetry/opentelemetry-python/pull/4621)) ## Version 1.34.0/0.55b0 (2025-06-04)