Skip to content

Commit 8509b6f

Browse files
authored
Misc instrumentation followups (#1044)
1 parent d5d16ef commit 8509b6f

File tree

4 files changed

+7
-23
lines changed

4 files changed

+7
-23
lines changed

pydantic_ai_slim/pydantic_ai/models/instrumented.py

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
from dataclasses import dataclass, field
77
from typing import Any, Callable, Literal
88

9-
import logfire_api
109
from opentelemetry._events import Event, EventLogger, EventLoggerProvider, get_event_logger_provider
1110
from opentelemetry.trace import Span, Tracer, TracerProvider, get_tracer_provider
1211
from opentelemetry.util.types import AttributeValue
@@ -59,27 +58,15 @@ def __init__(
5958
event_logger_provider: EventLoggerProvider | None = None,
6059
event_mode: Literal['attributes', 'logs'] = 'attributes',
6160
):
61+
from pydantic_ai import __version__
62+
6263
super().__init__(wrapped)
6364
tracer_provider = tracer_provider or get_tracer_provider()
6465
event_logger_provider = event_logger_provider or get_event_logger_provider()
65-
self.tracer = tracer_provider.get_tracer('pydantic-ai')
66-
self.event_logger = event_logger_provider.get_event_logger('pydantic-ai')
66+
self.tracer = tracer_provider.get_tracer('pydantic-ai', __version__)
67+
self.event_logger = event_logger_provider.get_event_logger('pydantic-ai', __version__)
6768
self.event_mode = event_mode
6869

69-
@classmethod
70-
def from_logfire(
71-
cls,
72-
wrapped: Model | KnownModelName,
73-
logfire_instance: logfire_api.Logfire = logfire_api.DEFAULT_LOGFIRE_INSTANCE,
74-
event_mode: Literal['attributes', 'logs'] = 'attributes',
75-
) -> InstrumentedModel:
76-
if hasattr(logfire_instance.config, 'get_event_logger_provider'):
77-
event_provider = logfire_instance.config.get_event_logger_provider()
78-
else:
79-
event_provider = None
80-
tracer_provider = logfire_instance.config.get_tracer_provider()
81-
return cls(wrapped, tracer_provider, event_provider, event_mode)
82-
8370
async def request(
8471
self,
8572
messages: list[ModelMessage],

pydantic_ai_slim/pyproject.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ dependencies = [
3535
"eval-type-backport>=0.2.0",
3636
"griffe>=1.3.2",
3737
"httpx>=0.27",
38-
"logfire-api>=1.2.0",
3938
"pydantic>=2.10",
4039
"pydantic-graph==0.0.31",
4140
"exceptiongroup; python_version < '3.11'",

tests/models/test_instrumented.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ def timestamp(self) -> datetime:
106106
@pytest.mark.anyio
107107
@requires_logfire_events
108108
async def test_instrumented_model(capfire: CaptureLogfire):
109-
model = InstrumentedModel.from_logfire(MyModel(), event_mode='logs')
109+
model = InstrumentedModel(MyModel(), event_mode='logs')
110110
assert model.system == 'my_system'
111111
assert model.model_name == 'my_model'
112112

@@ -330,7 +330,7 @@ async def test_instrumented_model_not_recording():
330330
@pytest.mark.anyio
331331
@requires_logfire_events
332332
async def test_instrumented_model_stream(capfire: CaptureLogfire):
333-
model = InstrumentedModel.from_logfire(MyModel(), event_mode='logs')
333+
model = InstrumentedModel(MyModel(), event_mode='logs')
334334

335335
messages: list[ModelMessage] = [
336336
ModelRequest(
@@ -413,7 +413,7 @@ async def test_instrumented_model_stream(capfire: CaptureLogfire):
413413
@pytest.mark.anyio
414414
@requires_logfire_events
415415
async def test_instrumented_model_stream_break(capfire: CaptureLogfire):
416-
model = InstrumentedModel.from_logfire(MyModel(), event_mode='logs')
416+
model = InstrumentedModel(MyModel(), event_mode='logs')
417417

418418
messages: list[ModelMessage] = [
419419
ModelRequest(

uv.lock

Lines changed: 0 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)