백필 데이터¶
Logfire는 서버로 로그를 보낼 수 없으면 데이터 손실을 방지하기 위해 데이터를 디스크에 덤프합니다.
Logfire는 다른 시스템에서 데이터를 가져오거나 디스크에 덤프된 데이터를 로드하여 데이터 일괄 로드를 지원합니다.
데이터를 다시 채우려면 logfire 回填 명령을 사용할 수 있습니다.
$logfire 백필 -- 도움말
기본적으로 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
本文总阅读量次