@maschinenlesbar.org/openka-cli
    Preparing search index...

    Interface EngineMetrics

    Where an engine's time went, counted as it goes (issue #14): a slow sync could not tell waiting on the upstream from extracting without ps, iostat and nettop. Read by the pipeline for a run's timing and progress line. On the engine's own clock, so a test with an injected one gets exact numbers.

    interface EngineMetrics {
        durations: number[];
        reconnects: number;
        requests: number;
        retries: number;
        retryReasons: RetryReasons;
        throttled: number;
        upstreamMs: number;
        waitMs: number;
    }
    Index
    durations: number[]

    Each transport call's milliseconds, in order — for a percentile.

    reconnects: number

    Requests sent again at once on a new connection, because the kept-alive one had been closed by the server (HttpResponse.reconnected). Not retries: the first never reached the server.

    requests: number

    Calls to the transport: every attempt and every redirect hop.

    retries: number

    Of those, attempts after the first of one request.

    retryReasons: RetryReasons

    Why each retry was made (issue #31): a 429/503, a timeout, a failed connection, anything else.

    throttled: number

    429 and 503 answers: the upstream asking to slow down.

    upstreamMs: number

    Milliseconds inside the transport, summed.

    waitMs: number

    Milliseconds spent waiting before a request: pacing (--min-host-interval, a source's floor) and retry backoff.