feat - filter analytics by customer

This commit is contained in:
Ishaan Jaff 2024-06-03 20:42:17 -07:00
parent 5567cf7683
commit ddc8b158ef

View file

@ -11648,6 +11648,7 @@ async def model_metrics(
startTime: Optional[datetime] = None, startTime: Optional[datetime] = None,
endTime: Optional[datetime] = None, endTime: Optional[datetime] = None,
api_key: Optional[str] = None, api_key: Optional[str] = None,
customer: Optional[str] = None,
): ):
global prisma_client, llm_router global prisma_client, llm_router
if prisma_client is None: if prisma_client is None:
@ -11663,6 +11664,9 @@ async def model_metrics(
if api_key is None or api_key == "undefined": if api_key is None or api_key == "undefined":
api_key = "null" api_key = "null"
if customer is None or customer == "undefined":
customer = "null"
sql_query = """ sql_query = """
SELECT SELECT
api_base, api_base,
@ -11681,6 +11685,12 @@ async def model_metrics(
ELSE TRUE ELSE TRUE
END END
) )
AND (
CASE
WHEN $5 != 'null' THEN "end_user" = $5
ELSE TRUE
END
)
GROUP BY GROUP BY
api_base, api_base,
model_group, model_group,
@ -11693,7 +11703,7 @@ async def model_metrics(
""" """
_all_api_bases = set() _all_api_bases = set()
db_response = await prisma_client.db.query_raw( db_response = await prisma_client.db.query_raw(
sql_query, _selected_model_group, startTime, endTime, api_key sql_query, _selected_model_group, startTime, endTime, api_key, customer
) )
_daily_entries: dict = {} # {"Jun 23": {"model1": 0.002, "model2": 0.003}} _daily_entries: dict = {} # {"Jun 23": {"model1": 0.002, "model2": 0.003}}
@ -11753,6 +11763,7 @@ async def model_metrics_slow_responses(
startTime: Optional[datetime] = None, startTime: Optional[datetime] = None,
endTime: Optional[datetime] = None, endTime: Optional[datetime] = None,
api_key: Optional[str] = None, api_key: Optional[str] = None,
customer: Optional[str] = None,
): ):
global prisma_client, llm_router, proxy_logging_obj global prisma_client, llm_router, proxy_logging_obj
if prisma_client is None: if prisma_client is None:
@ -11765,6 +11776,9 @@ async def model_metrics_slow_responses(
if api_key is None or api_key == "undefined": if api_key is None or api_key == "undefined":
api_key = "null" api_key = "null"
if customer is None or customer == "undefined":
customer = "null"
startTime = startTime or datetime.now() - timedelta(days=30) startTime = startTime or datetime.now() - timedelta(days=30)
endTime = endTime or datetime.now() endTime = endTime or datetime.now()
@ -11794,6 +11808,12 @@ WHERE
ELSE TRUE ELSE TRUE
END END
) )
AND (
CASE
WHEN $6 != 'null' THEN "end_user" = $6
ELSE TRUE
END
)
GROUP BY GROUP BY
api_base api_base
ORDER BY ORDER BY
@ -11807,6 +11827,7 @@ ORDER BY
startTime, startTime,
endTime, endTime,
api_key, api_key,
customer,
) )
if db_response is not None: if db_response is not None:
@ -11831,6 +11852,7 @@ async def model_metrics_exceptions(
startTime: Optional[datetime] = None, startTime: Optional[datetime] = None,
endTime: Optional[datetime] = None, endTime: Optional[datetime] = None,
api_key: Optional[str] = None, api_key: Optional[str] = None,
customer: Optional[str] = None,
): ):
global prisma_client, llm_router global prisma_client, llm_router
if prisma_client is None: if prisma_client is None: