Diagnostic tool for vLLM inference servers
Project description
Diagnose vLLM server bottlenecks from live metrics.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3e236c98654d19ea7cfc9288c4ced513182d993faa0e1010dcd9a04910967547
|
|
| MD5 |
c2925cb24865f375f4f3fe2598132bff
|
|
| BLAKE2b-256 |
21538ee6ac15de8e8e7781b2ee83f56ab28cd006f41c1877140622ce63947ad0
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
918c47d6d307b49c8027ebb2c569e7f393a65645f0e668ee946f0e32c1ac06b8
|
|
| MD5 |
0ededb1a1d73f420b1548292258ce645
|
|
| BLAKE2b-256 |
431a6490703bfb85e8058e33977fef3b35391006655efe12e77e8fa183a77abe
|