diff --git a/ui/litellm-dashboard/src/components/view_logs/columns.tsx b/ui/litellm-dashboard/src/components/view_logs/columns.tsx index 3d9d73bb09b..a9110d31d30 100644 --- a/ui/litellm-dashboard/src/components/view_logs/columns.tsx +++ b/ui/litellm-dashboard/src/components/view_logs/columns.tsx @@ -62,6 +62,7 @@ export type LogEntry = { proxy_server_request?: string | any[] | Record; session_id?: string; status?: string; + completionStartTime?: string; request_duration_ms?: number; session_total_count?: number; session_total_spend?: number; @@ -270,6 +271,25 @@ export const createColumns = (sortProps?: LogsSortProps): ColumnDef[] ); }, }, + { + header: "TTFT (s)", + accessorKey: "completionStartTime", + cell: (info: any) => { + const row = info.row.original; + const completionStartTime = info.getValue(); + if (!completionStartTime) return -; + // For non-streaming, completionStartTime == endTime so TTFT is not meaningful + if (completionStartTime === row.endTime) return -; + const ttftMs = new Date(completionStartTime).getTime() - new Date(row.startTime).getTime(); + if (ttftMs <= 0) return -; + const ttftSeconds = (ttftMs / 1000).toFixed(2); + return ( + + {ttftSeconds} + + ); + }, + }, { header: "Team Name", accessorKey: "metadata.user_api_key_team_alias",