main
py 33 lines 933 Bytes
Raw
1 # SPDX-License-Identifier: Apache-2.0
2 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3
4
5 from fastapi import APIRouter, Request
6 from fastapi.responses import Response
7
8 from vllm.engine.protocol import EngineClient
9 from vllm.logger import init_logger
10 from vllm.v1.engine.exceptions import EngineDeadError
11
12 logger = init_logger(__name__)
13
14
15 router = APIRouter()
16
17
18 def engine_client(request: Request) -> EngineClient:
19 return request.app.state.engine_client
20
21
22 @router.get("/health", response_class=Response)
23 async def health(raw_request: Request) -> Response:
24 """Health check."""
25 client = engine_client(raw_request)
26 if client is None:
27 # Render-only servers have no engine; they are always healthy.
28 return Response(status_code=200)
29 try:
30 await client.check_health()
31 return Response(status_code=200)
32 except EngineDeadError:
33 return Response(status_code=503)