Daten nachfüllen.¶
Wenn Logfire keine Protokolle an den Server senden kann, speichert es Daten auf der Festplatte, um Datenverluste zu vermeiden.
Logfire unterstützt das Laden von Daten in großen Mengen, sowohl beim Importieren von Daten aus anderen Systemen als auch beim Laden von Daten, die bereits auf Festplatten gespeichert wurden.
Zum Auffüllen Ihrer Daten können Sie den Befehl logfire 回填 verwenden:
$logfire---Hilfe
Standardmäßig liest logfire backfill aus der Standard-Fallbackdatei, so dass Sie, wenn Sie nur versuchen, Daten nach einem Netzwerkfehler hochzuladen, Folgendes ausführen können:
$logfire löschen
Masse an Daten aufladen¶
Der gleiche Mechanismus kann auch für das Laden von Daten in großen Mengen verwendet werden, beispielsweise wenn Sie Daten von einem anderen System importieren.
Zuerst wird ein Speicher-Dokument erstellt:
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)))
Dadurch wird eine 的logfire_spans123.bin-Datei erstellt, die die Daten enthält.
Dann laden Sie es mit dem 回填-Befehlszeilenprogramm:
$ logfire backfill --file logfire_spans123.bin
本文总阅读量次