diff --git a/src/guidellm/presentation/data_models.py b/src/guidellm/presentation/data_models.py index 989ca8ab..fefcf7d8 100644 --- a/src/guidellm/presentation/data_models.py +++ b/src/guidellm/presentation/data_models.py @@ -208,7 +208,7 @@ def from_distribution_summary( class BenchmarkDatum(BaseModel): requests_per_second: float - tpot: TabularDistributionSummary + itl: TabularDistributionSummary ttft: TabularDistributionSummary throughput: TabularDistributionSummary time_per_request: TabularDistributionSummary @@ -217,7 +217,7 @@ class BenchmarkDatum(BaseModel): def from_benchmark(cls, bm: "GenerativeBenchmark"): return cls( requests_per_second=bm.metrics.requests_per_second.successful.mean, - tpot=TabularDistributionSummary.from_distribution_summary( + itl=TabularDistributionSummary.from_distribution_summary( bm.metrics.inter_token_latency_ms.successful ), ttft=TabularDistributionSummary.from_distribution_summary( diff --git a/src/ui/lib/components/MetricsSummary/MetricsSummary.component.tsx b/src/ui/lib/components/MetricsSummary/MetricsSummary.component.tsx index 0d804f5c..8f5e3aed 100644 --- a/src/ui/lib/components/MetricsSummary/MetricsSummary.component.tsx +++ b/src/ui/lib/components/MetricsSummary/MetricsSummary.component.tsx @@ -54,7 +54,7 @@ export const Component = () => { const { ttft: ttftSLO, - tpot: tpotSLO, + itl: itlSLO, timePerRequest: timePerRequestSLO, throughput: throughputSLO, percentile, @@ -62,7 +62,7 @@ export const Component = () => { maxX, errors, handleTtft, - handleTpot, + handleItl, handleTimePerRequest, handleThroughput, handlePercentileChange, @@ -72,8 +72,8 @@ export const Component = () => { const isTtftMatch = Boolean( ttftSLO && interpolatedMetricData.ttft.enforcedPercentileValue <= ttftSLO ); - const isTpotMatch = Boolean( - tpotSLO && interpolatedMetricData.tpot.enforcedPercentileValue <= tpotSLO + const isItlMatch = Boolean( + itlSLO && interpolatedMetricData.itl.enforcedPercentileValue <= itlSLO ); const isTprMatch = Boolean( timePerRequestSLO && @@ -123,7 +123,7 @@ export const Component = () => { { @@ -212,7 +212,7 @@ export const Component = () => { { diff --git a/src/ui/lib/components/MetricsSummary/useSummary.ts b/src/ui/lib/components/MetricsSummary/useSummary.ts index 0a6f550c..3046fcb9 100644 --- a/src/ui/lib/components/MetricsSummary/useSummary.ts +++ b/src/ui/lib/components/MetricsSummary/useSummary.ts @@ -13,7 +13,7 @@ type Errors = { [key: string]: string | undefined }; const initErrorsState: Errors = { ttft: undefined, - tpot: undefined, + itl: undefined, timePerRequest: undefined, throughput: undefined, }; @@ -47,20 +47,20 @@ export const useSummary = () => { const dispatch = useDispatch(); const { current, enforcedPercentile, tasksDefaults } = useSelector(selectSloState); - const { ttft, tpot, timePerRequest, throughput } = useSelector( + const { ttft, itl, timePerRequest, throughput } = useSelector( selectMetricsSummaryLineData ); const [errors, setErrors] = useState(initErrorsState); const ttftLimits = findMinMax(ttft || []); - const tpotLimits = findMinMax(tpot || []); + const itlLimits = findMinMax(itl || []); const timePerRequestLimits = findMinMax(timePerRequest || []); const throughputLimits = findMinMax(throughput || []); const limitsByMetric = { ttft: ttftLimits, - tpot: tpotLimits, + itl: itlLimits, timePerRequest: timePerRequestLimits, throughput: throughputLimits, }; @@ -112,7 +112,7 @@ export const useSummary = () => { maxX: ttftLimits.maxX, errors, handleTtft: handleChange('ttft'), - handleTpot: handleChange('tpot'), + handleItl: handleChange('itl'), handleTimePerRequest: handleChange('timePerRequest'), handleThroughput: handleChange('throughput'), handlePercentileChange, diff --git a/src/ui/lib/components/WorkloadMetrics/WorkloadMetrics.component.tsx b/src/ui/lib/components/WorkloadMetrics/WorkloadMetrics.component.tsx index ac333982..e7e632ca 100644 --- a/src/ui/lib/components/WorkloadMetrics/WorkloadMetrics.component.tsx +++ b/src/ui/lib/components/WorkloadMetrics/WorkloadMetrics.component.tsx @@ -36,14 +36,14 @@ export const leftColumn3 = (rpsValue: number, value: number, units: string) => ( export const Component = () => { const { data } = useGetBenchmarksQuery(); - const { ttft, tpot, timePerRequest, throughput } = useSelector( + const { ttft, itl, timePerRequest, throughput } = useSelector( selectMetricsDetailsLineData ); const { currentRequestRate } = useSelector(selectSloState); const formattedRequestRate = formatNumber(currentRequestRate); const { ttft: ttftAtRPS, - tpot: tpotAtRPS, + itl: itlAtRPS, timePerRequest: timePerRequestAtRPS, throughput: throughputAtRPS, } = useSelector(selectInterpolatedMetrics); @@ -57,7 +57,7 @@ export const Component = () => { { )} rightColumn={columnContent(formattedRequestRate, ttftAtRPS.percentiles, 'ms')} > - + - + @@ -99,7 +99,7 @@ export const Component = () => { { 's' )} > - + diff --git a/src/ui/lib/store/benchmarksWindowData.ts b/src/ui/lib/store/benchmarksWindowData.ts index a589e8ed..87faf7bc 100644 --- a/src/ui/lib/store/benchmarksWindowData.ts +++ b/src/ui/lib/store/benchmarksWindowData.ts @@ -1,7 +1,7 @@ export const benchmarksScript = `window.benchmarks = [ { requestsPerSecond: 11.411616848282272, - tpot: { + itl: { mean: 8.758024845683707, median: 8.788176945277623, mode: 7.119315011160714, @@ -172,7 +172,7 @@ export const benchmarksScript = `window.benchmarks = [ }, { requestsPerSecond: 36.289181300710815, - tpot: { + itl: { mean: 588.0161376137819, median: 461.7137227739607, mode: 323.1611592429025, @@ -343,7 +343,7 @@ export const benchmarksScript = `window.benchmarks = [ }, { requestsPerSecond: 20.752070927855794, - tpot: { + itl: { mean: 116.28360712595156, median: 26.769569941929408, mode: 10.624987738473076, @@ -514,7 +514,7 @@ export const benchmarksScript = `window.benchmarks = [ }, { requestsPerSecond: 26.81917480361788, - tpot: { + itl: { mean: 299.7306064613554, median: 372.7384294782366, mode: 13.360295976911273, @@ -685,7 +685,7 @@ export const benchmarksScript = `window.benchmarks = [ }, { requestsPerSecond: 26.823988819498975, - tpot: { + itl: { mean: 683.8011571339198, median: 742.2689029148647, mode: 317.1694278717041, @@ -856,7 +856,7 @@ export const benchmarksScript = `window.benchmarks = [ }, { requestsPerSecond: 24.50047903792646, - tpot: { + itl: { mean: 742.9258901891964, median: 773.0941431862967, mode: 538.750410079956, @@ -1027,7 +1027,7 @@ export const benchmarksScript = `window.benchmarks = [ }, { requestsPerSecond: 25.617829792196602, - tpot: { + itl: { mean: 663.3098317044122, median: 613.7458937508719, mode: 440.9824098859514, @@ -1198,7 +1198,7 @@ export const benchmarksScript = `window.benchmarks = [ }, { requestsPerSecond: 37.02892550982192, - tpot: { + itl: { mean: 606.4144710877113, median: 543.5235500335693, mode: 331.6155501774379, @@ -1369,7 +1369,7 @@ export const benchmarksScript = `window.benchmarks = [ }, { requestsPerSecond: 37.29183354201869, - tpot: { + itl: { mean: 603.3237551205925, median: 528.1183038439069, mode: 400.96027510506764, @@ -1540,7 +1540,7 @@ export const benchmarksScript = `window.benchmarks = [ }, { requestsPerSecond: 37.45318312972309, - tpot: { + itl: { mean: 600.7204526769262, median: 626.2100083487375, mode: 398.7384523664202, diff --git a/src/ui/lib/store/mockData.ts b/src/ui/lib/store/mockData.ts index 8295c60c..2fcb4b8f 100644 --- a/src/ui/lib/store/mockData.ts +++ b/src/ui/lib/store/mockData.ts @@ -95,7 +95,7 @@ export const benchmarks = [ ], bucketWidth: 0, }, - tpot: { + itl: { statistics: { total: 0, mean: 0, diff --git a/src/ui/lib/store/slices/benchmarks/benchmarks.api.ts b/src/ui/lib/store/slices/benchmarks/benchmarks.api.ts index 838dbc7a..efddfc39 100644 --- a/src/ui/lib/store/slices/benchmarks/benchmarks.api.ts +++ b/src/ui/lib/store/slices/benchmarks/benchmarks.api.ts @@ -45,9 +45,9 @@ const setDefaultSLOs = ( lastBM?.ttft, defaultPercentile ); - const tpotAvg = getAverageValueForPercentile( - firstBM?.tpot, - lastBM?.tpot, + const itlAvg = getAverageValueForPercentile( + firstBM?.itl, + lastBM?.itl, defaultPercentile ); const timePerRequestAvg = getAverageValueForPercentile( @@ -66,13 +66,13 @@ const setDefaultSLOs = ( currentRequestRate: firstBM?.requestsPerSecond, current: { ttft: formatNumber(ttftAvg, 0), - tpot: formatNumber(tpotAvg, 0), + itl: formatNumber(itlAvg, 0), timePerRequest: formatNumber(timePerRequestAvg, 0), throughput: formatNumber(throughputAvg, 0), }, tasksDefaults: { ttft: formatNumber(ttftAvg, 0), - tpot: formatNumber(tpotAvg, 0), + itl: formatNumber(itlAvg, 0), timePerRequest: formatNumber(timePerRequestAvg, 0), throughput: formatNumber(throughputAvg, 0), }, diff --git a/src/ui/lib/store/slices/benchmarks/benchmarks.interfaces.ts b/src/ui/lib/store/slices/benchmarks/benchmarks.interfaces.ts index 602ae17e..2a5f319e 100644 --- a/src/ui/lib/store/slices/benchmarks/benchmarks.interfaces.ts +++ b/src/ui/lib/store/slices/benchmarks/benchmarks.interfaces.ts @@ -20,7 +20,7 @@ interface Percentile { export interface BenchmarkMetrics { ttft: Statistics; - tpot: Statistics; + itl: Statistics; timePerRequest: Statistics; throughput: Statistics; } diff --git a/src/ui/lib/store/slices/benchmarks/benchmarks.selectors.ts b/src/ui/lib/store/slices/benchmarks/benchmarks.selectors.ts index 53d54f40..9aa5fd81 100644 --- a/src/ui/lib/store/slices/benchmarks/benchmarks.selectors.ts +++ b/src/ui/lib/store/slices/benchmarks/benchmarks.selectors.ts @@ -21,13 +21,13 @@ export const selectMetricsSummaryLineData = createSelector( const lineData: { [K in keyof BenchmarkMetrics]: Point[] } = { ttft: [], - tpot: [], + itl: [], timePerRequest: [], throughput: [], }; const metrics: (keyof BenchmarkMetrics)[] = [ 'ttft', - 'tpot', + 'itl', 'timePerRequest', 'throughput', ]; @@ -66,7 +66,7 @@ export const selectInterpolatedMetrics = createSelector( }; } = { ttft: getDefaultMetricValues(), - tpot: getDefaultMetricValues(), + itl: getDefaultMetricValues(), timePerRequest: getDefaultMetricValues(), throughput: getDefaultMetricValues(), mean: getDefaultMetricValues(), @@ -81,7 +81,7 @@ export const selectInterpolatedMetrics = createSelector( const { enforcedPercentile, currentRequestRate } = sloState; const metrics: (keyof BenchmarkMetrics)[] = [ 'ttft', - 'tpot', + 'itl', 'timePerRequest', 'throughput', ]; @@ -137,13 +137,13 @@ export const selectMetricsDetailsLineData = createSelector( [K in keyof BenchmarkMetrics]: { data: Point[]; id: string; solid?: boolean }[]; } = { ttft: [], - tpot: [], + itl: [], timePerRequest: [], throughput: [], }; const props: (keyof BenchmarkMetrics)[] = [ 'ttft', - 'tpot', + 'itl', 'timePerRequest', 'throughput', ]; diff --git a/src/ui/lib/store/slices/metrics/metrics.constants.ts b/src/ui/lib/store/slices/metrics/metrics.constants.ts index a9ae8414..d61efac1 100644 --- a/src/ui/lib/store/slices/metrics/metrics.constants.ts +++ b/src/ui/lib/store/slices/metrics/metrics.constants.ts @@ -5,6 +5,6 @@ export const initialState: MetricsState = { currentRequestRate: 0, timePerRequest: { valuesByRps: {} }, ttft: { valuesByRps: {} }, - tpot: { valuesByRps: {} }, + itl: { valuesByRps: {} }, throughput: { valuesByRps: {} }, }; diff --git a/src/ui/lib/store/slices/metrics/metrics.interfaces.ts b/src/ui/lib/store/slices/metrics/metrics.interfaces.ts index b38dc98b..bd56018b 100644 --- a/src/ui/lib/store/slices/metrics/metrics.interfaces.ts +++ b/src/ui/lib/store/slices/metrics/metrics.interfaces.ts @@ -4,7 +4,7 @@ export interface MetricsState { currentRequestRate: number; timePerRequest: SingleMetricsState; ttft: SingleMetricsState; - tpot: SingleMetricsState; + itl: SingleMetricsState; throughput: SingleMetricsState; } diff --git a/src/ui/lib/store/slices/slo/slo.constants.ts b/src/ui/lib/store/slices/slo/slo.constants.ts index f58ccc05..d491b712 100644 --- a/src/ui/lib/store/slices/slo/slo.constants.ts +++ b/src/ui/lib/store/slices/slo/slo.constants.ts @@ -10,13 +10,13 @@ export const initialState: SloState = { current: { timePerRequest: 0, ttft: 0, - tpot: 0, + itl: 0, throughput: 0, }, tasksDefaults: { timePerRequest: 0, ttft: 0, - tpot: 0, + itl: 0, throughput: 0, }, }; diff --git a/src/ui/lib/store/slices/slo/slo.interfaces.ts b/src/ui/lib/store/slices/slo/slo.interfaces.ts index 0d59baa2..ecbc2f71 100644 --- a/src/ui/lib/store/slices/slo/slo.interfaces.ts +++ b/src/ui/lib/store/slices/slo/slo.interfaces.ts @@ -6,13 +6,13 @@ export interface SloState { current: { timePerRequest: number; ttft: number; - tpot: number; + itl: number; throughput: number; }; tasksDefaults: { timePerRequest: number; ttft: number; - tpot: number; + itl: number; throughput: number; }; } diff --git a/tests/ui/unit/mocks/mockBenchmarks.ts b/tests/ui/unit/mocks/mockBenchmarks.ts index 884e8b89..e8947508 100644 --- a/tests/ui/unit/mocks/mockBenchmarks.ts +++ b/tests/ui/unit/mocks/mockBenchmarks.ts @@ -1,7 +1,7 @@ export const mockBenchmarks = [ { requestsPerSecond: 0.6668550387660497, - tpot: { + itl: { total: 80, mean: 23.00635663936911, median: 22.959455611213805, @@ -132,7 +132,7 @@ export const mockBenchmarks = [ }, { requestsPerSecond: 28.075330129628725, - tpot: { + itl: { total: 3416, mean: 126.08707076148656, median: 125.30853256346687,