Assessment
Every diagnose run ends with an assessment — a concise "Likely bottleneck"
summary that appears before the detailed findings. Where the findings list
individual symptoms, the assessment interprets the combination of them into a
single most-likely root cause, so you can start triage without reading every
rule.
The assessment never replaces or hides the findings — it sits on top of them.
Example
Likely bottleneck: KV cache saturation (high confidence)
Requests are likely waiting because the server has limited KV cache
headroom, often caused by high concurrency or long-context requests.
The same summary appears as a top-level assessment object in --output json
(see JSON Output).
Categories
The assessment classifies the run into one of:
| Category | Meaning |
|---|---|
| Queue saturation | Requests arrive faster than they can be served; the queue grows |
| KV cache saturation | Requests wait on limited KV cache headroom |
| Long prefill | High TTFT with no queue — long input prompts dominate prefill |
| Decode / TPOT | Per-token generation is the bottleneck, not queueing |
| Replica imbalance | Load is unevenly distributed across replicas |
| Error or failure | The server is returning errors or aborting requests |
| Idle | No active traffic; throughput/latency warnings are suppressed |
| No clear bottleneck | Evidence is weak or conflicting |
How to read it
The assessment summarizes the findings and measurements from the current run. Its evidence contains the observed values supporting the diagnosis, and its confidence indicates how strongly those values point to the reported bottleneck.
When evidence is weak or conflicting, vLLM Doctor reports No clear bottleneck or low confidence rather than guessing.
Sequence-length evidence is optional
Distinguishing long-prefill from decode-heavy workloads is sharper when
vLLM's prompt/generation token histograms
(vllm:request_prompt_tokens_bucket, vllm:request_generation_tokens_bucket)
are available. When they are not exposed, the assessment still works — it
simply relies on latency and queue signals and does not use prompt/output
length evidence.