Skip to content

Commit 2fdd658

Browse files
authored
Silence events warnings for internal users (#4850)
* 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. Backport of #4847
1 parent dc0a9b3 commit 2fdd658

File tree

4 files changed

+25
-7
lines changed

4 files changed

+25
-7
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1010
> [!IMPORTANT]
1111
> We are working on stabilizing the Log signal that would require making deprecations and breaking changes. We will try to reduce the releases that may require an update to your code, especially for instrumentations or for sdk developers.
1212

13+
## Unreleased
14+
15+
- Silence events API warnings for internal users
16+
([#4847](https://github.com/open-telemetry/opentelemetry-python/pull/4847))
17+
1318
## Version 1.39.0/0.60b0 (2025-12-03)
1419

1520
- `opentelemetry-api`: Convert objects of any type other than AnyValue in attributes to string to be exportable

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)