Засыпка данных¶
Когда 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
本文总阅读量次