Add regex filter to group page graphs

This commit add regex filters to the group page graphs. The graph's
regex filter was introduced in the home page. However, we didn't care
about the group page at that time.

Change-Id: Id16e745ff3eff256be06829f65bd711041d20fe2
Closes-Bug: #1590059
This commit is contained in:
Masayuki Igawa 2016-06-14 17:37:43 +09:00
parent 6051e3fef3
commit e2817570dc
2 changed files with 57 additions and 27 deletions

View File

@ -42,12 +42,18 @@ function GroupedRunsController(
vm.hold -= 1;
};
vm.processData = function(data) {
vm.processData = function(data, regex) {
// prepare chart data
var jobs = {};
var passEntries = [];
var failEntries = [];
var failRateEntries = [];
var pattern = null;
try {
pattern = new RegExp(regex);
} catch (e) {
pattern = '';
}
if (!data.timedelta) {
return;
@ -60,31 +66,34 @@ function GroupedRunsController(
var DEFAULT_FAIL_RATE = 0;
timedelta.job_data.forEach(function(job) {
var successfulJobs = 0;
var failedJobs = 0;
var jobFailRate = 0;
if (pattern.test(job.job_name)) {
if (!jobs[job.job_name]) {
var jobMetrics = {
name: job.job_name,
passes: 0,
failures: 0,
failuresRate: 0
};
jobs[job.job_name] = jobMetrics;
var successfulJobs = 0;
var failedJobs = 0;
var jobFailRate = 0;
if (!jobs[job.job_name]) {
var jobMetrics = {
name: job.job_name,
passes: 0,
failures: 0,
failuresRate: 0
};
jobs[job.job_name] = jobMetrics;
}
totalPass += job.pass;
totalFail += job.fail;
jobs[job.job_name].passes += job.pass;
jobs[job.job_name].failures += job.fail;
successfulJobs = jobs[job.job_name].passes;
failedJobs = jobs[job.job_name].failures;
jobFailRate = (failedJobs / (failedJobs + successfulJobs)) * 100 || DEFAULT_FAIL_RATE;
jobs[job.job_name].failuresRate = jobFailRate;
}
totalPass += job.pass;
totalFail += job.fail;
jobs[job.job_name].passes += job.pass;
jobs[job.job_name].failures += job.fail;
successfulJobs = jobs[job.job_name].passes;
failedJobs = jobs[job.job_name].failures;
jobFailRate = (failedJobs / (failedJobs + successfulJobs)) * 100 || DEFAULT_FAIL_RATE;
jobs[job.job_name].failuresRate = jobFailRate;
});
failRate = totalFail / (totalFail + totalPass) || DEFAULT_FAIL_RATE;
@ -129,7 +138,7 @@ function GroupedRunsController(
stop_date: viewService.periodEnd(),
datetime_resolution: viewService.resolution().key
}).then(function(response) {
vm.processData(response.data);
vm.processData(response.data, vm.searchJob);
vm.loaded = true;
});
healthService.getRecentGroupedRuns(vm.runMetadataKey, vm.name).then(function(response) {
@ -153,6 +162,7 @@ function GroupedRunsController(
vm.onSearchChange = function() {
$location.search('searchJob', $scope.groupedRuns.searchJob).replace();
vm.loadData();
};
}

View File

@ -17,8 +17,18 @@
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
<div class="panel-heading panel-controls">
<h3 class="panel-title">Total Jobs</h3>
<div class="input-group">
<div class="input-group-addon"><i class="fa fa-search"></i></div>
<input type="text"
class="form-control"
placeholder="Search for job with regex"
ng-model="groupedRuns.searchJob"
ng-model-options="{debounce: 250}"
ng-change="groupedRuns.onSearchChange()"
uib-tooltip="You can see {{groupedRuns.jobs.length}} jobs(s). Details are at the bottom.">
</div>
</div>
<div class="panel-body">
<chart-line data="groupedRuns.chartData" width="100%" height="250"
@ -26,8 +36,18 @@
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<div class="panel-heading panel-controls">
<h3 class="panel-title">Job Failure Rate</h3>
<div class="input-group">
<div class="input-group-addon"><i class="fa fa-search"></i></div>
<input type="text"
class="form-control"
placeholder="Search for job with regex"
ng-model="groupedRuns.searchJob"
ng-model-options="{debounce: 250}"
ng-change="groupedRuns.onSearchChange()"
uib-tooltip="You can see {{groupedRuns.jobs.length}} job(s). Details are at the bottom.">
</div>
</div>
<div class="panel-body">
<chart-line data="groupedRuns.chartDataRate" width="100%" height="250"