Skip to main content

Diagnostic tool for vLLM inference servers

Project description

vLLM Doctor

Package version Supported Python versions

Diagnose vLLM server bottlenecks from live metrics.

vllm-doctor demo

vLLM Doctor reads vLLM server metrics and turns them into diagnostic findings: what looks unhealthy, why it may be happening, and which vLLM settings are worth checking first.

vllm-doctor --url http://localhost:8000/metrics

vLLM Doctor is not a dashboard replacement or benchmark runner. It is a fast server-side diagnostic snapshot for a single vLLM server or Prometheus target.

Why not just a dashboard?

Dashboards show metrics. vLLM Doctor explains server-side inference behavior.

Dashboards vLLM Doctor
Shows raw metrics
Explains what's wrong
Recommends vLLM configs
Requires setup
Works on a single server

How does this relate to GuideLLM?

GuideLLM is a good fit for generating workloads and measuring endpoint behavior. vLLM Doctor is a good fit for explaining server-side symptoms from vLLM metrics.

Used together, GuideLLM can create or replay load while vLLM Doctor helps explain bottlenecks such as queue pressure, KV cache pressure, high TTFT, or high TPOT.

Installation

With pip:

pip install vllm-doctor

With uv:

uv tool install vllm-doctor

Quickstart

Direct scrape:

vllm-doctor --url http://localhost:8000/metrics

Prometheus:

vllm-doctor --url http://localhost:9090

Options:

Usage: vllm-doctor [OPTIONS]

Options:
  -u, --url      TEXT         URL to diagnose (vLLM /metrics or Prometheus).  [required]
  -w, --window   TEXT         Time window (e.g. '1h', '30m', 'now').  [default: now]
  -f, --format   [text|json]  Output format.  [default: text]
  -v, --verbose               Show additional diagnostic detail.
  -l, --live     INTEGER      Refresh interval in seconds (e.g. --live 10).
  -c, --config   PATH         Path to config file (default: vllm-doctor.toml).
      --help                  Show this message and exit.

Example output

─────────── vLLM Doctor  ·  Health: CRITICAL  ·  Window: 5m ────────────

╭─  Queue pressure  [low confidence] ─────────────────────────────────╮
│   Waiting requests: 7                                                │
│                                                                      │
│    Add replicas or increase concurrency limits                      │
│    Inspect autoscaling thresholds                                   │
╰──────────────────────────────────────────────────────────────────────╯
╭─  KV cache pressure  [high confidence] ─────────────────────────────╮
│   GPU KV cache usage: 94%  ·  Waiting requests: 7                    │
│                                                                      │
│    Reduce max_num_seqs to limit concurrent sequences                │
│    Increase gpu_memory_utilization if GPU memory headroom exists    │
╰──────────────────────────────────────────────────────────────────────╯

  Queue Pressure        warning     [low]
  KV Cache Pressure     critical    [high]
  Low Throughput        ok
  Error Rate            ok
  High TTFT             ok

─────────────────────────── Observed Metrics ───────────────────────────

  Requests Running                             12
  Requests Waiting                              7
  GPU Cache Usage        ███████████████████░ 94%
  Decode Tokens/s                            42.0
  TTFT p95 (s)                              3.200
  TPOT p95 (s)                              0.050

Documentation

Read the full documentation: https://aminalaee.github.io/vllm-doctor

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vllm_doctor-0.3.0.tar.gz (17.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vllm_doctor-0.3.0-py3-none-any.whl (31.0 kB view details)

Uploaded Python 3

File details

Details for the file vllm_doctor-0.3.0.tar.gz.

File metadata

  • Download URL: vllm_doctor-0.3.0.tar.gz
  • Upload date:
  • Size: 17.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for vllm_doctor-0.3.0.tar.gz
Algorithm Hash digest
SHA256 3e236c98654d19ea7cfc9288c4ced513182d993faa0e1010dcd9a04910967547
MD5 c2925cb24865f375f4f3fe2598132bff
BLAKE2b-256 21538ee6ac15de8e8e7781b2ee83f56ab28cd006f41c1877140622ce63947ad0

See more details on using hashes here.

File details

Details for the file vllm_doctor-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: vllm_doctor-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 31.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for vllm_doctor-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 918c47d6d307b49c8027ebb2c569e7f393a65645f0e668ee946f0e32c1ac06b8
MD5 0ededb1a1d73f420b1548292258ce645
BLAKE2b-256 431a6490703bfb85e8058e33977fef3b35391006655efe12e77e8fa183a77abe

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page