Skip to content

Commit 382fa46

Browse files
DylanRussellxrmxlzchenaabmass
authored
Mark events API/SDK as deprecated (#4654)
* Mark events API/SDK as deprecated * Add PR # to changelog * Update CHANGELOG.md Co-authored-by: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com> * Add deprecatrred warnings to event methods * Update CHANGELOG.md * Update __init__.py * Update __init__.py * Add to deprecation that this will be removed in the future --------- Co-authored-by: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com> Co-authored-by: Leighton Chen <lechen@microsoft.com> Co-authored-by: Aaron Abbott <aaronabbott@google.com>
1 parent 5307dd0 commit 382fa46

File tree

3 files changed

+54
-0
lines changed

3 files changed

+54
-0
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7272
- `log_record.resource` - The Resource
7373
- `log_record.instrumentation_scope` - The InstrumentationScope (now included, was in LogData before)
7474
- `log_record.limits` - The LogRecordLimits
75+
- 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
76+
([#4654](https://github.com/open-telemetry/opentelemetry-python/pull/4654)).
7577

7678
## Version 1.38.0/0.59b0 (2025-10-16)
7779

opentelemetry-api/src/opentelemetry/_events/__init__.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
from os import environ
1818
from typing import Optional, cast
1919

20+
from typing_extensions import deprecated
21+
2022
from opentelemetry._logs import LogRecord
2123
from opentelemetry._logs.severity import SeverityNumber
2224
from opentelemetry.environment_variables import (
@@ -30,6 +32,10 @@
3032
_logger = getLogger(__name__)
3133

3234

35+
@deprecated(
36+
"You should use `LogRecord` with the `event_name` field set instead. "
37+
"Deprecated since version 1.39.0 and will be removed in a future release."
38+
)
3339
class Event(LogRecord):
3440
def __init__(
3541
self,
@@ -59,6 +65,10 @@ def __init__(
5965
self.name = name
6066

6167

68+
@deprecated(
69+
"You should use `Logger` instead. "
70+
"Deprecated since version 1.39.0 and will be removed in a future release."
71+
)
6272
class EventLogger(ABC):
6373
def __init__(
6474
self,
@@ -77,11 +87,19 @@ def emit(self, event: "Event") -> None:
7787
"""Emits a :class:`Event` representing an event."""
7888

7989

90+
@deprecated(
91+
"You should use `NoOpLogger` instead. "
92+
"Deprecated since version 1.39.0 and will be removed in a future release."
93+
)
8094
class NoOpEventLogger(EventLogger):
8195
def emit(self, event: Event) -> None:
8296
pass
8397

8498

99+
@deprecated(
100+
"You should use `ProxyLogger` instead. "
101+
"Deprecated since version 1.39.0 and will be removed in a future release."
102+
)
85103
class ProxyEventLogger(EventLogger):
86104
def __init__(
87105
self,
@@ -118,6 +136,10 @@ def emit(self, event: Event) -> None:
118136
self._event_logger.emit(event)
119137

120138

139+
@deprecated(
140+
"You should use `LoggerProvider` instead. "
141+
"Deprecated since version 1.39.0 and will be removed in a future release."
142+
)
121143
class EventLoggerProvider(ABC):
122144
@abstractmethod
123145
def get_event_logger(
@@ -130,6 +152,10 @@ def get_event_logger(
130152
"""Returns an EventLoggerProvider for use."""
131153

132154

155+
@deprecated(
156+
"You should use `NoOpLoggerProvider` instead. "
157+
"Deprecated since version 1.39.0 and will be removed in a future release."
158+
)
133159
class NoOpEventLoggerProvider(EventLoggerProvider):
134160
def get_event_logger(
135161
self,
@@ -143,6 +169,10 @@ def get_event_logger(
143169
)
144170

145171

172+
@deprecated(
173+
"You should use `ProxyLoggerProvider` instead. "
174+
"Deprecated since version 1.39.0 and will be removed in a future release."
175+
)
146176
class ProxyEventLoggerProvider(EventLoggerProvider):
147177
def get_event_logger(
148178
self,
@@ -171,6 +201,10 @@ def get_event_logger(
171201
_PROXY_EVENT_LOGGER_PROVIDER = ProxyEventLoggerProvider()
172202

173203

204+
@deprecated(
205+
"You should use `get_logger_provider` instead. "
206+
"Deprecated since version 1.39.0 and will be removed in a future release."
207+
)
174208
def get_event_logger_provider() -> EventLoggerProvider:
175209
global _EVENT_LOGGER_PROVIDER # pylint: disable=global-variable-not-assigned
176210
if _EVENT_LOGGER_PROVIDER is None:
@@ -201,12 +235,20 @@ def set_elp() -> None:
201235
)
202236

203237

238+
@deprecated(
239+
"You should use `set_logger_provider` instead. "
240+
"Deprecated since version 1.39.0 and will be removed in a future release."
241+
)
204242
def set_event_logger_provider(
205243
event_logger_provider: EventLoggerProvider,
206244
) -> None:
207245
_set_event_logger_provider(event_logger_provider, log=True)
208246

209247

248+
@deprecated(
249+
"You should use `get_logger` instead. "
250+
"Deprecated since version 1.39.0 and will be removed in a future release."
251+
)
210252
def get_event_logger(
211253
name: str,
212254
version: Optional[str] = None,

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
from time import time_ns
1717
from typing import Optional
1818

19+
from typing_extensions import deprecated
20+
1921
from opentelemetry import trace
2022
from opentelemetry._events import Event
2123
from opentelemetry._events import EventLogger as APIEventLogger
@@ -32,6 +34,10 @@
3234
_logger = logging.getLogger(__name__)
3335

3436

37+
@deprecated(
38+
"You should use `Logger` instead. "
39+
"Deprecated since version 1.39.0 and will be removed in a future release."
40+
)
3541
class EventLogger(APIEventLogger):
3642
def __init__(
3743
self,
@@ -71,6 +77,10 @@ def emit(self, event: Event) -> None:
7177
self._logger.emit(log_record)
7278

7379

80+
@deprecated(
81+
"You should use `LoggerProvider` instead. "
82+
"Deprecated since version 1.39.0 and will be removed in a future release."
83+
)
7484
class EventLoggerProvider(APIEventLoggerProvider):
7585
def __init__(self, logger_provider: Optional[LoggerProvider] = None):
7686
self._logger_provider = logger_provider or get_logger_provider()

0 commit comments

Comments
 (0)