Skip to content

Commit 84bc3d8

Browse files
committed
Squashed commit of the following:
commit 121dcdc Author: Samuel Monson <smonson@redhat.com> Date: Fri Oct 10 09:36:09 2025 -0400 Configurable max_tokens/max_completion_tokens key (#399) ## Summary <!-- Include a short paragraph of the changes introduced in this PR. If this PR requires additional context or rationale, explain why the changes are necessary. --> Makes the `max_tokens` request key configurable through an environment variable per endpoint type. Defaults to `max_tokens` for legacy `completions` and `max_completion_tokens` for `chat/completions` ## Details <!-- Provide a detailed list of all changes introduced in this pull request. --> - Add the `GUIDELLM__OPENAI__MAX_OUTPUT_KEY` config option which is a dict mapping from route name -> output tokens key. Default is `{"text_completions": "max_tokens", "chat_completions": "max_completion_tokens"}` ## Test Plan <!-- List the steps needed to test this PR. --> - ## Related Issues <!-- Link any relevant issues that this PR addresses. --> - Closes #395 - Closes #269 - Related #210 --- - [x] "I certify that all code in this PR is my own, except as noted below." ## Use of AI - [ ] Includes AI-assisted code completion - [ ] Includes code generated by an AI application - [ ] Includes AI-generated tests (NOTE: AI written tests should have a docstring that includes `## WRITTEN BY AI ##`) --------- Signed-off-by: Tyler Michael Smith <tyler@neuralmagic.com> Signed-off-by: Samuel Monson <smonson@redhat.com> Co-authored-by: Tyler Michael Smith <tyler@neuralmagic.com> commit a24a22d Author: Samuel Monson <smonson@redhat.com> Date: Thu Oct 9 15:57:19 2025 -0400 Fix typo in CI (#401) ## Summary <!-- Include a short paragraph of the changes introduced in this PR. If this PR requires additional context or rationale, explain why the changes are necessary. --> ## Details <!-- Provide a detailed list of all changes introduced in this pull request. --> - [ ] ## Test Plan <!-- List the steps needed to test this PR. --> - ## Related Issues <!-- Link any relevant issues that this PR addresses. --> - Resolves # --- - [ ] "I certify that all code in this PR is my own, except as noted below." ## Use of AI - [ ] Includes AI-assisted code completion - [ ] Includes code generated by an AI application - [ ] Includes AI-generated tests (NOTE: AI written tests should have a docstring that includes `## WRITTEN BY AI ##`) Signed-off-by: Samuel Monson <smonson@redhat.com> commit 81af01b Author: Samuel Monson <smonson@redhat.com> Date: Thu Oct 9 15:53:45 2025 -0400 Fix the failing CI again (#400) ## Summary <!-- Include a short paragraph of the changes introduced in this PR. If this PR requires additional context or rationale, explain why the changes are necessary. --> ## Details <!-- Provide a detailed list of all changes introduced in this pull request. --> - [ ] ## Test Plan <!-- List the steps needed to test this PR. --> - ## Related Issues <!-- Link any relevant issues that this PR addresses. --> - Resolves # --- - [ ] "I certify that all code in this PR is my own, except as noted below." ## Use of AI - [ ] Includes AI-assisted code completion - [ ] Includes code generated by an AI application - [ ] Includes AI-generated tests (NOTE: AI written tests should have a docstring that includes `## WRITTEN BY AI ##`) Signed-off-by: Samuel Monson <smonson@redhat.com> commit 90a05ab Author: Samuel Monson <smonson@redhat.com> Date: Thu Oct 9 14:26:50 2025 -0400 Fix for container rc tag (Attempt 2) (#398) ## Summary <!-- Include a short paragraph of the changes introduced in this PR. If this PR requires additional context or rationale, explain why the changes are necessary. --> This is the same fix as #389 but applied to the RC workflow rather than the release workflow as was the original intent with #389. Both workflows need this change so not reverting the other one. --- - [x] "I certify that all code in this PR is my own, except as noted below." ## Use of AI - [ ] Includes AI-assisted code completion - [ ] Includes code generated by an AI application - [ ] Includes AI-generated tests (NOTE: AI written tests should have a docstring that includes `## WRITTEN BY AI ##`) Signed-off-by: Samuel Monson <smonson@redhat.com> commit 000b39e Author: Samuel Monson <smonson@redhat.com> Date: Fri Oct 3 17:46:04 2025 -0400 Fix for container rc tag (#389) ## Summary <!-- Include a short paragraph of the changes introduced in this PR. If this PR requires additional context or rationale, explain why the changes are necessary. --> Fix to parsing rc ref in CI --- - [x] "I certify that all code in this PR is my own, except as noted below." ## Use of AI - [ ] Includes AI-assisted code completion - [ ] Includes code generated by an AI application - [ ] Includes AI-generated tests (NOTE: AI written tests should have a docstring that includes `## WRITTEN BY AI ##`) Signed-off-by: Samuel Monson <smonson@redhat.com> commit 108a657 Author: Benjamin Blue <dalcowboiz@gmail.com> Date: Fri Oct 3 10:35:32 2025 -0400 update tpot to itl in labels and code use (#386) ## Summary We want to use ITL instead of TPOT. The data we had previously happened to be ITL data, but all of the labels indicate that it is TPOT data. Now the code and labels reflect that it is ITL data. ## Test Plan - Everything works, tests pass, No use of TPOT in the UI --------- Signed-off-by: dalthecow <dalcowboiz@gmail.com> Co-authored-by: Samuel Monson <smonson@redhat.com> commit b1b1b78 Author: Benjamin Blue <dalcowboiz@gmail.com> Date: Wed Oct 1 13:14:47 2025 -0400 update default build values to use versioned builds (#310) ## Summary With the default path referring to the versioned build now, users will no longer experience their html reports breaking randomly when the build files are updated. Also fixed versioned build directory path issue that I missed previously --------- Signed-off-by: dalthecow <dalcowboiz@gmail.com> commit 5c9982a Merge: ad25e06 2c0d993 Author: Mark Kurtz <mark.j.kurtz@gmail.com> Date: Wed Oct 1 08:23:27 2025 -0400 first benchark testing example (#328) ## Summary <!-- Include a short paragraph of the changes introduced in this PR. If this PR requires additional context or rationale, explain why the changes are necessary. --> <img width="1757" height="1212" alt="image" src="https://github.com/user-attachments/assets/fbfddeac-ca56-40c0-b7ae-d2f17d50823a" /> ## Details <!-- Provide a detailed list of all changes introduced in this pull request. --> - [ ] ## Test Plan <!-- List the steps needed to test this PR. --> - ## Related Issues <!-- Link any relevant issues that this PR addresses. --> - Resolves # --- - [ ] "I certify that all code in this PR is my own, except as noted below." ## Use of AI - [ ] Includes AI-assisted code completion - [ ] Includes code generated by an AI application - [ ] Includes AI-generated tests (NOTE: AI written tests should have a docstring that includes `## WRITTEN BY AI ##`) commit 2c0d993 Merge: d1297fe ad25e06 Author: Mark Kurtz <mark.j.kurtz@gmail.com> Date: Wed Oct 1 08:20:10 2025 -0400 Merge branch 'main' into example_simulator commit ad25e06 Merge: f8f6f9d c32896c Author: Mark Kurtz <mark.j.kurtz@gmail.com> Date: Wed Oct 1 08:19:59 2025 -0400 Add formatting to json file with metrics (#372) ## Summary It's inconvenient to look at metrics. ## Details - ## Test Plan - code launch ## Related Issues - Resolves ##371 --- - [x] "I certify that all code in this PR is my own, except as noted below." ## Use of AI - [ ] Includes AI-assisted code completion - [ ] Includes code generated by an AI application - [ ] Includes AI-generated tests (NOTE: AI written tests should have a docstring that includes `## WRITTEN BY AI ##`) commit d1297fe Merge: 8159ca7 f8f6f9d Author: Mark Kurtz <mark.j.kurtz@gmail.com> Date: Wed Oct 1 08:17:36 2025 -0400 Merge branch 'main' into example_simulator commit c32896c Merge: 0701389 f8f6f9d Author: Mark Kurtz <mark.j.kurtz@gmail.com> Date: Wed Oct 1 08:14:35 2025 -0400 Merge branch 'main' into add_json_formatiing commit f8f6f9d Author: Samuel Monson <smonson@redhat.com> Date: Tue Sep 30 10:21:54 2025 -0400 Container CI bugfix and disable dry-run on image cleaner (#379) ## Summary <!-- Include a short paragraph of the changes introduced in this PR. If this PR requires additional context or rationale, explain why the changes are necessary. --> Final pieces needed for image CI work. Fully enables auto `latest`, `stable` tags and old image pruning. ## Details <!-- Provide a detailed list of all changes introduced in this pull request. --> - Add `pipefail` to list-tags command to catch failures - Add missing `ghcr.io/` to skopeo commands - Disable dry-run option for development image cleanup job ## Test Plan Ran with `workflow_dispatch` [see here](https://github.com/vllm-project/guidellm/actions/runs/18108553536) <img width="2032" height="955" alt="2025-09-29T15-45-39" src="https://github.com/user-attachments/assets/b981ab01-fe90-4e15-bf60-cb483508065e" /> <img width="1204" height="579" alt="2025-09-29T15-46-02" src="https://github.com/user-attachments/assets/68118168-2e80-4d45-92cc-47badc1caf16" /> --- - [x] "I certify that all code in this PR is my own, except as noted below." ## Use of AI - [ ] Includes AI-assisted code completion - [ ] Includes code generated by an AI application - [ ] Includes AI-generated tests (NOTE: AI written tests should have a docstring that includes `## WRITTEN BY AI ##`) --------- Signed-off-by: Samuel Monson <smonson@redhat.com> commit 0701389 Author: psydok <47638600+psydok@users.noreply.github.com> Date: Thu Sep 25 23:14:36 2025 +0500 Add formatting to json file with metrics Signed-off-by: psydok <47638600+psydok@users.noreply.github.com> commit 8159ca7 Author: guangli.bao <guangli.bao@daocloud.io> Date: Mon Sep 15 12:07:08 2025 +0800 first draft Signed-off-by: guangli.bao <guangli.bao@daocloud.io>
1 parent fbd417f commit 84bc3d8

23 files changed

+223
-86
lines changed

.github/workflows/container-maintenance.yml

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,22 @@ on:
99
concurrency:
1010
group: ${{ github.workflow }}
1111

12+
permissions:
13+
packages: write
14+
1215
jobs:
1316
cleanup-container-tags:
1417
runs-on: ubuntu-latest
1518
steps:
1619
- name: Delete PR and untagged images older than 2 weeks
1720
uses: snok/container-retention-policy@v3.0.0
1821
with:
19-
account: ${{ github.actor }}
22+
account: ${{ github.repository_owner }}
2023
token: ${{ github.token }}
2124
image-names: ${{ github.event.repository.name }}
2225
image-tags: "pr-*"
2326
cut-off: 2w
24-
dry-run: true
27+
dry-run: false
2528

2629
push-container-tags:
2730
runs-on: ubuntu-latest
@@ -31,19 +34,20 @@ jobs:
3134
- name: Log into ghcr.io
3235
uses: redhat-actions/podman-login@v1
3336
with:
34-
username: ${{ github.actor }}
37+
username: ${{ github.repository_owner }}
3538
password: ${{ github.token }}
3639
registry: ghcr.io/${{ github.repository_owner }}
3740
- name: Get list of tags
3841
run: |
39-
skopeo list-tags docker://${{ github.repository }} | jq --raw-output '.Tags[]' > tags
42+
set -euo pipefail # Fail pipe if any command fails
43+
skopeo list-tags docker://ghcr.io/${{ github.repository }} | jq --raw-output '.Tags[]' > tags
4044
- name: Get latest release and rc tags
4145
run: |
4246
STABLE_TAG="$(grep -P '^v\d+\.\d+\.\d+$' tags | sort -rV | head -n1)"
43-
echo "STABLE_TAG=${STABLE_TAG:-v0.0.0}" >> $GITHUB_ENV
47+
echo "stable_tag=${STABLE_TAG:-v0.0.0}" >> $GITHUB_ENV
4448
LATEST_TAG="$(grep -P '^v\d+\.\d+\.\d+' tags | sort -rV | head -n1)"
45-
echo "LATEST_TAG=${LATEST_TAG:-v0.0.0}" >> $GITHUB_ENV
49+
echo "latest_tag=${LATEST_TAG:-v0.0.0}" >> $GITHUB_ENV
4650
- name: Update latest and stable tags
4751
run: |
48-
skopeo copy docker://${{ github.repository }}:${{ env.stable_tag }} docker://${{ github.repository }}:stable
49-
skopeo copy docker://${{ github.repository }}:${{ env.latest_tag }} docker://${{ github.repository }}:latest
52+
skopeo copy docker://ghcr.io/${{ github.repository }}:${{ env.stable_tag }} docker://ghcr.io/${{ github.repository }}:stable
53+
skopeo copy docker://ghcr.io/${{ github.repository }}:${{ env.latest_tag }} docker://ghcr.io/${{ github.repository }}:latest

.github/workflows/release-candidate.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ jobs:
228228
uses: peaceiris/actions-gh-pages@v3
229229
with:
230230
github_token: ${{ secrets.GITHUB_TOKEN }}
231-
publish_dir: ./ui/out
231+
publish_dir: .src/ui/out
232232
destination_dir: ui/release/${TAG}
233233
keep_files: false
234234
user_name: ${{ github.actor }}
@@ -298,7 +298,12 @@ jobs:
298298
with:
299299
fetch-depth: 0
300300
- name: Get version from branch
301-
run: echo "PACKAGE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
301+
run: |
302+
echo "package_version=${GITHUB_REF#refs/heads/release/}" >> $GITHUB_ENV
303+
- name: Fail if version is unset
304+
if: ${{ env.package_version == '' }}
305+
run: |
306+
exit 1
302307
- name: Buildah build
303308
id: build-image
304309
uses: redhat-actions/buildah-build@v2

.github/workflows/release.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ jobs:
227227
uses: peaceiris/actions-gh-pages@v3
228228
with:
229229
github_token: ${{ secrets.GITHUB_TOKEN }}
230-
publish_dir: ./ui/out
230+
publish_dir: ./src/ui/out
231231
destination_dir: ui/${TAG}
232232
keep_files: false
233233
user_name: ${{ github.actor }}
@@ -297,7 +297,12 @@ jobs:
297297
with:
298298
fetch-depth: 0
299299
- name: Get version from branch
300-
run: echo "PACKAGE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
300+
run: |
301+
echo "package_version=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
302+
- name: Fail if version is unset
303+
if: ${{ env.package_version == '' }}
304+
run: |
305+
exit 1
301306
- name: Buildah build
302307
id: build-image
303308
uses: redhat-actions/buildah-build@v2

docs/assets/sample-output1.png

324 KB
Loading

docs/assets/sample-output2.png

298 KB
Loading

docs/assets/sample-output3.png

186 KB
Loading
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
# GuideLLM Benchmark Testing Best Practice
2+
3+
Do first easy-go guidellm benchmark testing from scratch using vLLM Simulator.
4+
5+
## Getting Started
6+
7+
### 📦 1. Benchmark Testing Environment Setup
8+
9+
#### 1.1 Create a Conda Environment (recommended)
10+
11+
```bash
12+
conda create -n guidellm-bench python=3.11 -y
13+
conda activate guidellm-bench
14+
```
15+
16+
#### 1.2 Install Dependencies
17+
18+
```bash
19+
git clone https://github.com/vllm-project/guidellm.git
20+
cd guidellm
21+
pip install guidellm
22+
```
23+
24+
For more detailed instructions, refer to [GuideLLM README](https://github.com/vllm-project/guidellm/blob/main/README.md).
25+
26+
#### 1.3 Verify Installation
27+
28+
```bash
29+
guidellm --help
30+
```
31+
32+
#### 1.4 Startup OpenAI-compatible API in vLLM simulator docker container
33+
34+
```bash
35+
docker pull ghcr.io/llm-d/llm-d-inference-sim:v0.4.0
36+
37+
docker run --rm --publish 8000:8000 \
38+
ghcr.io/llm-d/llm-d-inference-sim:v0.4.0 \
39+
--port 8000 \
40+
--model "Qwen/Qwen2.5-1.5B-Instruct" \
41+
--lora-modules '{"name":"tweet-summary-0"}' '{"name":"tweet-summary-1"}'
42+
```
43+
44+
For more detailed instructions, refer to: [vLLM Simulator](https://llm-d.ai/docs/architecture/Components/inference-sim)
45+
46+
Docker image versions: [Docker Images](https://github.com/llm-d/llm-d-inference-sim/pkgs/container/llm-d-inference-sim)
47+
48+
Check open-ai api working via curl:
49+
50+
- check /v1/models
51+
52+
```bash
53+
curl --request GET 'http://localhost:8000/v1/models'
54+
```
55+
56+
- check /v1/chat/completions
57+
58+
```bash
59+
curl --request POST 'http://localhost:8000/v1/chat/completions' \
60+
--header 'Content-Type: application/json' \
61+
--data-raw '{
62+
"model": "tweet-summary-0",
63+
"stream": false,
64+
"messages": [{"role": "user", "content": "Say this is a test!"}]
65+
}'
66+
```
67+
68+
- check /v1/completions
69+
70+
```bash
71+
curl --request POST 'http://localhost:8000/v1/completions' \
72+
--header 'Content-Type: application/json' \
73+
--data-raw '{
74+
"model": "tweet-summary-0",
75+
"stream": false,
76+
"prompt": "Say this is a test!",
77+
"max_tokens": 128
78+
}'
79+
```
80+
81+
#### 1.5 Download Tokenizer
82+
83+
Download Qwen/Qwen2.5-1.5B-Instruct tokenizer files from [Qwen/Qwen2.5-1.5B-Instruct](https://modelscope.cn/models/Qwen/Qwen2.5-1.5B-Instruct/files) save to local path such as ${local_path}/Qwen2.5-1.5B-Instruct
84+
85+
```bash
86+
ls ./Qwen2.5-1.5B-Instruct
87+
merges.txt tokenizer.json tokenizer_config.json vocab.json
88+
```
89+
90+
______________________________________________________________________
91+
92+
## 🚀 2. Running Benchmarks
93+
94+
```bash
95+
guidellm benchmark \
96+
--target "http://localhost:8000/" \
97+
--model "tweet-summary-0" \
98+
--processor "${local_path}/Qwen2.5-1.5B-Instruct" \
99+
--rate-type sweep \
100+
--max-seconds 10 \
101+
--max-requests 10 \
102+
--data "prompt_tokens=128,output_tokens=56"
103+
```
104+
105+
______________________________________________________________________
106+
107+
## 📊 3. Results Interpretation
108+
109+
![alt text](../assets/sample-output1.png) ![alt text](../assets/sample-output2.png) ![alt text](../assets/sample-output3.png)
110+
111+
After the benchmark completes, key results are clear and straightforward, such as:
112+
113+
- **`TTFT`**: Time to First Token
114+
- **`TPOT`**: Time Per Output Token
115+
- **`ITL`**: Inter-Token Latency
116+
117+
The first benchmark test complete.

src/guidellm/presentation/data_models.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,12 +118,14 @@ def from_benchmarks(cls, benchmarks: list["GenerativeBenchmark"]):
118118
)
119119
sample_prompts = [
120120
req.request_args.replace("\n", " ").replace('"', "'")
121-
if (req := successful_requests[i]).request_args else ""
121+
if (req := successful_requests[i]).request_args
122+
else ""
122123
for i in sample_indices
123124
]
124125
sample_outputs = [
125126
req.output.replace("\n", " ").replace('"', "'")
126-
if (req := successful_requests[i]).output else ""
127+
if (req := successful_requests[i]).output
128+
else ""
127129
for i in sample_indices
128130
]
129131

@@ -210,7 +212,7 @@ def from_distribution_summary(
210212

211213
class BenchmarkDatum(BaseModel):
212214
requests_per_second: float
213-
tpot: TabularDistributionSummary
215+
itl: TabularDistributionSummary
214216
ttft: TabularDistributionSummary
215217
throughput: TabularDistributionSummary
216218
time_per_request: TabularDistributionSummary
@@ -219,7 +221,7 @@ class BenchmarkDatum(BaseModel):
219221
def from_benchmark(cls, bm: "GenerativeBenchmark"):
220222
return cls(
221223
requests_per_second=bm.metrics.requests_per_second.successful.mean,
222-
tpot=TabularDistributionSummary.from_distribution_summary(
224+
itl=TabularDistributionSummary.from_distribution_summary(
223225
bm.metrics.inter_token_latency_ms.successful
224226
),
225227
ttft=TabularDistributionSummary.from_distribution_summary(

src/guidellm/settings.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ class Environment(str, Enum):
3232

3333

3434
ENV_REPORT_MAPPING = {
35-
Environment.PROD: "https://blog.vllm.ai/guidellm/ui/latest/index.html",
36-
Environment.STAGING: "https://blog.vllm.ai/guidellm/ui/release/latest/index.html",
35+
Environment.PROD: "https://blog.vllm.ai/guidellm/ui/v0.3.0/index.html",
36+
Environment.STAGING: "https://blog.vllm.ai/guidellm/ui/release/v0.3.0/index.html",
3737
Environment.DEV: "https://blog.vllm.ai/guidellm/ui/dev/index.html",
3838
Environment.LOCAL: "http://localhost:3000/index.html",
3939
}
@@ -89,6 +89,10 @@ class OpenAISettings(BaseModel):
8989
base_url: str = "http://localhost:8000"
9090
max_output_tokens: int = 16384
9191
verify: bool = True
92+
max_output_key: dict[Literal["text_completions", "chat_completions"], str] = {
93+
"text_completions": "max_tokens",
94+
"chat_completions": "max_completion_tokens",
95+
}
9296

9397

9498
class ReportGenerationSettings(BaseModel):

src/ui/lib/components/MetricsSummary/MetricsSummary.component.tsx

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,15 @@ export const Component = () => {
5454

5555
const {
5656
ttft: ttftSLO,
57-
tpot: tpotSLO,
57+
itl: itlSLO,
5858
timePerRequest: timePerRequestSLO,
5959
throughput: throughputSLO,
6060
percentile,
6161
minX,
6262
maxX,
6363
errors,
6464
handleTtft,
65-
handleTpot,
65+
handleItl,
6666
handleTimePerRequest,
6767
handleThroughput,
6868
handlePercentileChange,
@@ -72,8 +72,8 @@ export const Component = () => {
7272
const isTtftMatch = Boolean(
7373
ttftSLO && interpolatedMetricData.ttft.enforcedPercentileValue <= ttftSLO
7474
);
75-
const isTpotMatch = Boolean(
76-
tpotSLO && interpolatedMetricData.tpot.enforcedPercentileValue <= tpotSLO
75+
const isItlMatch = Boolean(
76+
itlSLO && interpolatedMetricData.itl.enforcedPercentileValue <= itlSLO
7777
);
7878
const isTprMatch = Boolean(
7979
timePerRequestSLO &&
@@ -123,7 +123,7 @@ export const Component = () => {
123123
<FieldsContainer data-id="fields-container">
124124
<FieldCell data-id="field-cell-1">
125125
<Input
126-
label="TTFT (ms)"
126+
label="TIME TO FIRST TOKEN (ms)"
127127
value={ttftSLO}
128128
onChange={handleTtft}
129129
fullWidth
@@ -133,12 +133,12 @@ export const Component = () => {
133133
</FieldCell>
134134
<FieldCell data-id="field-cell-2">
135135
<Input
136-
label="TPOT (ms)"
137-
value={tpotSLO}
138-
onChange={handleTpot}
136+
label="INTER-TOKEN LATENCY (ms)"
137+
value={itlSLO}
138+
onChange={handleItl}
139139
fullWidth
140140
fontColor={LineColor.Secondary}
141-
error={errors?.tpot}
141+
error={errors?.itl}
142142
/>
143143
</FieldCell>
144144
<FieldCell data-id="field-cell-3">
@@ -212,7 +212,7 @@ export const Component = () => {
212212
</MiddleColumn>
213213
<MiddleColumn item xs={3}>
214214
<MetricValue
215-
label="TTFT"
215+
label="time to first token"
216216
value={`${formatNumber(interpolatedMetricData.ttft.enforcedPercentileValue)} ms`}
217217
match={isTtftMatch}
218218
valueColor={LineColor.Primary}
@@ -222,17 +222,17 @@ export const Component = () => {
222222
<MiddleColumn sx={{ paddingLeft: '0px !important' }} item xs={9}>
223223
<GraphContainer>
224224
<MetricLine
225-
data={[{ id: 'tpot', data: lineDataByRps.tpot || [] }]}
226-
threshold={tpotSLO}
225+
data={[{ id: 'itl', data: lineDataByRps.itl || [] }]}
226+
threshold={itlSLO}
227227
lineColor={LineColor.Secondary}
228228
/>
229229
</GraphContainer>
230230
</MiddleColumn>
231231
<MiddleColumn item xs={3}>
232232
<MetricValue
233-
label="TPOT"
234-
value={`${formatNumber(interpolatedMetricData.tpot.enforcedPercentileValue)} ms`}
235-
match={isTpotMatch}
233+
label="inter-token latency"
234+
value={`${formatNumber(interpolatedMetricData.itl.enforcedPercentileValue)} ms`}
235+
match={isItlMatch}
236236
valueColor={LineColor.Secondary}
237237
/>
238238
</MiddleColumn>

0 commit comments

Comments
 (0)