Skip to content

Commit 21ac93d

Browse files
committed
Revert Otel Upgrade
1 parent e9ab203 commit 21ac93d

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

pydantic_ai_slim/pydantic_ai/models/instrumented.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@
77
from typing import Any, Callable, Literal
88
from urllib.parse import urlparse
99

10+
from opentelemetry._events import (
11+
EventLogger, # pyright: ignore[reportPrivateImportUsage]
12+
EventLoggerProvider, # pyright: ignore[reportPrivateImportUsage]
13+
Event, # pyright: ignore[reportPrivateImportUsage]
14+
get_event_logger_provider, # pyright: ignore[reportPrivateImportUsage]
15+
)
1016
from opentelemetry._logs import (
1117
Logger, # pyright: ignore[reportPrivateImportUsage]
1218
LoggerProvider, # pyright: ignore[reportPrivateImportUsage]
@@ -90,7 +96,7 @@ def __init__(
9096
event_mode: Literal['attributes', 'logs'] = 'attributes',
9197
tracer_provider: TracerProvider | None = None,
9298
meter_provider: MeterProvider | None = None,
93-
event_logger_provider: LoggerProvider | None = None,
99+
event_logger_provider: LoggerProvider | EventLoggerProvider | None = None,
94100
include_binary_content: bool = True,
95101
include_content: bool = True,
96102
):
@@ -121,7 +127,11 @@ def __init__(
121127
scope_name = 'pydantic-ai'
122128
self.tracer = tracer_provider.get_tracer(scope_name, __version__)
123129
self.meter = meter_provider.get_meter(scope_name, __version__)
124-
self.event_logger = event_logger_provider.get_logger(scope_name, __version__)
130+
try:
131+
self.event_logger = event_logger_provider.get_logger(scope_name, __version__)
132+
except AttributeError:
133+
# Older OTel/logfire versions don't support LoggerProvider
134+
self.event_logger = event_logger_provider.get_event_logger(scope_name, __version__)
125135
self.event_mode = event_mode
126136
self.include_binary_content = include_binary_content
127137
self.include_content = include_content
@@ -332,7 +342,7 @@ def _record_metrics():
332342
# to prevent them from being redundantly recorded in the span itself by logfire.
333343
record_metrics()
334344

335-
def _emit_events(self, span: Span, events: list[LogRecord]) -> None:
345+
def _emit_events(self, span: Span, events: list[LogRecord] | list[LogRecord]) -> None:
336346
if self.instrumentation_settings.event_mode == 'logs':
337347
for event in events:
338348
self.instrumentation_settings.event_logger.emit(event)

uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)