Skip to content

    Observability and queues

    The server exposes live telemetry at /system and protects the GPU with a bounded admission queue. Both are visible in the web console monitor.

    GET /system is open (no authentication) and exposes no transcript content — it is safe for the console monitor to poll before a key is entered. It returns:

    FieldMeaning
    versionServer version
    stateModel state (warming, ready, …)
    device, compute_type, modelActive runtime and model
    gpuGPU telemetry, or null when no NVIDIA driver is present
    activity{active, waiting} request counters
    modelsActive model plus the selectable presets

    When an NVIDIA driver is available, gpu reports best-effort utilization, memory (memory_total_bytes and used), temperature, and power via NVML. On a host with no driver (for example CPU-only), gpu is null and the console shows “GPU telemetry unavailable” — this is expected, not an error.

    GPU transcription is serialized by default. Requests that arrive while a slot is busy wait briefly in a bounded queue; the server sheds load with 503 responses rather than building an unbounded backlog.

    VariableDefaultEffect
    MAX_CONCURRENCY1Number of transcriptions running at once
    QUEUE_SIZE32Maximum requests allowed to wait for a slot
    QUEUE_TIMEOUT_S120Seconds a queued request waits before timing out

    Behavior:

    • If the queue is already full (QUEUE_SIZE waiting), a new request is rejected immediately with 503, error code queue_full, and Retry-After: 5.
    • If a request waits longer than QUEUE_TIMEOUT_S for a slot, it is rejected with 503, error code queue_timeout, and Retry-After: 10.
    • A client that disconnects while waiting releases its place in the queue.

    The active and waiting counters surfaced under /systemactivity reflect this gate in real time, and the console renders them as a “running / queued” activity pill.

    Raising MAX_CONCURRENCY above 1 lets multiple transcriptions share the GPU. Size it to your GPU memory and latency goals; a single large model on a busy GPU usually runs best serialized.

    Application logs go to stdout at INFO. Transcript text is not logged unless LOG_INPUT_TEXT=true; by default only lengths and timings are recorded (see Privacy and responsible use).