diff --git a/ui/litellm-dashboard/src/components/networking.tsx b/ui/litellm-dashboard/src/components/networking.tsx index 9740c83e68f..b7660ee0e9f 100644 --- a/ui/litellm-dashboard/src/components/networking.tsx +++ b/ui/litellm-dashboard/src/components/networking.tsx @@ -979,7 +979,8 @@ export const teamSpendLogsCall = async (accessToken: String) => { export const tagsSpendLogsCall = async ( accessToken: String, startTime: String | undefined, - endTime: String | undefined + endTime: String | undefined, + tags: String[] | undefined ) => { try { let url = proxyBaseUrl @@ -990,6 +991,11 @@ export const tagsSpendLogsCall = async ( url = `${url}?start_date=${startTime}&end_date=${endTime}`; } + // if tags, convert the list to a comma separated string + if (tags) { + url += `${url}&tags=${tags.join(",")}`; + } + console.log("in tagsSpendLogsCall:", url); const response = await fetch(`${url}`, { method: "GET", diff --git a/ui/litellm-dashboard/src/components/usage.tsx b/ui/litellm-dashboard/src/components/usage.tsx index e3425aa8dec..780b9c0ea30 100644 --- a/ui/litellm-dashboard/src/components/usage.tsx +++ b/ui/litellm-dashboard/src/components/usage.tsx @@ -144,6 +144,7 @@ const UsagePage: React.FC = ({ const [globalActivity, setGlobalActivity] = useState({} as GlobalActivityData); const [globalActivityPerModel, setGlobalActivityPerModel] = useState([]); const [selectedKeyID, setSelectedKeyID] = useState(""); + const [selectedTags, setSelectedTags] = useState(["all-tags"]); const [dateValue, setDateValue] = useState({ from: new Date(Date.now() - 7 * 24 * 60 * 60 * 1000), to: new Date(), @@ -175,6 +176,10 @@ const UsagePage: React.FC = ({ return formatter.format(number); } + + useEffect(() => { + updateTagSpendData(dateValue.from, dateValue.to); + }, [dateValue, selectedTags]); const updateEndUserData = async (startTime: Date | undefined, endTime: Date | undefined, uiSelectedKey: string | null) => { @@ -212,12 +217,15 @@ const UsagePage: React.FC = ({ // startTime put it to the first hour of the selected date startTime.setHours(0, 0, 0, 0); - let top_tags = await tagsSpendLogsCall(accessToken, startTime.toISOString(), endTime.toISOString()); + let top_tags = await tagsSpendLogsCall( + accessToken, + startTime.toISOString(), + endTime.toISOString(), + selectedTags.length === 0 ? undefined : selectedTags + ); setTopTagsData(top_tags.spend_per_tag); console.log("Tag spend data updated successfully"); - - } function formatDate(date: Date) { @@ -293,14 +301,15 @@ const UsagePage: React.FC = ({ setTotalSpendPerTeam(total_spend_per_team); - //get top tags - const top_tags = await tagsSpendLogsCall(accessToken, dateValue.from?.toISOString(), dateValue.to?.toISOString()); - setTopTagsData(top_tags.spend_per_tag); - - // all_tag_names + // all_tag_names -> used for dropdown const all_tag_names = await allTagNamesCall(accessToken); setAllTagNames(all_tag_names.tag_names); + //get top tags + const top_tags = await tagsSpendLogsCall(accessToken, dateValue.from?.toISOString(), dateValue.to?.toISOString(), undefined); + setTopTagsData(top_tags.spend_per_tag); + + // get spend per end-user let spend_user_call = await adminTopEndUsersCall(accessToken, null, undefined, undefined); setTopUsers(spend_user_call); @@ -362,13 +371,7 @@ const UsagePage: React.FC = ({ return (
- + All Up @@ -387,6 +390,13 @@ const UsagePage: React.FC = ({ + Monthly Spend @@ -763,26 +773,30 @@ const UsagePage: React.FC = ({ - setSelectedTags(value as string[])} > - All Tags - - { - allTagNames && allTagNames?.map((tag: any, index: number) => { - return ( - - {tag} - - ); - }) - } - + setSelectedTags(["all-tags"])} + > + All Tags + + {allTagNames && + allTagNames + .filter((tag) => tag !== "all-tags") + .map((tag: any, index: number) => { + return ( + + {tag} + + ); + })} + diff --git a/ui/litellm-dashboard/src/components/view_user_spend.tsx b/ui/litellm-dashboard/src/components/view_user_spend.tsx index d74dcaecf2a..326dedee958 100644 --- a/ui/litellm-dashboard/src/components/view_user_spend.tsx +++ b/ui/litellm-dashboard/src/components/view_user_spend.tsx @@ -131,7 +131,7 @@ const ViewUserSpend: React.FC = ({ userID, userRole, accessT ${roundedSpend}

-
+ {/*
Team Models @@ -144,7 +144,7 @@ const ViewUserSpend: React.FC = ({ userID, userRole, accessT -
+
*/} ); }