Skip to content

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 it is derived

The assessment is a read-only interpretation of results the rules already produced — it does not re-run any rule logic:

  • Classification looks at which rules fired and, for a few cases, a raw metric value (e.g. whether any requests are waiting) to distinguish similar shapes such as long-prefill vs. queueing.
  • Evidence is pulled from the findings that fired this run, so the bullets carry the run's real numbers rather than restating thresholds.
  • Confidence starts from the primary finding's own confidence and rises as independent findings corroborate the same cause.

It is deliberately conservative: when evidence is weak or conflicting it returns No clear bottleneck or low confidence rather than guessing. It also avoids speculative claims (e.g. hardware choice) that the tool has no direct evidence for.

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.