@@ -54,6 +54,12 @@ def compare_command_logic(args, project_name, project_version):
5454 comparison_deployment_name ,
5555 )
5656 )
57+ if args .last_n > 0 :
58+ logging .info (
59+ "Using the last {} samples of each timeserie to compute the tables" .format (
60+ args .last_n
61+ )
62+ )
5763 from_ts_ms = args .from_timestamp
5864 to_ts_ms = args .to_timestamp
5965 if from_ts_ms is None :
@@ -161,7 +167,7 @@ def compare_command_logic(args, project_name, project_version):
161167 total_stable = 0
162168 total_unstable = 0
163169 total_regressions = 0
164- noise_waterline = 2.5
170+ noise_waterline = 3
165171 progress = tqdm (unit = "benchmark time-series" , total = len (test_names ))
166172 for test_name in test_names :
167173 filters_baseline = [
@@ -234,7 +240,10 @@ def compare_command_logic(args, project_name, project_version):
234240 if baseline_nsamples > 0 :
235241 _ , baseline_v = baseline_datapoints [0 ]
236242 for tuple in baseline_datapoints :
237- baseline_values .append (tuple [1 ])
243+ if args .last_n < 0 or (
244+ args .last_n > 0 and len (baseline_values ) < args .last_n
245+ ):
246+ baseline_values .append (tuple [1 ])
238247 baseline_df = pd .DataFrame (baseline_values )
239248 baseline_median = float (baseline_df .median ())
240249 baseline_v = baseline_median
@@ -249,7 +258,10 @@ def compare_command_logic(args, project_name, project_version):
249258 if comparison_nsamples > 0 :
250259 _ , comparison_v = comparison_datapoints [0 ]
251260 for tuple in comparison_datapoints :
252- comparison_values .append (tuple [1 ])
261+ if args .last_n < 0 or (
262+ args .last_n > 0 and len (comparison_values ) < args .last_n
263+ ):
264+ comparison_values .append (tuple [1 ])
253265 comparison_df = pd .DataFrame (comparison_values )
254266 comparison_median = float (comparison_df .median ())
255267 comparison_v = comparison_median
@@ -275,13 +287,13 @@ def compare_command_logic(args, project_name, project_version):
275287 if baseline_pct_change > 10.0 :
276288 stamp_b = "UNSTABLE"
277289 baseline_v_str = " {:.0f} +- {:.1f}% {} ({} datapoints)" .format (
278- baseline_v , baseline_pct_change , stamp_b , baseline_nsamples
290+ baseline_v , baseline_pct_change , stamp_b , len ( baseline_values )
279291 )
280292 stamp_c = ""
281293 if comparison_pct_change > 10.0 :
282294 stamp_c = "UNSTABLE"
283295 comparison_v_str = " {:.0f} +- {:.1f}% {} ({} datapoints)" .format (
284- comparison_v , comparison_pct_change , stamp_c , comparison_nsamples
296+ comparison_v , comparison_pct_change , stamp_c , len ( comparison_values )
285297 )
286298 if metric_mode == "higher-better" :
287299 percentage_change = (
@@ -297,7 +309,7 @@ def compare_command_logic(args, project_name, project_version):
297309 detected_improvement = False
298310 if percentage_change < 0.0 and not unstable :
299311
300- if percentage_change < - waterline :
312+ if - waterline >= percentage_change :
301313 detected_regression = True
302314 total_regressions = total_regressions + 1
303315 note = note + " REGRESSION"
@@ -339,19 +351,22 @@ def compare_command_logic(args, project_name, project_version):
339351 )
340352
341353 logging .info ("Printing differential analysis between branches" )
354+
355+ baseline = baseline_branch if args .baseline_branch else baseline_tag
356+ comparison = comparison_branch if args .comparison_branch else comparison_tag
342357 writer = MarkdownTableWriter (
343358 table_name = "Comparison between {} and {} for metric: {}. Time Period from {} to {}. (environment used: {})" .format (
344- baseline_branch ,
345- comparison_branch ,
359+ baseline ,
360+ comparison ,
346361 metric_name ,
347362 from_human_str ,
348363 to_human_str ,
349364 baseline_deployment_name ,
350365 ),
351366 headers = [
352367 "Test Case" ,
353- "Baseline {} (median obs. +- std.dev)" .format (baseline_branch ),
354- "Comparison {} (median obs. +- std.dev)" .format (comparison_branch ),
368+ "Baseline {} (median obs. +- std.dev)" .format (baseline ),
369+ "Comparison {} (median obs. +- std.dev)" .format (comparison ),
355370 "% change ({})" .format (metric_mode ),
356371 "Note" ,
357372 ],
0 commit comments