应用监控的Python探针新增了vLLM/SGLang插件,支持对vLLM/SGLang推理引擎进行可观测。
ARMS目前仅支持对 vLLM/SGLang 框架进行可观测。
接入流程
步骤一:准备环境变量
export ARMS_APP_NAME=xxx # EAS应用名称。
export ARMS_REGION_ID=xxx # 对应的阿里云账号的RegionID。
export ARMS_LICENSE_KEY=xxx # 阿里云 LicenseKey。
export APSARA_APM_MODEL_SERVICE_FRAMEWORK=xxx #模型服务框架的类型,1. vLLM-v0 2. vLLM-v1 3. SGLang步骤二:修改推理引擎运行命令
修改推理引擎的运行命令。
以接入DeepSeek-R1-Distill-Qwen-7B模型为例。
vLLM原始指令:
gpu_count=$(nvidia-smi --query-gpu=count --format=csv,noheader | wc -l);vllm serve /model_dir --host 0.0.0.0 --port 8000 --root-path '/' --trust-remote-code --gpu-memory-utilization 0.95 --max-model-len 32768 --tensor-parallel-size $gpu_count --served-model-name DeepSeek-R1-Distill-Qwen-7B接入应用监控对应的vLLM指令:
gpu_count=$(nvidia-smi --query-gpu=count --format=csv,noheader | wc -l);export PIP_INDEX_URL=http://mirrors.cloud.aliyuncs.com/pypi/simple;export PIP_TRUSTED_HOST=mirrors.cloud.aliyuncs.com;export APSARA_APM_MODEL_SERVICE_FRAMEWORK=vLLM-v1;pip3 install aliyun-bootstrap;ARMS_REGION_ID=cn-hangzhou aliyun-bootstrap -a install;ARMS_APP_NAME=qwq32 ARMS_LICENSE_KEY=it0kjz0oxz@3115ad****** ARMS_REGION_ID=cn-hangzhou aliyun-instrument vllm serve /model_dir --host 0.0.0.0 --port 8000 --root-path '/' --trust-remote-code --gpu-memory-utilization 0.95 --max-model-len 32768 --tensor-parallel-size $gpu_count --served-model-name DeepSeek-R1-Distill-Qwen-7B新增部分说明:
配置 pypi 仓库,可以根据实际情况调整。
export PIP_INDEX_URL=http://mirrors.cloud.aliyuncs.com/pypi/simple;export PIP_TRUSTED_HOST=mirrors.cloud.aliyuncs.com;配置推理引擎类型。
export APSARA_APM_MODEL_SERVICE_FRAMEWORK=vLLM-v1;下载探针安装器。
pip3 install aliyun-bootstrap;使用安装器安装探针。
请根据实际地域替换
cn-hangzhou。ARMS_REGION_ID=cn-hangzhou aliyun-bootstrap -a install;
SGLang原始命令:
python -m sglang.launch_server --model-path /model_dir接入应用监控对应的SGLang指令:
export PIP_INDEX_URL=http://mirrors.cloud.aliyuncs.com/pypi/simple;export PIP_TRUSTED_HOST=mirrors.cloud.aliyuncs.com;export APSARA_APM_MODEL_SERVICE_FRAMEWORK=SGLang;pip3 install aliyun-bootstrap;ARMS_REGION_ID=cn-hangzhou aliyun-bootstrap -a install;ARMS_APP_NAME=qwq32 ARMS_LICENSE_KEY=it0kjz0oxz@3115ad****** ARMS_REGION_ID=cn-hangzhou aliyun-instrument python -m sglang.launch_server --model-path /model_dir新增部分说明:
配置 pipy 仓库,可以根据实际情况调整。
export PIP_INDEX_URL=http://mirrors.cloud.aliyuncs.com/pypi/simple; export PIP_TRUSTED_HOST=mirrors.cloud.aliyuncs.com;配置推理引擎类型
export APSARA_APM_MODEL_SERVICE_FRAMEWORK=SGLang;下载探针安装器。
pip3 install aliyun-bootstrap;使用安装器安装探针。
请根据实际地域替换
cn-hangzhou。ARMS_REGION_ID=cn-hangzhou aliyun-bootstrap -a install;
单击更新。
支持场景
ARMS 目前只支持官方提供的 vLLM 版本和 SGLang 版本,具体支持的版本范围请参考LLM(大语言模型)服务,用户修改过的版本不支持接入。
场景 | vLLM V0 | vLLM V1 | SGLang |
Chat对话/Completion补全调用 | 支持 | 支持 | 支持 |
Embedding调用 | 支持 | 支持 | 不支持 |
Rerank调用 | 不支持 | 支持 | 不支持 |
KV Cache传输耗时 | 不支持 | 支持 | 支持 |
Tokenizer/DeTokenizer执行耗时 | 不支持 | 支持 | 支持 |
常见问题
vLLM框架如何在日志中输出TraceID?
建议添加如下环境变量,让vLLM框架在打印日志时输出TraceID:
export OTEL_PYTHON_LOG_CORRELATION=true
export OTEL_PYTHON_LOG_LEVEL=info
export OTEL_PYTHON_LOG_FORMAT="%(asctime)s %(levelname)s [%(name)s] [%(filename)s:%(lineno)d] [trace_id=%(otelTraceID)s span_id=%(otelSpanID)s resource.service.name=%(otelServiceName)s trace_sampled=%(otelTraceSampled)s] - %(message)s"
export VLLM_LOGGING_PREFIX="[%(filename)s:%(lineno)d] [trace_id=%(otelTraceID)s span_id=%(otelSpanID)s resource.service.name=%(otelServiceName)s trace_sampled=%(otelTraceSampled)s]"之后在vLLM框架的启动命令中,添加--enable-log-requests启动参数,以允许vLLM框架打印请求级别的日志。
相关文档
vLLM/SGLang 采集的 Span 与指标列表:完整的采集数据清单。
vLLM/SGLang 采集配置说明:采集开关、链路采集精度、输入输出内容采集、指标采集以及引擎排障相关的配置项。
使用引擎并发分析诊断 vLLM/SGLang 应用:引擎并发分析功能的相关介绍。