diff --git a/ui/litellm-dashboard/src/components/routing_groups/DeploymentCard.tsx b/ui/litellm-dashboard/src/components/routing_groups/DeploymentCard.tsx new file mode 100644 index 00000000000..7c794a35732 --- /dev/null +++ b/ui/litellm-dashboard/src/components/routing_groups/DeploymentCard.tsx @@ -0,0 +1,56 @@ +"use client"; +import React from "react"; + +interface DeploymentCardProps { + provider: string; + displayName: string; + providerColor: string; + label: string; // "Priority 1" or "Weight 83%" + avgLatencyMs: number; + percentage: number; // 0-100 + requestCount: number; + width?: number; // px, default 220 +} + +export default function DeploymentCard({ + provider, + displayName, + providerColor, + label, + avgLatencyMs, + percentage, + requestCount, + width = 220, +}: DeploymentCardProps) { + const initial = displayName.charAt(0).toUpperCase(); + return ( +
+ {/* Provider icon */} +
+ {initial} +
+ + {/* Name + label */} +
+
{displayName}
+
+ {label} · {avgLatencyMs > 0 ? `${Math.round(avgLatencyMs)}ms avg` : "—"} +
+
+ + {/* Percentage + req count */} +
+ + {Math.round(percentage)}% + + {requestCount} req +
+
+ ); +}