#!/usr/bin/env python3
import argparse
SCENARIOS={
 'queue':{"queue_ms":2800,"prefill_ms":400,"decode_ms":1100,"diagnosis":"queue_pressure"},
 'decode':{"queue_ms":100,"prefill_ms":400,"decode_ms":3500,"diagnosis":"decode_slowdown"},
}
def one(name):
    d=SCENARIOS[name]; total=sum(d[k] for k in ('queue_ms','prefill_ms','decode_ms'))
    print(f"scenario={name} queue_ms={d['queue_ms']} prefill_ms={d['prefill_ms']} decode_ms={d['decode_ms']} total_ms={total}")
    print(f"diagnosis={d['diagnosis']}")
def sweep():
    rows=[(5,5.0,.7),(15,14.8,.9),(25,23.0,1.6),(35,24.1,5.8),(45,24.3,12.4)]
    print('load throughput_per_s p95_ttft_s slo_lt_2s')
    safe=[]
    for load,tp,ttft in rows:
        ok=ttft<2; print(f"{load:>4} {tp:>8.1f} {ttft:>8.1f} {str(ok).lower()}");
        if ok:safe.append(load)
    print(f"highest_slo_safe_load={max(safe)}")
    print('diagnosis=throughput_knee_visible')
def main():
    ap=argparse.ArgumentParser(); ap.add_argument('--scenario',choices=['queue','decode','sweep'],default='queue'); a=ap.parse_args()
    sweep() if a.scenario=='sweep' else one(a.scenario)
if __name__=='__main__': main()
