diff --git a/CHANGELOG.md b/CHANGELOG.md index 15001c9e9ad..35beaaa053a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -72,6 +72,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `log_record.resource` - The Resource - `log_record.instrumentation_scope` - The InstrumentationScope (now included, was in LogData before) - `log_record.limits` - The LogRecordLimits +- Mark the Events API/SDK as deprecated. The Logs API/SDK should be used instead, an event is now a `LogRecord` with the `event_name` field set +([#4654](https://github.com/open-telemetry/opentelemetry-python/pull/4654)). ## Version 1.38.0/0.59b0 (2025-10-16) diff --git a/opentelemetry-api/src/opentelemetry/_events/__init__.py b/opentelemetry-api/src/opentelemetry/_events/__init__.py index f073b223345..d86fd12721d 100644 --- a/opentelemetry-api/src/opentelemetry/_events/__init__.py +++ b/opentelemetry-api/src/opentelemetry/_events/__init__.py @@ -17,6 +17,8 @@ from os import environ from typing import Optional, cast +from typing_extensions import deprecated + from opentelemetry._logs import LogRecord from opentelemetry._logs.severity import SeverityNumber from opentelemetry.environment_variables import ( @@ -30,6 +32,10 @@ _logger = getLogger(__name__) +@deprecated( + "You should use `LogRecord` with the `event_name` field set instead. " + "Deprecated since version 1.39.0 and will be removed in a future release." +) class Event(LogRecord): def __init__( self, @@ -59,6 +65,10 @@ def __init__( self.name = name +@deprecated( + "You should use `Logger` instead. " + "Deprecated since version 1.39.0 and will be removed in a future release." +) class EventLogger(ABC): def __init__( self, @@ -77,11 +87,19 @@ def emit(self, event: "Event") -> None: """Emits a :class:`Event` representing an event.""" +@deprecated( + "You should use `NoOpLogger` instead. " + "Deprecated since version 1.39.0 and will be removed in a future release." +) class NoOpEventLogger(EventLogger): def emit(self, event: Event) -> None: pass +@deprecated( + "You should use `ProxyLogger` instead. " + "Deprecated since version 1.39.0 and will be removed in a future release." +) class ProxyEventLogger(EventLogger): def __init__( self, @@ -118,6 +136,10 @@ def emit(self, event: Event) -> None: self._event_logger.emit(event) +@deprecated( + "You should use `LoggerProvider` instead. " + "Deprecated since version 1.39.0 and will be removed in a future release." +) class EventLoggerProvider(ABC): @abstractmethod def get_event_logger( @@ -130,6 +152,10 @@ def get_event_logger( """Returns an EventLoggerProvider for use.""" +@deprecated( + "You should use `NoOpLoggerProvider` instead. " + "Deprecated since version 1.39.0 and will be removed in a future release." +) class NoOpEventLoggerProvider(EventLoggerProvider): def get_event_logger( self, @@ -143,6 +169,10 @@ def get_event_logger( ) +@deprecated( + "You should use `ProxyLoggerProvider` instead. " + "Deprecated since version 1.39.0 and will be removed in a future release." +) class ProxyEventLoggerProvider(EventLoggerProvider): def get_event_logger( self, @@ -171,6 +201,10 @@ def get_event_logger( _PROXY_EVENT_LOGGER_PROVIDER = ProxyEventLoggerProvider() +@deprecated( + "You should use `get_logger_provider` instead. " + "Deprecated since version 1.39.0 and will be removed in a future release." +) def get_event_logger_provider() -> EventLoggerProvider: global _EVENT_LOGGER_PROVIDER # pylint: disable=global-variable-not-assigned if _EVENT_LOGGER_PROVIDER is None: @@ -201,12 +235,20 @@ def set_elp() -> None: ) +@deprecated( + "You should use `set_logger_provider` instead. " + "Deprecated since version 1.39.0 and will be removed in a future release." +) def set_event_logger_provider( event_logger_provider: EventLoggerProvider, ) -> None: _set_event_logger_provider(event_logger_provider, log=True) +@deprecated( + "You should use `get_logger` instead. " + "Deprecated since version 1.39.0 and will be removed in a future release." +) def get_event_logger( name: str, version: Optional[str] = None, diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/_events/__init__.py b/opentelemetry-sdk/src/opentelemetry/sdk/_events/__init__.py index 12ddb48c757..ca90e9b1522 100644 --- a/opentelemetry-sdk/src/opentelemetry/sdk/_events/__init__.py +++ b/opentelemetry-sdk/src/opentelemetry/sdk/_events/__init__.py @@ -16,6 +16,8 @@ from time import time_ns from typing import Optional +from typing_extensions import deprecated + from opentelemetry import trace from opentelemetry._events import Event from opentelemetry._events import EventLogger as APIEventLogger @@ -32,6 +34,10 @@ _logger = logging.getLogger(__name__) +@deprecated( + "You should use `Logger` instead. " + "Deprecated since version 1.39.0 and will be removed in a future release." +) class EventLogger(APIEventLogger): def __init__( self, @@ -71,6 +77,10 @@ def emit(self, event: Event) -> None: self._logger.emit(log_record) +@deprecated( + "You should use `LoggerProvider` instead. " + "Deprecated since version 1.39.0 and will be removed in a future release." +) class EventLoggerProvider(APIEventLoggerProvider): def __init__(self, logger_provider: Optional[LoggerProvider] = None): self._logger_provider = logger_provider or get_logger_provider()