@@ -31,6 +31,8 @@ const testOptions = config.tests.map(t => ({
3131
3232// ── Ranking ───────────────────────────────────────────────────────────────────
3333
34+ const maxVus = String (Math .max (... vus ));
35+
3436// Servers that have any data for this test (real or imputed)
3537const ranked = data .servers
3638 .map (s => ({
@@ -39,6 +41,7 @@ const ranked = data.servers
3941 rawRps: s .rawRps [test ] ?? 0 ,
4042 impRps: s .imputedRps [test ] ?? 0 ,
4143 preflight: s .preflight [test ] ?? ' skip' ,
44+ errorRate: s .benchmark [test ]?.[maxVus ]?.errorRate ?? null ,
4245 }))
4346 .sort ((a , b ) => b .wRps - a .wRps );
4447
@@ -93,6 +96,7 @@ const latencyRows = latencyServers.map(s =>
9396 <th class =" col-num r" >wRPS</th >
9497 <th class =" col-score" >Score</th >
9598 <th class =" col-num r" >Raw RPS</th >
99+ <th class =" col-num r" >Errors</th >
96100 <th class =" col-status" >Status</th >
97101 </tr >
98102 </thead >
@@ -119,6 +123,9 @@ const latencyRows = latencyServers.map(s =>
119123 <td class = { ` num r${isImputed ? ' imputed' : ' ' } ` } >
120124 { isImputed ? fmtRps (row .impRps ) : row .rawRps > 0 ? fmtRps (row .rawRps ) : ' —' }
121125 </td >
126+ <td class = { ` num r${row .errorRate != null && row .errorRate > 0 ? ' error-rate' : ' ' } ` } >
127+ { row .errorRate != null ? (row .errorRate === 0 ? ' 0%' : ` ${(row .errorRate * 100 ).toFixed (1 )}% ` ) : ' —' }
128+ </td >
122129 <td class = { ` status status-${row .preflight } ` } >
123130 { row .preflight === ' pass' ? ' ✓' : row .preflight === ' fail' ? ' ✗' : ' ~' }
124131 </td >
@@ -222,6 +229,7 @@ const latencyRows = latencyServers.map(s =>
222229
223230 .num { font-variant-numeric: tabular-nums; color: var(--text-dim); }
224231 .imputed { color: #e07b6a; font-style: italic; }
232+ .error-rate { color: var(--fail); }
225233
226234 .status { text-align: center; font-size: var(--text-sm); }
227235 .status-pass { color: var(--pass); }
0 commit comments