データを埋め戻す¶
Logfireがサーバーにログを送信できない場合、データの損失を避けるためにデータをディスクにダンプします。
Logfireはデータの一括読み込みをサポートしており、他のシステムからデータをインポートしたり、ディスクにダンプしたデータを読み込んだりできます。
データを埋め戻すには、logfire 回填 コマンドを使用します。
$logfireを--helpに戻す
デフォルトでは、logfire backfill はデフォルトのロールバックファイルから読み込まれるため、ネットワーク障害の後にデータをアップロードしようとするだけの場合は、次のように実行できます。
$logfireを埋め戻す
データの一括読み込み¶
別のシステムからデータをインポートした場合など、データを一括で読み込むためにも同じメカニズムを使用できます。
まず、ダンプファイルを作成します。
from datetime import datetime
from logfire.backfill import Log, PrepareBackfill, StartSpan
with PrepareBackfill('logfire_spans123.bin') as backfill:
span = StartSpan(
start_timestamp=datetime(2023, 1, 1, 0, 0, 0),
span_name='session',
msg_template='session {user_id=} {path=}',
service_name='docs.pydantic.dev',
log_attributes={'user_id': '123', 'path': '/test'},
)
child = StartSpan(
start_timestamp=datetime(2023, 1, 1, 0, 0, 1),
span_name='query',
msg_template='ran db query',
service_name='docs.pydantic.dev',
log_attributes={'query': 'SELECT * FROM users'},
parent=span,
)
backfill.write(
Log(
timestamp=datetime(2023, 1, 1, 0, 0, 2),
msg_template='GET {path=}',
level='info',
service_name='docs.pydantic.dev',
attributes={'path': '/test'},
)
)
backfill.write(child.end(end_timestamp=datetime(2023, 1, 1, 0, 0, 3)))
backfill.write(span.end(end_timestamp=datetime(2023, 1, 1, 0, 0, 4)))
これにより、的logfire_spans123.bin データを含むファイルが作成されます。
次に、回填 コマンドラインツールを使用してロードします。
$ logfire backfill --file logfire_spans123.bin
本文总阅读量次