diff --git a/CHANGELOG.md b/CHANGELOG.md index ba135db4f8..ea9f31c2ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +- 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)). - Update OTLP proto to v1.7 [#4645](https://github.com/open-telemetry/opentelemetry-python/pull/4645). - Add `event_name` as a top level field in the `LogRecord`. Events are now simply logs with the `event_name` field set, the logs SDK should be used to emit events ([#4652](https://github.com/open-telemetry/opentelemetry-python/pull/4652)). diff --git a/opentelemetry-api/src/opentelemetry/_events/__init__.py b/opentelemetry-api/src/opentelemetry/_events/__init__.py index f073b22334..445d238d28 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,9 @@ _logger = getLogger(__name__) +@deprecated( + "You should use `LogRecord` with the `event_name` field set instead. Deprecated since version 1.35.0." +) class Event(LogRecord): def __init__( self, @@ -59,6 +64,9 @@ def __init__( self.name = name +@deprecated( + "You should use `Logger` instead. Deprecated since version 1.35.0." +) class EventLogger(ABC): def __init__( self, @@ -77,11 +85,17 @@ def emit(self, event: "Event") -> None: """Emits a :class:`Event` representing an event.""" +@deprecated( + "You should use `NoOpLogger` instead. Deprecated since version 1.35.0." +) class NoOpEventLogger(EventLogger): def emit(self, event: Event) -> None: pass +@deprecated( + "You should use `ProxyLogger` instead. Deprecated since version 1.35.0." +) class ProxyEventLogger(EventLogger): def __init__( self, @@ -118,6 +132,9 @@ def emit(self, event: Event) -> None: self._event_logger.emit(event) +@deprecated( + "You should use `LoggerProvider` instead. Deprecated since version 1.35.0." +) class EventLoggerProvider(ABC): @abstractmethod def get_event_logger( @@ -130,6 +147,9 @@ def get_event_logger( """Returns an EventLoggerProvider for use.""" +@deprecated( + "You should use `NoOpLoggerProvider` instead. Deprecated since version 1.35.0." +) class NoOpEventLoggerProvider(EventLoggerProvider): def get_event_logger( self, @@ -143,6 +163,9 @@ def get_event_logger( ) +@deprecated( + "You should use `ProxyLoggerProvider` instead. Deprecated since version 1.35.0." +) class ProxyEventLoggerProvider(EventLoggerProvider): def get_event_logger( self, @@ -171,6 +194,9 @@ def get_event_logger( _PROXY_EVENT_LOGGER_PROVIDER = ProxyEventLoggerProvider() +@deprecated( + "You should use `get_logger_provider` instead. Deprecated since version 1.35.0." +) def get_event_logger_provider() -> EventLoggerProvider: global _EVENT_LOGGER_PROVIDER # pylint: disable=global-variable-not-assigned if _EVENT_LOGGER_PROVIDER is None: @@ -186,6 +212,9 @@ def get_event_logger_provider() -> EventLoggerProvider: return cast("EventLoggerProvider", _EVENT_LOGGER_PROVIDER) +@deprecated( + "You should use `_set_logger_provider` instead. Deprecated since version 1.35.0." +) def _set_event_logger_provider( event_logger_provider: EventLoggerProvider, log: bool ) -> None: @@ -201,12 +230,18 @@ def set_elp() -> None: ) +@deprecated( + "You should use `set_logger_provider` instead. Deprecated since version 1.35.0." +) 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.35.0." +) 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 c427a48e2f..e8b5709fc6 100644 --- a/opentelemetry-sdk/src/opentelemetry/sdk/_events/__init__.py +++ b/opentelemetry-sdk/src/opentelemetry/sdk/_events/__init__.py @@ -15,6 +15,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 @@ -26,6 +28,9 @@ _logger = logging.getLogger(__name__) +@deprecated( + "You should use `Logger` instead. Deprecated since version 1.35.0." +) class EventLogger(APIEventLogger): def __init__( self, @@ -65,6 +70,9 @@ def emit(self, event: Event) -> None: self._logger.emit(log_record) +@deprecated( + "You should use `LoggerProvider` instead. Deprecated since version 1.35.0." +) class EventLoggerProvider(APIEventLoggerProvider): def __init__(self, logger_provider: Optional[LoggerProvider] = None): self._logger_provider = logger_provider or get_logger_provider()