diff --git a/vllm/entrypoints/serve/instrumentator/server_info.py b/vllm/entrypoints/serve/instrumentator/server_info.py index 6ba92d5b9..d6ef994f3 100644 --- a/vllm/entrypoints/serve/instrumentator/server_info.py +++ b/vllm/entrypoints/serve/instrumentator/server_info.py @@ -2,6 +2,8 @@ # SPDX-FileCopyrightText: Copyright contributors to the vLLM project +import asyncio +import functools from typing import Annotated, Literal import pydantic @@ -9,6 +11,7 @@ from fastapi import APIRouter, FastAPI, Query, Request from fastapi.responses import JSONResponse import vllm.envs as envs +from vllm.collect_env import get_env_info from vllm.config import VllmConfig from vllm.logger import init_logger @@ -32,6 +35,11 @@ def _get_vllm_env_vars(): return vllm_envs +@functools.lru_cache(maxsize=1) +def _get_system_env_info_cached(): + return get_env_info()._asdict() + + @router.get("/server_info") async def show_server_info( raw_request: Request, @@ -46,6 +54,7 @@ async def show_server_info( ), # fallback=str is needed to handle e.g. torch.dtype "vllm_env": _get_vllm_env_vars(), + "system_env": await asyncio.to_thread(_get_system_env_info_cached), } return JSONResponse(content=server_info)