Francois Gouget : testbot/web: Show all the job.time percentiles.

Alexandre Julliard julliard at winehq.org
Thu Apr 14 16:39:55 CDT 2022


Module: tools
Branch: master
Commit: 892646b54fc9a747bedd992a9b816610fb01bfd1
URL:    https://source.winehq.org/git/tools.git/?a=commit;h=892646b54fc9a747bedd992a9b816610fb01bfd1

Author: Francois Gouget <fgouget at codeweavers.com>
Date:   Thu Apr 14 16:57:20 2022 +0200

testbot/web: Show all the job.time percentiles.

And add a bar graph to give a better sense of how the job durations
stack up.

Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 testbot/web/Stats.pl        | 13 +++++++++----
 testbot/web/WineTestBot.css |  2 ++
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/testbot/web/Stats.pl b/testbot/web/Stats.pl
index 7ef65b3..3c0fe99 100644
--- a/testbot/web/Stats.pl
+++ b/testbot/web/Stats.pl
@@ -223,10 +223,15 @@ sub GenerateBody($)
   _GenGlobalLine($GlobalStats, "busy.elapsed", "Busy \%", "The percentage of wall clock time where the TestBot was busy running jobs.");
 
   print "<tr><td class='StatSeparator'>Job times</td><td colspan='2'><hr></td></tr>\n";
-  _GenGlobalLine($GlobalStats, "jobs.time.p10", "10%", "10% of the jobs completed within this time.");
-  _GenGlobalLine($GlobalStats, "jobs.time.p50", "50%", "50% of the jobs completed within this time.");
-  _GenGlobalLine($GlobalStats, "jobs.time.p90", "90%", "90% of the jobs completed within this time.");
-  _GenGlobalLine($GlobalStats, "jobs.time.max", "Max", "The slowest job took this long. Note that this is heavily influenced by test storms.");
+  my $Max = $GlobalStats->{"jobs.time.max"};
+  for (my $Percentile = 10; $Percentile < 100; $Percentile += 10)
+  {
+    my $Bar = 100 * $GlobalStats->{"jobs.time.p$Percentile"} / $Max;
+    my $Space = 100 - $Bar;
+    _GenGlobalLine($GlobalStats, "jobs.time.p$Percentile", "$Percentile%",
+                   "<div class='PercentBar' style='width: ${Bar}px;'> </div><div class='PercentSpace' style='width: ${Space}px;'></div> $Percentile% of the jobs completed within this time.");
+  }
+  _GenGlobalLine($GlobalStats, "jobs.time.max", "Max", "<div class='PercentBar' style='width: 100px;'> </div> Duration of the slowest job. Note that this is heavily influenced by test storms.");
 
   print "<tr><td class='StatSeparator'>Average times</td><td colspan='2'><hr></td></tr>\n";
   _GenGlobalLine($GlobalStats, "jobs.time", "Job completion", "How long it takes to complete a  regular job (excluding canceled ones). Note that this is heavily influenced by test storms.");
diff --git a/testbot/web/WineTestBot.css b/testbot/web/WineTestBot.css
index 301ba71..53c939e 100644
--- a/testbot/web/WineTestBot.css
+++ b/testbot/web/WineTestBot.css
@@ -445,3 +445,5 @@ td.Record { text-align: center; }
 .Record.Record-miss { border-top: thick dashed #ff6600; }
 
 td.StatSeparator { color: #601919; font-weight: bold; }
+.PercentBar { background-color: #601919; display: inline-block; }
+.PercentSpace { display: inline-block; }




More information about the wine-cvs mailing list