Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(775)

Unified Diff: status/templates/buildbot_dash.html

Issue 1051173003: Add controls to buildbot dashboard (Closed) Base URL: https://skia.googlesource.com/buildbot@master
Patch Set: Simplify promise Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « status/res/imp/input-list-sk.html ('k') | status/templates/header.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: status/templates/buildbot_dash.html
diff --git a/status/templates/buildbot_dash.html b/status/templates/buildbot_dash.html
index a4d945fdb39bc8dc3838bebee0a19125c8e3c644..b214319012ffe010e8e19e830fa8266ae1ac8809 100644
--- a/status/templates/buildbot_dash.html
+++ b/status/templates/buildbot_dash.html
@@ -15,14 +15,6 @@
text-align: center;
font-size: 15px;
}
- h1 {
- font-size: 1.7em;
- margin-bottom: 2px;
- margin-top: 5px;
- }
- #maincontent {
- padding: 10px;
- }
#spacer-left {
width: 160px;
}
@@ -36,188 +28,6 @@
font-size: 1em;
}
</style>
- <script type="text/javascript" src="https://www.google.com/jsapi"></script>
- <script type="text/javascript">
- (function() {
- var chartsReady = false;
- var ChartsReady = new Promise(function(resolve, reject) {
- if (chartsReady) {
- resolve();
- } else {
- google.setOnLoadCallback(resolve);
- }
- })
-
- google.load("visualization", "1.0", {"packages": ["corechart"]});
- google.setOnLoadCallback(function() { chartsReady = true; });
-
- var builds = [];
- var buildTimes = {};
- var stepTimes = {};
- var buildResults = {};
- var stepResults = {};
-
- var blacklist = [];
- var match = [];
-
- var palette = [
- "#03DCFB", "#00C2DD", "#008699", "#006C7C", "#00535E", // Blue
- "#FFAE00", "#FFAE00", "#FAAB00", "#CA8A00", "#9A6900", // Yellow
- "#FF1300", "#FF1300", "#FA1200", "#CA0F00", "#9A0B00", // Red
- ];
- var paletteRowLen = 5;
- var colors = [
- palette[2*paletteRowLen+3],
- palette[1*paletteRowLen+3],
- palette[0*paletteRowLen+3],
- ];
-
- function reloadBuilds(start, end) {
- console.time("loadData");
- url = "/json/builds";
- if (!!start) {
- url += "?start=" + start;
- if (!!end) {
- url += "&end=" + end;
- }
- }
- document.getElementById("spinner").style.display = "flex";
- document.getElementById("chart_container").style.display = "none";
- sk.get(url).then(JSON.parse).then(function(json) {
- console.timeEnd("loadData");
- builds = json;
- processBuilds();
- document.getElementById("spinner").style.display = "none";
- document.getElementById("chart_container").style.display = "flex";
- });
- }
-
- function includeBuilder(builder) {
- for (var i = 0; i < blacklist.length; i++) {
- if (builder.match(blacklist[i])) {
- return false;
- }
- }
- for (var i = 0; i < match.length; i++) {
- if (!builder.match(match[i])) {
- return false;
- }
- }
- return true;
- }
-
- function mean(data) {
- // TODO(borenet): Use a more stable algorithm.
- var sum = 0;
- for (var i = 0; i < data.length; i++) {
- sum += data[i];
- }
- return sum / data.length;
- }
-
- function processBuilds() {
- console.time("processBuilds");
- buildTimes = {};
- stepTimes = {};
- buildResults = {};
- stepResults = {};
-
- for (var i = 0; i < builds.length; i++) {
- var build = builds[i];
- if (!includeBuilder(build.Builder)) {
- continue;
- }
-
- var duration = build.Finished - build.Started;
- if (!buildTimes[build.Builder]) {
- buildTimes[build.Builder] = [];
- }
- buildTimes[build.Builder].push(duration);
-
- if (!buildResults[build.Builder]) {
- buildResults[build.Builder] = [];
- }
- buildResults[build.Builder].push(build.Results == 0 ? 0 : 1);
-
- for (var j = 0; j < build.Steps.length; j++) {
- var step = build.Steps[j];
- // Always exclude these steps.
- if (step.Name == "steps" || step.Name == "Uncaught Exception") {
- continue;
- }
- var stepDuration = step.Finished - step.Started;
- if (!stepTimes[step.Name]) {
- stepTimes[step.Name] = [];
- }
- stepTimes[step.Name].push(stepDuration);
-
- if (!stepResults[step.Name]) {
- stepResults[step.Name] = [];
- }
- stepResults[step.Name].push(step.Results == 0 ? 0 : 1);
- }
- }
-
- console.timeEnd("processBuilds");
- drawCharts();
- }
-
- function drawCharts() {
- console.time("drawCharts");
- // Draw charts.
- ChartsReady.then(function() {
- var chart = null;
-
- // Build times.
- chart = document.getElementById("build_times_chart");
- chart.colors = colors;
- chart.draw(
- [["string", "Builder"],
- ["number", "Time (s)"]],
- generateStats(buildTimes, mean));
-
- // Step times.
- chart = document.getElementById("step_times_chart");
- chart.colors = colors;
- chart.draw(
- [["string", "Step"],
- ["number", "Time (s)"]],
- generateStats(stepTimes, mean));
-
- // Build failure rate.
- chart = document.getElementById("build_failure_rate_chart");
- chart.colors = colors;
- chart.draw(
- [["string", "Builder"],
- ["number", "Failure Rate"]],
- generateStats(buildResults, mean));
-
- // Step failure rate.
- chart = document.getElementById("step_failure_rate_chart");
- chart.colors = colors;
- chart.draw(
- [["string", "Step"],
- ["number", "Failure Rate"]],
- generateStats(stepResults, mean));
-
- console.timeEnd("drawCharts");
- });
- }
-
- function generateStats(data, aggregator) {
- var stats = [];
- for (var series in data) {
- stats.push([series, aggregator(data[series])]);
- }
- stats.sort(function(a, b) {
- return b[1] - a[1];
- });
- return stats;
- }
-
- sk.WebComponentsReady.then(function() { reloadBuilds(); });
- })();
- </script>
</head>
<body fullbleed vertical layout unresolved>
<core-header-panel flex>
@@ -232,19 +42,7 @@
<login-sk></login-sk>
</div>
</core-toolbar>
- <div id="maincontent" vertical layout>
- <div id="spinner" horizontal layout center fit>
- <div vertical layout center flex>
- <paper-spinner active></paper-spinner>
- </div>
- </div>
- <div id="chart_container" vertical layout>
- <bar-chart-sk heading="Build Times" id="build_times_chart"></bar-chart-sk>
- <bar-chart-sk heading="Step Times" id="step_times_chart"></bar-chart-sk>
- <bar-chart-sk heading="Build Failure Rate" id="build_failure_rate_chart"></bar-chart-sk>
- <bar-chart-sk heading="Step Failure Rate" id="step_failure_rate_chart"></bar-chart-sk>
- </div>
- </div>
+ <buildbot-dash-sk></buildbot-dash-sk>
</core-header-panel>
<div horizontal layout>
<div flex></div>
« no previous file with comments | « status/res/imp/input-list-sk.html ('k') | status/templates/header.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698