Skip to content

Commit f71d6f2

Browse files
committed
Merge pull request gearpump#505 from stanleyxu2005/fix_422
fix gearpump#422: show the number of executors
2 parents b0a5cc9 + 8335650 commit f71d6f2

File tree

6 files changed

+80
-30
lines changed

6 files changed

+80
-30
lines changed

services/dashboard/partials/apps.html

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<div class="row">
2+
<div class="col-md-6">
3+
<table class="table table-striped">
4+
<caption><h4>Applications</h4></caption>
5+
<thead>
6+
<tr>
7+
<td>ID</td>
8+
<td>Name</td>
9+
<td>Worker Path</td>
10+
</tr>
11+
</thead>
12+
<tbody>
13+
<tr ng-repeat="app in apps track by $index">
14+
<td ng-click="loadDag(app.id)">{{app.id}}</td>
15+
<td ng-click="loadDag(app.id)">{{app.name}}</td>
16+
<td ng-click="loadDag(app.id)">{{app.workerPath}}</td>
17+
</tr>
18+
</tbody>
19+
</table>
20+
</div>
21+
<div class="col-md-6">
22+
<adf-dashboard name="{{name}}" collapsible="{{collapsible}}" structure="4-8" adf-model="model"/>
23+
</div>
24+
</div>

services/dashboard/partials/workers.html

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,24 @@
55
<td header-class="ng-table-header-cell" data-title="'ID'">{{worker.id}}</td>
66
<td header-class="ng-table-header-cell" data-title="'Actor Path'">{{worker.actorPath}}</td>
77
<td header-class="ng-table-header-cell" data-title="'State'">
8-
<span ng-class="worker.state=='active'?'label-success':'label-warning'" class="label">{{worker.state}}</span></td>
9-
<td header-class="ng-table-header-cell" data-title="'Slots'" style="vertical-align:middle">
10-
<p class="text-center" style="padding:0;margin:0;font-size:11px;line-height:100%">
8+
<p style="vertical-align:middle">
9+
<span ng-class="worker.state=='active'?'label-success':'label-warning'" class="label">{{worker.state}}</span></td>
10+
</p>
11+
<td header-class="ng-table-header-cell" data-title="'Slots'" style="vertical-align:middle;width:110px">
12+
<p class="text-center nowrap-small-text" style="padding:0 0 3px;margin:0;">
1113
{{worker.slotsTaken}} / {{worker.slotsTotal}}</p>
12-
<div class="progress" style="padding:0;margin:3px 0;height:3px">
14+
<div class="progress" style="padding:0;margin:0;height:3px">
1315
<div class="progress-bar" role="progressbar" aria-valuenow="{{worker.slotUsage}}" aria-valuemin="0"
1416
aria-valuemax="100" style="min-width:2em;width:{{worker.slotUsage}}%">
1517
</div>
1618
</div>
19+
<p ng-if="worker.executors.length > 0" class="text-center nowrap-small-text"
20+
style="padding:5x 0;margin:0;">
21+
{{worker.executors.length}} executors</p>
1722
</td>
1823
<td header-class="ng-table-header-cell" data-title="'Alive For'">
19-
{{worker.aliveFor|readableTime}}
24+
<p style="veritcal-align:middle">
25+
{{worker.aliveFor|readableTime}}</p>
2026
</td>
2127
<td header-class="ng-table-header-cell" data-title="'Home Directory'">{{worker.homeDir}}</td>
2228
<td header-class="ng-table-header-cell" data-title="'Log File'">{{worker.logFile}}</td>

services/dashboard/scripts/app-02.js

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,28 +23,17 @@
2323
*/
2424
'use strict';
2525

26-
angular.module('app-02', ['adf', 'LocalStorageModule'])
27-
.controller('app02Ctrl', function($scope, localStorageService){
26+
angular.module('app-02', ['adf', 'app.widgets.visdag'])
27+
.controller('app02Ctrl', function($scope, $rootScope, $http){
2828

2929
var name = 'app-02';
3030
var model = null;//localStorageService.get(name);
3131
if (!model) {
3232
model = {
33-
title: "Applications",
33+
title: " ",
3434
structure: "4-8",
3535
rows: [{
3636
columns: [{
37-
styleClass: "col-md-4",
38-
widgets: [
39-
{
40-
type: "applist",
41-
config: {
42-
},
43-
title: "Active"
44-
}
45-
]
46-
}, {
47-
styleClass: "col-md-8",
4837
widgets: [
4938
{
5039
type: "visdag",
@@ -61,7 +50,22 @@ angular.module('app-02', ['adf', 'LocalStorageModule'])
6150
$scope.model = model;
6251
$scope.collapsible = false;
6352

64-
$scope.$on('adfDashboardChanged', function (event, name, model) {
65-
localStorageService.set(name, model);
53+
$scope.loadDag = function(appId) {
54+
$scope.$broadcast('appmaster-selected', {appId: appId});
55+
}
56+
57+
var url = location.origin + '/appmasters';
58+
$http.get(url).then(function (response) {
59+
var masters = response.data.appMasters;
60+
$scope.apps = masters.map(function(app) {
61+
return {
62+
id: app.appId,
63+
name: app.appName,
64+
workerPath: app.workerPath
65+
};
66+
});
67+
}, function (err) {
68+
console.log(err);
69+
throw err;
6670
});
6771
});

services/dashboard/scripts/app.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@ angular.module('app', [
3030
// Angular-dashboard-framework (including extensions)
3131
'adf',
3232
'structures',
33-
'app.widgets.visdag',
34-
'app.widgets.applist',
3533
// Application extensions
3634
'app.tabset',
3735
// Application controllers
@@ -45,7 +43,7 @@ angular.module('app', [
4543
templateUrl: 'partials/cluster.html',
4644
controller: 'app01Ctrl'
4745
}).when('/apps', {
48-
templateUrl: 'partials/app.html',
46+
templateUrl: 'partials/apps.html',
4947
controller: 'app02Ctrl'
5048
}).otherwise({redirectTo: '/cluster'});
5149

services/dashboard/scripts/widgets/visdag/visdag.js

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ angular.module('app.widgets.visdag', ['adf.provider'])
3838
});
3939
})
4040
.controller('visDagCtrl', function ($scope, $http) {
41-
$scope.$on('appmaster-selected', function (event, appMasterSelected) {
41+
$scope.$on('appmaster-selected', function(event, appMasterSelected) {
4242
var url = location.origin + '/appmaster/' + appMasterSelected.appId + '?detail=true';
4343
$http.get(url).then(function (response) {
4444
var json = response.data;
@@ -65,10 +65,13 @@ angular.module('app.widgets.visdag', ['adf.provider'])
6565
});
6666

6767
$scope.$broadcast('appmaster-data', {
68-
data: $scope.data
68+
data: $scope.data,
69+
reset: false
6970
});
7071
}, function (err) {
71-
throw err;
72+
$scope.$broadcast('appmaster-data', {
73+
reset: true
74+
});
7275
});
7376
});
7477
})
@@ -96,9 +99,14 @@ angular.module('app.widgets.visdag', ['adf.provider'])
9699
};
97100
new vis.Network(el[0], data, options);
98101

99-
scope.$on('appmaster-data', function (event, newVal) {
100-
data.nodes.update(newVal.data.nodes);
101-
data.edges.update(newVal.data.edges);
102+
scope.$on('appmaster-data', function(event, newVal) {
103+
if (newVal.reset) {
104+
data.nodes.clear();
105+
data.edges.clear();
106+
} else {
107+
data.nodes.update(newVal.data.nodes);
108+
data.edges.update(newVal.data.edges);
109+
}
102110
});
103111
}
104112

services/dashboard/styles/main.css

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,22 @@ pre.edit {
7171
.ng-table-header-cell {
7272
text-align: left !important;
7373
background-color: #f9f9f9;
74+
white-space:nowrap;
75+
}
76+
.ng-table-tbody-cell {
77+
vertical-align: middle;
7478
}
7579

80+
.nowrap-small-text {
81+
font-size:11px;
82+
line-height:100%;
83+
white-space:nowrap;
84+
}
7685
.summaryItemName {
7786
text-align: right;
7887
font-weight: bold;
7988
}
89+
8090
.table > caption {
8191
text-align: left;
8292
}

0 commit comments

Comments
 (0)