问题出现得很突然,日志倒是留得挺全。SGLang 0.3 启动时开了 --enable-metrics,Prometheus 抓 30000/metrics 一直 404,业务请求走 30000 又是正常的,面板上一条样本都没有。
刚开始盯着「容器只映射了业务端口」,折腾了半个多小时,排掉了。
把日志和配置对完,能解释这个现象的基本就这几处。指标暴露在单独端口,与业务端口分开。少数情况下是启动参数写了但该版本不认,指标没开。
少数情况下是采集路径写错,不是 /metrics。
第一件事是看启动日志里指标监听在哪个端口
grep -i metrics server.log
然后逐个端口探测指标路径
for p in 30000 30001; do curl -s -o /dev/null -w "$p %{http_code}\n" http://127.0.0.1:$p/metrics; done
接着在容器里补映射指标端口
docker run --gpus all -p 30000:30000 -p 30001:30001 sglang:latest
末了改抓取目标后确认样本数
curl -s http://127.0.0.1:30001/metrics | grep -c sglang
怎么算真的好了,看的是同一批现象。抓取目标状态为 up,面板出现 QPS 与 TTFT 曲线,样本数与实际请求量同量级。
补一句。推理框架的指标端口常与业务端口分开,部署清单里要同时映射两个端口。这类问题最好一次改到位,反复小改反而容易把原因搅混。
