@qtsurfer/sdk
    Preparing search index...

    Type Alias LiveRunStats

    What a run has been doing, as of its last snapshot. The platform refreshes it about once a minute while the run is being executed, so opsPerSecond is an average over that interval, not an instantaneous rate.

    type LiveRunStats = {
        asOfMs: number;
        instrumentsSeen: number;
        opsPerSecond: number;
        processed: number;
        progressedAtMs?: number;
        stale: boolean;
    }
    Index
    asOfMs: number

    Epoch milliseconds when these counters were last written.

    instrumentsSeen: number

    How many distinct instruments the run has received an update for.

    opsPerSecond: number

    Updates accepted per second over the last refresh interval. 0 when none arrived.

    processed: number

    Updates of instruments the run has accepted since it started executing. It can start again from zero if the run is restarted.

    progressedAtMs?: number

    Epoch milliseconds of the last snapshot in which processed had grown. Absent until the run has processed anything. A run fed by a source that updates rarely (a funding rate, for example) can stay flat for hours: that is how such a run behaves, not a fault.

    stale: boolean

    true when the run is meant to be running (desired is RUNNING) and its counters have not been refreshed for several refresh intervals: the platform has stopped updating them, which is worth checking against state. false otherwise. A run whose processed is flat is not stale; progressedAtMs is how to tell it apart.