Commit aa93387
committed
Fix aggregate crashing on operations that report null metrics
An operation that produced no valid samples reports its metric fields as null.
The geonames workload does this for `optimize`, which comes back with
error_rate 1.0 and a fully null throughput. Aggregating any test run that
contains such an operation fails:
[ERROR] Cannot aggregate. '<' not supported between instances of
'NoneType' and 'NoneType'.
calculate_weighted_average reached min()/max() with None values, and
`value.get(metric_field, 0)` did not help because the key is present with a
null value rather than absent.
Null values are now left out of the min, the max, and the weighted mean
instead of being coerced to 0, and the result is None when no test run
contributed a value, so an unmeasured metric stays distinct from a measured
zero. calculate_rsd has the same problem on a second, independent code path
and returns "NA" when nothing was measured.
The weighted-mean arithmetic moves into a helper because the divisor now
depends on which runs contributed, so it can no longer be a single total
computed up front.
Signed-off-by: Serhiy Bzhezytskyy <me@serhiy-bzhezytskyy.com>1 parent 212e1e3 commit aa93387
2 files changed
Lines changed: 69 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
213 | 213 | | |
214 | 214 | | |
215 | 215 | | |
216 | | - | |
217 | 216 | | |
218 | 217 | | |
219 | 218 | | |
| |||
222 | 221 | | |
223 | 222 | | |
224 | 223 | | |
225 | | - | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
226 | 227 | | |
227 | | - | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
228 | 231 | | |
229 | 232 | | |
230 | | - | |
231 | | - | |
232 | | - | |
| 233 | + | |
| 234 | + | |
233 | 235 | | |
234 | | - | |
235 | | - | |
| 236 | + | |
236 | 237 | | |
237 | 238 | | |
238 | 239 | | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
239 | 255 | | |
240 | 256 | | |
241 | 257 | | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
242 | 262 | | |
243 | 263 | | |
244 | 264 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
136 | 136 | | |
137 | 137 | | |
138 | 138 | | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
139 | 180 | | |
140 | 181 | | |
141 | 182 | | |
| |||
0 commit comments