विषय पर बढ़ें

बैकफिल डेटा

जब लॉगफायर सर्वर पर लॉग भेजने में असमर्थ होता है, तो यह डेटा हानि से बचने के लिए डेटा को डिस्क पर डंप करता है।

लॉगफायर डेटा के बैच लोडिंग का समर्थन करता है, या तो अन्य सिस्टम से डेटा आयात करके या डिस्क पर डंप किए गए डेटा को लोड करके।

डेटा को बैकफिल करने के लिए, आप उपयोग कर सकते हैं logfire 回填 कमांडः

$ लॉगफायर बैकफिल - मदद

डिफ़ॉल्ट रूप से,logfire backfill यह डिफ़ॉल्ट फॉलबैक फ़ाइल से पढ़ा जाएगा, इसलिए यदि आप केवल नेटवर्क विफलता के बाद डेटा अपलोड करने की कोशिश कर रहे हैं, तो आप चला सकते हैं:

$ लॉगफायर बैकफिल

बैच लोड डेटा

एक ही तंत्र का उपयोग बैचों में डेटा लोड करने के लिए भी किया जा सकता है, उदाहरण के लिए, यदि आप किसी अन्य सिस्टम से डेटा आयात करते हैं।

सबसे पहले, एक डंप फ़ाइल बनाएं:

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

本文总阅读量次