feat(performance): add recent success rates to model summary and enhance metrics retrieval

This commit is contained in:
CaIon
2026-06-18 12:00:03 +08:00
parent a37ce3d6b5
commit 208d86e96e
5 changed files with 129 additions and 23 deletions
+1
View File
@@ -48,6 +48,7 @@ export type PerfModelSummary = {
avg_latency_ms: number
success_rate: number
avg_tps: number
recent_success_rates?: number[]
request_count?: number
}
@@ -29,6 +29,7 @@ export type ModelPerfBadgeData = {
avg_latency_ms: number
success_rate: number
avg_tps: number
recent_success_rates?: number[]
}
export interface ModelPerfBadgeProps extends React.HTMLAttributes<HTMLDivElement> {
@@ -50,7 +51,15 @@ export const ModelPerfBadge = memo(function ModelPerfBadge(
const { avg_latency_ms, avg_tps, success_rate } = props.perf
const statusColor = getSuccessRateDotClass(success_rate)
const recentRates =
props.perf.recent_success_rates?.filter((rate) => Number.isFinite(rate)) ??
[]
const statusRates =
recentRates.length > 0 ? recentRates.slice(-3) : [success_rate]
const statusBars = [
...Array(Math.max(0, 3 - statusRates.length)).fill(null),
...statusRates,
].slice(-3)
return (
<div
@@ -83,9 +92,22 @@ export const ModelPerfBadge = memo(function ModelPerfBadge(
{t('Status short')}
</div>
<div className='flex h-4 items-center justify-end gap-0.5'>
<span className='bg-muted-foreground/10 h-2 w-1 rounded-full' />
<span className='bg-muted-foreground/15 h-2.5 w-1 rounded-full' />
<span className={cn('h-3 w-1 rounded-full', statusColor)} />
{statusBars.map((rate, index) => (
<span
key={`${index}-${rate ?? 'empty'}`}
className={cn(
'w-1 rounded-full',
index === 0 && 'h-2',
index === 1 && 'h-2.5',
index === 2 && 'h-3',
rate == null
? index === 0
? 'bg-muted-foreground/10'
: 'bg-muted-foreground/15'
: getSuccessRateDotClass(rate)
)}
/>
))}
</div>
</div>
</div>