跳转至

Pydantic

Logfire 有一个 Pydantic 插件来检测 Pydantic 模型。该插件提供有关模型验证的日志和指标。

要启用该插件,请执行下列操作之一:

  • LOGFIRE_PYDANTIC_PLUGIN_RECORD 环境变量设置为 all

  • pyproject.toml 中设置pydantic_plugin_record,例如:

[tool.logfire]
pydantic_plugin_record = "all"
  • 在 logfire.configure 中使用 pydantic_plugin 参数,例如:

    日志导入

    logfire.configure(pydantic_plugin=logfire。PydanticPlugin(record='全部'))

请注意,如果仅使用最后一个选项,则只会检测在调用 logfire.configure _后_定义和导入的模型。

第三方模块

默认情况下,插件不会检测第三方模块以避免干扰。您可以为使用 [include][logfire 的用户启用检测。PydanticPlugin.include] 配置。

import logfire

logfire.configure(pydantic_plugin=logfire.PydanticPlugin(record='all', include={'openai'}))

您还可以使用 [exclude][logfire] 禁用您自己的模块的检测。PydanticPlugin.exclude] 配置。

import logfire

logfire.configure(pydantic_plugin=logfire.PydanticPlugin(record='all', exclude={'app.api.v1'}))

模型配置

如果您想对插件进行更精细的控制,您可以在 Pydantic 模型中使用 [plugin_settings][pydantic.config.ConfigDict.plugin_settings] 类参数。

from logfire.integrations.pydantic import PluginSettings
from pydantic import BaseModel


class Foo(BaseModel, plugin_settings=PluginSettings(logfire={'record': 'failure'})):
    ...

记录

record用于配置要记录的内容。它可以是下列值之一:

  • off:禁用检测。这是默认值。

  • all:发送所有事件的跟踪和指标。

  • failure:发送所有验证的指标,仅发送验证失败的跟踪。

  • 指标:仅发送指标。

<!-- Sampling can be configured by trace_sample_rate key in [plugin_settings][pydantic.config.ConfigDict.plugin_settings].

from pydantic import BaseModel


class Foo(BaseModel, plugin_settings={'logfire': {'record': 'all', 'trace_sample_rate': 0.4}}):
    ...

标签

标记用于向跟踪和指标添加其他信息。可以通过在 [plugin_settings][pydantic.config.ConfigDict.plugin_settings] 中添加 tags 键来包含它们。

from pydantic import BaseModel


class Foo(
  BaseModel,
  plugin_settings={'logfire': {'record': 'all', 'tags': ('tag1', 'tag2')}}
):

本文总阅读量