Skip to content

Commit 2ed482d

Browse files
authored
Pass meter provider to Pydantic AI (#1136)
1 parent 49a1911 commit 2ed482d

File tree

4 files changed

+1024
-944
lines changed

4 files changed

+1024
-944
lines changed

logfire/_internal/formatter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ def _fstring_chunks(
179179
for node_value in arg_node.values:
180180
if isinstance(node_value, ast.Constant):
181181
# These are the parts of the f-string not enclosed by `{}`, e.g. 'foo ' in f'foo {bar}'
182-
value: str = node_value.value
182+
value: str = node_value.value # type: ignore
183183
result.append({'v': value, 't': 'lit'})
184184
new_template += value
185185
else:

logfire/_internal/integrations/pydantic_ai.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,22 @@ def instrument_pydantic_ai(
1818
) -> None | InstrumentedModel:
1919
if event_mode is None:
2020
event_mode = InstrumentationSettings.event_mode
21-
settings = InstrumentationSettings(
21+
kwargs = dict(
2222
tracer_provider=logfire_instance.config.get_tracer_provider(),
2323
event_logger_provider=logfire_instance.config.get_event_logger_provider(),
2424
event_mode=event_mode,
2525
**kwargs,
2626
)
27+
try:
28+
settings = InstrumentationSettings(
29+
meter_provider=logfire_instance.config.get_meter_provider(),
30+
**kwargs,
31+
)
32+
except TypeError: # pragma: no cover
33+
# Handle older pydantic-ai versions that do not support meter_provider.
34+
settings = InstrumentationSettings(
35+
**kwargs,
36+
)
2737
if isinstance(obj, Agent):
2838
obj.instrument = settings
2939
elif isinstance(obj, Model):

tests/test_configure.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -575,9 +575,9 @@ def test_logfire_config_console_options() -> None:
575575
def get_batch_span_exporter(processor: SpanProcessor) -> SpanExporter:
576576
assert isinstance(processor, BatchSpanProcessor)
577577
try:
578+
exporter = processor.span_exporter
579+
except AttributeError: # pragma: no cover
578580
exporter = processor._batch_processor._exporter # type: ignore
579-
except AttributeError:
580-
exporter = processor.span_exporter # type: ignore
581581
return exporter # type: ignore
582582

583583

0 commit comments

Comments
 (0)