Pydantic Logfireの紹介¶
Logfireは、Pydanticの背後にあるチームから来ており、オープンソースライブラリと同じ信念に基づいて構築された観測可能なプラットフォームです。
Logfireの特徴:
- シンプルでパワフル:Logfireのダッシュボードは、提供する機能に比べてシンプルであり、エンジニアリングチーム全体が実際にそれを使用することを保証します。
- Python中心の洞察:豊富なPythonオブジェクトの表示から、イベントループのテレメトリ、Pythonコードとデータベースクエリの分析まで、LogfireはPythonアプリケーションの動作の比類のない可視性を提供します。
- SQL形式:は、標準のSQLを使用してデータをクエリします—すべてのコントロール(多くの人にとって)は、新しい知識を学ぶ必要はありません。SQLを使用すると、既存のBIツールとデータベースクエリライブラリを使用してデータをクエリすることもできます。
- OpenTelemometry:Logfireは、既存のツール、インフラストラクチャ、およびツールを使用して、ほとんどすべての言語をサポートする多くの一般的なPythonパッケージを開発できるOpenTelemometryの独善的なラッパーです。
- Pydanticの統合:は、Pydanticモデルを流れるデータを理解し、検証に関する組み込みの分析を取得します。
Pydantic Logfireは、より少ないコード、より少ない時間、より良い理解でアプリケーションを検出するのに役立ちます。
_スタックトレース_で針を見つける¶
私たちはPythonとその特性を理解しています。Python環境のユニークな課題と機会を解決するために、Python開発者がPython開発者のために慎重に作成したPydantic Logfire。 これは、Pythonアプリケーションにとって意味のある方法で提示される_の正しい_データを所有することです。
Pythonの精神に基づいて
- シンプルでパワフル: Pydanticライブラリのアイデアを模倣して、Pydantic Logfireは初心者に直感的な出発点を提供すると同時に、専門家が必要とする深さを提供します。 使いやすさ、複雑さ、生産性の間で同じバランスを取り、観察可能性を実現するために再設計されました。
- はPythonとPydanticから生まれました。クリエイターがPythonのオープンソースエコシステムに没頭するにつれて、Pydantic Logfireを設計して、PythonとPydanticのニュアンスと深く統合し、一般的な観測可能なプラットフォームよりもカスタマイズを提供しました の経験。
データをインサイトに昇格
- による深いPython統合、Pydantic Logfireは、最小限の手動作業でコードを自動的に検出し、非同期コードに対する優れた洞察を提供し、詳細なパフォーマンス分析を提供し、インタプリタと同じにします Pythonオブジェクトを表示する方法。既存のPydanticユーザーにとって、Pydanticモデルを使用するための比類のない洞察も提供します。
- 構造化データとSQLへの直接アクセスは、Pandas、SQLAlchemy、
psqlなどの使い慣れたツールを使用してクエリを実行したり、BIツールとシームレスに統合したり、AIを使用して生成したりできることを意味します SQLは、Pythonオブジェクトと構造化データをクエリに使用できるようにします。プラットフォーム全体でクエリ言語としてvanilla PostgreSQLを使用すると、一貫性のある強力で柔軟なクエリエクスペリエンスが保証されます。 - は、を介してOpenTelemometryを利用し、PydanticLogfireは、一般的なPythonパッケージの自動検出を提供し、言語間のデータ統合をサポートし、OpenTelemometryと互換性のあるバックエンドまたはプロキシへのデータのエクスポートをサポートします。
Pydantic Logfire:あなたにふさわしい観測可能なプラットフォーム¶
Pydantic Logfireは、小屋の中の単なるツールではありません。これは、Python開発者がPython開発者のために慎重に作成したカスタムソリューションであり、開発作業がPython自体と同じくらいスムーズで効率的であることを保証します。
最小限のスクリプトから大規模な展開まで、Pydantic Logfireはあなたが待ち望んでいた観測可能なソリューションです。
シンプルで強力:ロケット: {#simplicity}
Pydantic Logfireは非常にシンプルで使いやすいはずです。
pip install logfire # (1)!
logfire auth # (2)!
コード内で、
import logfire
from datetime import date
logfire.configure() # (1)!
logfire.info('Hello, {name}!', name='world') # (2)!
with logfire.span('Asking the user their {question}', question='age'): # (3)!
user_input = input('How old are you [YYYY-mm-dd]? ')
dob = date.fromisoformat(user_input) # (4)!
logfire.debug('{dob=} {age=!r}', dob=dob, age=date.today() - dob) # (5)!
-
信息レベルのHello world!を記録します。name='world'はSQLクエリを使用できるプロパティとして保存されます。 -
スパンでは、他のLogfire呼び出しをネストすることができ、コードの実行にかかる時間も測定できます。それらはトレースの基本的な部分です!
-
ユーザー入力から日付を抽出しようとします。例外が発生した場合、外部スパンには例外の詳細が含まれます。
-
たとえば、これを記録します
dob=2000-01-01 age=datetime.timedelta(days=8838)の调试レベル。
これは単純なログに似ているように見えるかもしれませんが、はるかに強力です。
- ログの構造化データ
- あなたが見ているものを文脈に置くためのネストされたログ/トレース
- 設定なしでデータを表示するためのカスタマイズされたプラットフォーム
- Pythonオブジェクトの美しい表示など、さらに多くのものがあります—以下を参照してください
注意する
既存のアプリケーションがある場合コードを追加します logfire.* 呼び出す前に、OTel統合の設定最大の価値を得る。
PythonとPydanticの洞察: snake: {#python}
豊富なPythonオブジェクトの表示から、イベントループのテレメトリやPythonコードの分析まで、Pydantic Logfireを使用すると、他のどの観察可能なツールよりもPythonがどのように機能するかを明確に理解できます。
Logfireには、すぐに使用できるPydantic統合もあり、Pydanticモデルを介してデータを理解し、検証分析を取得できます。
私たちはPydanticモデルを直接記録することができます:
from datetime import date
import logfire
from pydantic import BaseModel
logfire.configure()
class User(BaseModel):
name: str
country_code: str
dob: date
user = User(name='Anne', country_code='USA', dob='2000-01-01')
logfire.info('user processed: {user!r}', user=user) # (1)!
- これは
用户处理的:User(name='Anne', country_code='US', dob=datetime.date(2000, 1, 1))を表示しますが、Logfireプラットフォームでモデルの「美しい」ビューを見ることもできます。
または、検証に関する情報を自動的に記録することもできます。
from datetime import date
import logfire
from pydantic import BaseModel
logfire.configure(pydantic_plugin=logfire.PydanticPlugin(record='all')) # (1)!
class User(BaseModel):
name: str
country_code: str
dob: date
User(name='Anne', country_code='USA', dob='2000-01-01') # (2)!
User(name='Ben', country_code='USA', dob='2000-02-02')
User(name='Charlie', country_code='GBR', dob='1990-03-03')
-
この設定は、すべてのPydanticモデルの検証に関する詳細情報を記録することを意味します。検証の失敗に関する詳細情報だけを記録することもできますし、指標だけを記録することもできます。Pydanticプラグインのドキュメントを参照してください。
-
Pydanticプラグインを有効にしているので、Pydanticの検証はすべてLogfireに記録されます。
Pydanticプラグインの詳細については、こちらをご覧ください。
ボンネットの下のOpenTelemometry:望遠鏡:{#otel}
ために Pydanticログファイア に基づいています オープンテレメトリー 使用できるように構築します多くの一般的なPythonパッケージの検出。
たとえば、単純なFast APIアプリケーションを2行のコードで検出できます。
from datetime import date
import logfire
from pydantic import BaseModel
from fastapi import FastAPI
app = FastAPI()
logfire.configure()
logfire.instrument_fastapi(app) # (1)!
# next, instrument your database connector, http library etc. and add the logging handler (2)
class User(BaseModel):
name: str
country_code: str
dob: date
@app.post('/')
async def add_user(user: User):
# we would store the user here
return {'message': f'{user.name} added'}
-
以外にlogfireの設定 さらに、この行は通常、Logfireを使用してFast APIアプリケーションを検出するために必要なすべてです。これは、他のほとんどの一般的なPython Webフレームワークにも当てはまります。
-
"統合"ページには、アプリケーションの他の部分を検出する方法の詳細が含まれています。
それを実行するには、Fast API contribパッケージ、Fast API自体、およびuvicornをインストールする必要があります。
pip install 'logfire[fastapi]' fastapi uvicorn # (1)!
uvicorn fastapi_example:app # (2)!
-
'fastapi'extra、Fast API、uvicornを含む'logfire'パッケージをインストールしてください。
-
uvicornを使用してFast APIアプリケーションを実行します。
これにより、HTTPリクエストに関する情報と、正常に入力された検証の結果の詳細が表示されます。
失敗した入力検証の詳細:
構造化データとSQL: abacus: {#sql}
純粋な仕様Postgres SQLを使用してデータをクエリする—すべての制御、(多くの人にとって)新しい知識を学ぶ必要はありません。基盤となるPostgresデータベースへの直接アクセスも提供しています。つまり、好きなPostgres互換ツールを使用してLogfireをクエリできます。
これには、Super set、Grafana、Google Looker Studioなどのダッシュボード構築プラットフォームが含まれ、Pandas、SQLAlchemy、さらには psql も含まれます。
最も広く使用されているSQLデータベースを使用する大きな利点の1つは、Chat GPTのような生成AIツールがSQLの記述に優れていることです。
Logfire呼び出し(リスト、ディクショナリ、データクラス、Pydanticモデル、データフレームなど)にPythonオブジェクトを含めるだけで、構造化データとしてプラットフォームでいつでも検索できます。
たとえば、上記の 用户 モデルのデータを使用して、米国のユーザーを一覧表示できます。
SELECT attributes->'result'->>'name' as name, age(attributes->'result'->>'dob') as age
FROM records
WHERE attributes->'result'->>'country_code' = 'USA'
また、米国のユーザーに関連するトラッキングのみをライブビューに表示するようにフィルタリングすることもできます
attributes->'result'->>'country_code' = 'USA'
本文总阅读量次






