Skip to content

Commit 8101abd

Browse files
authored
Silence events warnings for internal users (#4847)
* opentelemetry-test-utils: import from deprecated _events only when used So we spare the warnings when not using _events at all. * opentelemetry-sdk: suppress Events API deprecation warnings Supress warnings from internal users until we drop the deprecated API. * Add changelog * Fixup tests * fix lint
1 parent 13c8edc commit 8101abd

File tree

4 files changed

+22
-7
lines changed

4 files changed

+22
-7
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1616
([#4840](https://github.com/open-telemetry/opentelemetry-python/pull/4840))
1717
- Add python 3.14 support
1818
([#4798](https://github.com/open-telemetry/opentelemetry-python/pull/4798))
19+
- Silence events API warnings for internal users
20+
([#4847](https://github.com/open-telemetry/opentelemetry-python/pull/4847))
1921

2022
## Version 1.39.0/0.60b0 (2025-12-03)
2123

opentelemetry-sdk/src/opentelemetry/sdk/_configuration/__init__.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@
2222
import logging
2323
import logging.config
2424
import os
25+
import warnings
2526
from abc import ABC, abstractmethod
2627
from os import environ
2728
from typing import Any, Callable, Mapping, Sequence, Type, Union
2829

2930
from typing_extensions import Literal
3031

31-
from opentelemetry._events import set_event_logger_provider
3232
from opentelemetry._logs import set_logger_provider
3333
from opentelemetry.environment_variables import (
3434
OTEL_LOGS_EXPORTER,
@@ -37,7 +37,6 @@
3737
OTEL_TRACES_EXPORTER,
3838
)
3939
from opentelemetry.metrics import set_meter_provider
40-
from opentelemetry.sdk._events import EventLoggerProvider
4140
from opentelemetry.sdk._logs import LoggerProvider, LoggingHandler
4241
from opentelemetry.sdk._logs.export import (
4342
BatchLogRecordProcessor,
@@ -268,8 +267,19 @@ def _init_logging(
268267
BatchLogRecordProcessor(exporter_class(**exporter_args))
269268
)
270269

271-
event_logger_provider = EventLoggerProvider(logger_provider=provider)
272-
set_event_logger_provider(event_logger_provider)
270+
# silence warnings from internal users until we drop the deprecated Events API
271+
with warnings.catch_warnings():
272+
warnings.simplefilter("ignore", category=DeprecationWarning)
273+
# pylint: disable=import-outside-toplevel
274+
from opentelemetry._events import ( # noqa: PLC0415
275+
set_event_logger_provider,
276+
)
277+
from opentelemetry.sdk._events import ( # noqa: PLC0415
278+
EventLoggerProvider,
279+
)
280+
281+
event_logger_provider = EventLoggerProvider(logger_provider=provider)
282+
set_event_logger_provider(event_logger_provider)
273283

274284
if setup_logging_handler:
275285
# Add OTel handler

opentelemetry-sdk/tests/test_configurator.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -614,11 +614,11 @@ def setUp(self):
614614

615615
self.event_logger_provider_instance_mock = Mock()
616616
self.event_logger_provider_patch = patch(
617-
"opentelemetry.sdk._configuration.EventLoggerProvider",
617+
"opentelemetry.sdk._events.EventLoggerProvider",
618618
return_value=self.event_logger_provider_instance_mock,
619619
)
620620
self.set_event_logger_provider_patch = patch(
621-
"opentelemetry.sdk._configuration.set_event_logger_provider"
621+
"opentelemetry._events.set_event_logger_provider"
622622
)
623623

624624
self.processor_mock = self.processor_patch.start()

tests/opentelemetry-test-utils/src/opentelemetry/test/globals_test.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
import unittest
1616

17-
from opentelemetry import _events as events_api
1817
from opentelemetry import trace as trace_api
1918
from opentelemetry._logs import _internal as logging_api
2019
from opentelemetry.metrics import _internal as metrics_api
@@ -49,6 +48,10 @@ def reset_logging_globals() -> None:
4948
# pylint: disable=protected-access
5049
def reset_event_globals() -> None:
5150
"""WARNING: only use this for tests."""
51+
from opentelemetry import ( # pylint: disable=import-outside-toplevel # noqa: PLC0415
52+
_events as events_api,
53+
)
54+
5255
events_api._EVENT_LOGGER_PROVIDER_SET_ONCE = Once() # type: ignore[attr-defined]
5356
events_api._EVENT_LOGGER_PROVIDER = None # type: ignore[attr-defined]
5457
events_api._PROXY_EVENT_LOGGER_PROVIDER = (

0 commit comments

Comments
 (0)