fix(proxy_server.py): do a health check on db before returning if proxy ready (if db connected)

This commit is contained in:
Krrish Dholakia 2024-02-06 12:57:05 -08:00
parent e542aa10cc
commit e5fec98e1f
2 changed files with 24 additions and 11 deletions

View file

@ -4051,16 +4051,16 @@ async def health_readiness():
cache_type = litellm.cache.type cache_type = litellm.cache.type
if prisma_client is not None: # if db passed in, check if it's connected if prisma_client is not None: # if db passed in, check if it's connected
if prisma_client.db.is_connected() == True: await prisma_client.health_check() # test the db connection
response_object = {"db": "connected"} response_object = {"db": "connected"}
return { return {
"status": "healthy", "status": "healthy",
"db": "connected", "db": "connected",
"cache": cache_type, "cache": cache_type,
"litellm_version": version, "litellm_version": version,
"success_callbacks": litellm.success_callback, "success_callbacks": litellm.success_callback,
} }
else: else:
return { return {
"status": "healthy", "status": "healthy",

View file

@ -472,8 +472,6 @@ class PrismaClient:
reset_at: Optional[datetime] = None, reset_at: Optional[datetime] = None,
): ):
try: try:
print_verbose("PrismaClient: get_data")
response: Any = None response: Any = None
if token is not None or (table_name is not None and table_name == "key"): if token is not None or (table_name is not None and table_name == "key"):
# check if plain text or hash # check if plain text or hash
@ -885,6 +883,21 @@ class PrismaClient:
) )
raise e raise e
async def health_check(self):
"""
Health check endpoint for the prisma client
"""
sql_query = """
SELECT 1
FROM "LiteLLM_VerificationToken"
LIMIT 1
"""
# Execute the raw query
# The asterisk before `user_id_list` unpacks the list into separate arguments
response = await self.db.query_raw(sql_query)
return response
class DBClient: class DBClient:
""" """