You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tez.apache.org by hi...@apache.org on 2014/11/14 20:46:12 UTC
tez git commit: TEZ-1768. follow up jira to address minor issues in
Tez-ui. (Prakash Ramachandran via hitesh)
Repository: tez
Updated Branches:
refs/heads/TEZ-8 ac20265f2 -> 2ce8ebe60
TEZ-1768. follow up jira to address minor issues in Tez-ui. (Prakash Ramachandran via hitesh)
Project: http://git-wip-us.apache.org/repos/asf/tez/repo
Commit: http://git-wip-us.apache.org/repos/asf/tez/commit/2ce8ebe6
Tree: http://git-wip-us.apache.org/repos/asf/tez/tree/2ce8ebe6
Diff: http://git-wip-us.apache.org/repos/asf/tez/diff/2ce8ebe6
Branch: refs/heads/TEZ-8
Commit: 2ce8ebe60e086f56cfe9148db5c42dfee0499c3c
Parents: ac20265
Author: Hitesh Shah <hi...@apache.org>
Authored: Fri Nov 14 10:56:34 2014 -0800
Committer: Hitesh Shah <hi...@apache.org>
Committed: Fri Nov 14 10:56:34 2014 -0800
----------------------------------------------------------------------
CHANGES.txt | 1 +
tez-ui/src/main/webapp/app/scripts/app.js | 5 +-
.../app/scripts/components/counter-table.js | 23 +++--
.../webapp/app/scripts/controllers/dag_tasks.js | 28 +++++--
.../app/scripts/controllers/dag_vertices.js | 21 +++--
.../app/scripts/controllers/dags_controller.js | 41 ++++++---
.../task_task_attempts_controller.js | 15 +++-
.../controllers/tez-app-configs-controller.js | 7 +-
.../controllers/tez-app-dags-controller.js | 10 +--
.../controllers/vertex_tasks_controller.js | 51 +++++++-----
.../src/main/webapp/app/scripts/helpers/misc.js | 5 ++
.../app/scripts/models/TimelineRestAdapter.js | 32 +++----
.../src/main/webapp/app/scripts/models/dag.js | 20 +++++
tez-ui/src/main/webapp/app/scripts/router.js | 88 +++++---------------
tez-ui/src/main/webapp/app/templates/dag.hbs | 2 +-
15 files changed, 185 insertions(+), 164 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tez/blob/2ce8ebe6/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index c5a6ae3..d2d7a21 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -18,6 +18,7 @@ ALL CHANGES:
TEZ-1753. Queue in dags view.
TEZ-1765. Allow dropdown lists in table filters.
TEZ-1606. Counters View for DAG, Vertex, and Task.
+ TEZ-1768. follow up jira to address minor issues in Tez-ui.
Release 0.5.2: Unreleased
http://git-wip-us.apache.org/repos/asf/tez/blob/2ce8ebe6/tez-ui/src/main/webapp/app/scripts/app.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/app.js b/tez-ui/src/main/webapp/app/scripts/app.js
index d735bcc..c08c21f 100644
--- a/tez-ui/src/main/webapp/app/scripts/app.js
+++ b/tez-ui/src/main/webapp/app/scripts/app.js
@@ -33,9 +33,6 @@ var App = window.App = Em.Application.createWithMixins(Bootstrap, {
}
});
-require('scripts/router');
-require('scripts/store');
-
App.Helpers = Em.Namespace.create();
App.Mappers = Em.Namespace.create();
@@ -64,6 +61,8 @@ Ember.Application.initializer({
require('scripts/translations');
require('scripts/mixins/*');
require('scripts/helpers/*');
+require('scripts/router');
+require('scripts/store');
require('scripts/views/**/*');
require('scripts/models/**/*');
require('scripts/mappers/server_data_mapper.js');
http://git-wip-us.apache.org/repos/asf/tez/blob/2ce8ebe6/tez-ui/src/main/webapp/app/scripts/components/counter-table.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/components/counter-table.js b/tez-ui/src/main/webapp/app/scripts/components/counter-table.js
index 80c26dc..ca58f52 100644
--- a/tez-ui/src/main/webapp/app/scripts/components/counter-table.js
+++ b/tez-ui/src/main/webapp/app/scripts/components/counter-table.js
@@ -35,20 +35,17 @@ App.CounterTableComponent = Em.Component.extend({
counters: []
};
- var counters = cg.get('counters');
-
- if (filterStringRegex.test(tmpcg.displayName)) {
- // if counter group name matches, match all counters for the group
- tmpcg.counters = counters;
- } else {
- counters.forEach(function(counter) {
- if (filterStringRegex.test(counter.get('displayName'))) {
- tmpcg.counters.push(counter);
- }
- });
+ var counters = cg.get('counters') || [];
+ counters.forEach(function(counter) {
+ if (filterStringRegex.test(counter.get('displayName'))) {
+ tmpcg.counters.push(counter);
+ }
+ });
+
+ // show counter groups only if filter match is not empty.
+ if (tmpcg.counters.length > 0) {
+ filtered.push(tmpcg);
}
-
- filtered.push(tmpcg);
})
return filtered;
http://git-wip-us.apache.org/repos/asf/tez/blob/2ce8ebe6/tez-ui/src/main/webapp/app/scripts/controllers/dag_tasks.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/controllers/dag_tasks.js b/tez-ui/src/main/webapp/app/scripts/controllers/dag_tasks.js
index b41dbda..e925414 100644
--- a/tez-ui/src/main/webapp/app/scripts/controllers/dag_tasks.js
+++ b/tez-ui/src/main/webapp/app/scripts/controllers/dag_tasks.js
@@ -53,12 +53,15 @@ App.DagTasksController = Em.ObjectController.extend(App.PaginatedContentMixin, {
that.set('entities', entities);
var pivotLoaders = [];
entities.forEach(function (task) {
- // Pivot attempt selection logic
- fetcher = store.find('taskAttempt', task.get('successfulAttemptId') || task.get('attempts').lastObject );
- fetcher.then(function (attempt) {
- task.set('pivotAttempt', attempt);
- });
- pivotLoaders.push(fetcher);
+ var taskAttemptId = task.get('successfulAttemptId') || task.get('attempts').lastObject;
+ if (!!taskAttemptId) {
+ // Pivot attempt selection logic
+ fetcher = store.find('taskAttempt', taskAttemptId);
+ fetcher.then(function (attempt) {
+ task.set('pivotAttempt', attempt);
+ });
+ pivotLoaders.push(fetcher);
+ }
});
Em.RSVP.allSettled(pivotLoaders).then(function(){
that.set('loading', false);
@@ -104,8 +107,15 @@ App.DagTasksController = Em.ObjectController.extend(App.PaginatedContentMixin, {
}
});
- var runTimeCol = App.ExTable.ColumnDefinition.create({
- headerCellName: 'Run Time',
+ var endTimeCol = App.ExTable.ColumnDefinition.create({
+ headerCellName: 'End Time',
+ getCellContent: function(row) {
+ return App.Helpers.date.dateFormat(row.get('endTime'));
+ }
+ });
+
+ var durationCol = App.ExTable.ColumnDefinition.create({
+ headerCellName: 'Duration',
getCellContent: function(row) {
var st = row.get('startTime');
var et = row.get('endTime');
@@ -170,6 +180,6 @@ App.DagTasksController = Em.ObjectController.extend(App.PaginatedContentMixin, {
}
});
- return [idCol, vertexCol, startTimeCol, runTimeCol, statusCol, actionsCol, logs];
+ return [idCol, vertexCol, startTimeCol, endTimeCol, durationCol, statusCol, actionsCol, logs];
}.property(),
});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tez/blob/2ce8ebe6/tez-ui/src/main/webapp/app/scripts/controllers/dag_vertices.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/controllers/dag_vertices.js b/tez-ui/src/main/webapp/app/scripts/controllers/dag_vertices.js
index 91777ab..f1d6347 100644
--- a/tez-ui/src/main/webapp/app/scripts/controllers/dag_vertices.js
+++ b/tez-ui/src/main/webapp/app/scripts/controllers/dag_vertices.js
@@ -73,20 +73,23 @@ App.DagVerticesController = Em.ObjectController.extend(App.PaginatedContentMixin
});
var startTimeCol = App.ExTable.ColumnDefinition.create({
- headerCellName: 'Submission Time',
+ headerCellName: 'Start Time',
getCellContent: function(row) {
return App.Helpers.date.dateFormat(row.get('startTime'));
}
});
- var runTimeCol = App.ExTable.ColumnDefinition.create({
- headerCellName: 'Run Time',
+ var endTimeCol = App.ExTable.ColumnDefinition.create({
+ headerCellName: 'End Time',
getCellContent: function(row) {
- var st = row.get('startTime');
- var et = row.get('endTime');
- if (st && et) {
- return App.Helpers.date.durationSummary(st, et);
- }
+ return App.Helpers.date.dateFormat(row.get('endTime'));
+ }
+ });
+
+ var firstTaskStartTime = App.ExTable.ColumnDefinition.create({
+ headerCellName: 'First Task Start Time',
+ getCellContent: function(row) {
+ return App.Helpers.date.dateFormat(row.get('firstTaskStartTime'));
}
});
@@ -114,6 +117,6 @@ App.DagVerticesController = Em.ObjectController.extend(App.PaginatedContentMixin
}
});
- return [idCol, nameCol, startTimeCol, runTimeCol, numTasksCol, statusCol];
+ return [idCol, nameCol, startTimeCol, endTimeCol, firstTaskStartTime, statusCol, numTasksCol];
}.property(),
});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tez/blob/2ce8ebe6/tez-ui/src/main/webapp/app/scripts/controllers/dags_controller.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/controllers/dags_controller.js b/tez-ui/src/main/webapp/app/scripts/controllers/dags_controller.js
index 63f2f0d..cdc65ff 100644
--- a/tez-ui/src/main/webapp/app/scripts/controllers/dags_controller.js
+++ b/tez-ui/src/main/webapp/app/scripts/controllers/dags_controller.js
@@ -31,7 +31,9 @@ App.DagsController = Em.ObjectController.extend(App.PaginatedContentMixin, {
count: true,
fromID: true,
status_filter: 'status',
- user_filter: 'user'
+ user_filter: 'user',
+ appId_filter: 'appid',
+ dagName_filter: 'dag_name'
},
// paging related values. These are bound automatically to the values in url. via the queryParams
@@ -44,15 +46,21 @@ App.DagsController = Em.ObjectController.extend(App.PaginatedContentMixin, {
user_filter: null,
+ appId_filter: null,
+
+ dagName_filter: null,
+
fields: 'events,primaryfilters,otherinfo',
// The dropdown contents for number of items to show.
- countOptions: [5, 10, 25, 50, 100],
+ countOptions: [5, 10, 25, 50],
loadData: function() {
var filters = {
primary: {
- user: this.user_filter
+ user: this.user_filter,
+ applicationId: this.appId_filter,
+ dagName: this.dagName_filter
},
secondary: {
status: this.status_filter
@@ -114,12 +122,13 @@ App.DagsController = Em.ObjectController.extend(App.PaginatedContentMixin, {
});
}
- var nameCol = App.ExTable.ColumnDefinition.create({
+ var nameCol = App.ExTable.ColumnDefinition.createWithMixins(App.ExTable.FilterColumnMixin, {
textAlign: 'text-align-left',
headerCellName: 'Dag Name',
+ filterID: 'dagName_filter',
tableCellViewClass: Em.Table.TableCell.extend({
template: Em.Handlebars.compile(
- "{{#link-to 'dag' view.cellContent.id class='ember-table-content'}}{{view.cellContent.name}}{{/link-to}}")
+ "{{#link-to 'dag.vertices' view.cellContent.id class='ember-table-content'}}{{view.cellContent.name}}{{/link-to}}")
}),
getCellContent: function(row) {
return {
@@ -154,16 +163,23 @@ App.DagsController = Em.ObjectController.extend(App.PaginatedContentMixin, {
};
}
});
- var submittedTimeCol = App.ExTable.ColumnDefinition.create({
+ var startTime = App.ExTable.ColumnDefinition.create({
+ textAlign: 'text-align-left',
+ headerCellName: 'Start Time',
+ getCellContent: function(row) {
+ return App.Helpers.date.dateFormat(row.get('startTime'));
+ }
+ });
+ var endTime = App.ExTable.ColumnDefinition.create({
textAlign: 'text-align-left',
- headerCellName: 'Submitted Time',
+ headerCellName: 'End Time',
getCellContent: function(row) {
- return App.Helpers.date.dateFormat(row.get('submittedTime'));
+ return App.Helpers.date.dateFormat(row.get('endTime'));
}
});
- var runTimeCol = App.ExTable.ColumnDefinition.create({
+ var durationCol = App.ExTable.ColumnDefinition.create({
textAlign: 'text-align-left',
- headerCellName: 'Run Time',
+ headerCellName: 'Duration',
getCellContent: function(row) {
var st = row.get('startTime');
var et = row.get('endTime');
@@ -172,9 +188,10 @@ App.DagsController = Em.ObjectController.extend(App.PaginatedContentMixin, {
}
}
});
- var appIdCol = App.ExTable.ColumnDefinition.create({
+ var appIdCol = App.ExTable.ColumnDefinition.createWithMixins(App.ExTable.FilterColumnMixin, {
textAlign: 'text-align-left',
headerCellName: 'Application ID',
+ filterID: 'appId_filter',
tableCellViewClass: Em.Table.TableCell.extend({
template: Em.Handlebars.compile(
"{{#link-to 'tez-app' view.cellContent class='ember-table-content'}}{{view.cellContent}}{{/link-to}}")
@@ -190,7 +207,7 @@ App.DagsController = Em.ObjectController.extend(App.PaginatedContentMixin, {
return (row.get('app') && row.get('app').get('queue')) || 'Not Available';
}
});
- return [nameCol, idCol, userCol, statusCol, submittedTimeCol, runTimeCol, appIdCol, queue];
+ return [nameCol, idCol, userCol, statusCol, startTime, endTime, durationCol, appIdCol, queue];
}.property(),
http://git-wip-us.apache.org/repos/asf/tez/blob/2ce8ebe6/tez-ui/src/main/webapp/app/scripts/controllers/task_task_attempts_controller.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/controllers/task_task_attempts_controller.js b/tez-ui/src/main/webapp/app/scripts/controllers/task_task_attempts_controller.js
index 244dd1d..1099d04 100644
--- a/tez-ui/src/main/webapp/app/scripts/controllers/task_task_attempts_controller.js
+++ b/tez-ui/src/main/webapp/app/scripts/controllers/task_task_attempts_controller.js
@@ -75,6 +75,17 @@ App.TaskAttemptsController = Em.ObjectController.extend(App.PaginatedContentMixi
}
});
+ var durationCol = App.ExTable.ColumnDefinition.create({
+ headerCellName: 'Duration',
+ getCellContent: function(row) {
+ var st = row.get('startTime');
+ var et = row.get('endTime');
+ if (st && et) {
+ return App.Helpers.date.durationSummary(st, et);
+ }
+ }
+ });
+
var statusCol = App.ExTable.ColumnDefinition.createWithMixins(App.ExTable.FilterColumnMixin,{
headerCellName: 'Status',
filterID: 'status_filter',
@@ -125,8 +136,8 @@ App.TaskAttemptsController = Em.ObjectController.extend(App.PaginatedContentMixi
return logFile;
}
});
- return [idCol, startTimeCol, endTimeCol, statusCol, nodeIdCol, containerCol, logs];
- }.property(),
+ return [idCol, startTimeCol, endTimeCol, durationCol, statusCol, nodeIdCol, containerCol, logs];
+ }.property(),
});
http://git-wip-us.apache.org/repos/asf/tez/blob/2ce8ebe6/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-configs-controller.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-configs-controller.js b/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-configs-controller.js
index 6843733..a50f589 100644
--- a/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-configs-controller.js
+++ b/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-configs-controller.js
@@ -24,10 +24,9 @@ App.TezAppConfigsController = Em.ObjectController.extend(App.PaginatedContentMix
value: null,
loadEntities: function() {
- var that = this,
count = 0,
filter = this.getFilterProperties(),
- configs = configs = this.get('configs').content,
+ configs = this.get('configs').content,
filtered = [],
i = 0;
@@ -39,7 +38,7 @@ App.TezAppConfigsController = Em.ObjectController.extend(App.PaginatedContentMix
// Filter the available data
for(; i < configs.length && filtered.length < filter.limit; i++){
- if((that.key === null || configs[i].get('key').indexOf(that.key) !=-1) && (that.value === null || configs[i].get('value').indexOf(that.value) != -1)) {
+ if((this.key === null || configs[i].get('key').indexOf(this.key) !=-1) && (this.value === null || configs[i].get('value').indexOf(this.value) != -1)) {
filtered.push(configs[i]);
}
}
@@ -86,4 +85,4 @@ App.TezAppConfigsController = Em.ObjectController.extend(App.PaginatedContentMix
];
}.property(),
-});
\ No newline at end of file
+});
http://git-wip-us.apache.org/repos/asf/tez/blob/2ce8ebe6/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-dags-controller.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-dags-controller.js b/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-dags-controller.js
index d07478c..e2855e1 100644
--- a/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-dags-controller.js
+++ b/tez-ui/src/main/webapp/app/scripts/controllers/tez-app-dags-controller.js
@@ -30,7 +30,6 @@ App.TezAppDagsController = Em.ObjectController.extend(App.PaginatedContentMixin,
user_filter: null,
loadData: function() {
- console.log(new Error().stack);
var filters = {
primary: {
applicationId: this.get('appId'),
@@ -120,19 +119,18 @@ App.TezAppDagsController = Em.ObjectController.extend(App.PaginatedContentMixin,
return App.Helpers.date.dateFormat(row.get('submittedTime'));
}
});
- var runTimeCol = App.ExTable.ColumnDefinition.create({
+ var durationCol = App.ExTable.ColumnDefinition.create({
textAlign: 'text-align-left',
- headerCellName: 'Run Time',
+ headerCellName: 'Duration',
getCellContent: function(row) {
var st = row.get('startTime');
var et = row.get('endTime');
- console.log(st, et);
if (st && et) {
return App.Helpers.date.durationSummary(st, et);
}
}
});
- return [nameCol, idCol, userCol, statusCol, submittedTimeCol, runTimeCol];
+ return [nameCol, idCol, userCol, statusCol, submittedTimeCol, durationCol];
}.property(),
-});
\ No newline at end of file
+});
http://git-wip-us.apache.org/repos/asf/tez/blob/2ce8ebe6/tez-ui/src/main/webapp/app/scripts/controllers/vertex_tasks_controller.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/controllers/vertex_tasks_controller.js b/tez-ui/src/main/webapp/app/scripts/controllers/vertex_tasks_controller.js
index 986dedd..e963225 100644
--- a/tez-ui/src/main/webapp/app/scripts/controllers/vertex_tasks_controller.js
+++ b/tez-ui/src/main/webapp/app/scripts/controllers/vertex_tasks_controller.js
@@ -50,12 +50,15 @@ App.VertexTasksController = Em.ObjectController.extend(App.PaginatedContentMixin
that.set('entities', entities);
var pivotLoaders = [];
entities.forEach(function (task) {
- // Pivot attempt selection logic
- fetcher = store.find('taskAttempt', task.get('successfulAttemptId') || task.get('attempts').lastObject );
- fetcher.then(function (attempt) {
- task.set('pivotAttempt', attempt);
- });
- pivotLoaders.push(fetcher);
+ var taskAttemptId = task.get('successfulAttemptId') || task.get('attempts').lastObject;
+ if (!!taskAttemptId){
+ // Pivot attempt selection logic
+ fetcher = store.find('taskAttempt', taskAttemptId);
+ fetcher.then(function (attempt) {
+ task.set('pivotAttempt', attempt);
+ });
+ pivotLoaders.push(fetcher);
+ }
});
Em.RSVP.allSettled(pivotLoaders).then(function(){
that.set('loading', false);
@@ -88,24 +91,22 @@ App.VertexTasksController = Em.ObjectController.extend(App.PaginatedContentMixin
contentPath: 'id',
});
- var vertexCol = App.ExTable.ColumnDefinition.create({
- headerCellName: 'Vertex ID',
- contentPath: 'vertexID',
- tableCellViewClass: Em.Table.TableCell.extend({
- template: Em.Handlebars.compile(
- "{{#link-to 'vertex' view.cellContent class='ember-table-content'}}{{view.cellContent}}{{/link-to}}")
- }),
- });
-
var startTimeCol = App.ExTable.ColumnDefinition.create({
- headerCellName: 'Submission Time',
+ headerCellName: 'Start Time',
getCellContent: function(row) {
return App.Helpers.date.dateFormat(row.get('startTime'));
}
});
var endTimeCol = App.ExTable.ColumnDefinition.create({
- headerCellName: 'Run Time',
+ headerCellName: 'End Time',
+ getCellContent: function(row) {
+ return App.Helpers.date.dateFormat(row.get('endTime'));
+ }
+ });
+
+ var durationCol = App.ExTable.ColumnDefinition.create({
+ headerCellName: 'duration',
getCellContent: function(row) {
var st = row.get('startTime');
var et = row.get('endTime');
@@ -134,9 +135,17 @@ App.VertexTasksController = Em.ObjectController.extend(App.PaginatedContentMixin
}
});
- var nodeCol = App.ExTable.ColumnDefinition.create({
- headerCellName: 'Node',
- contentPath: 'node'
+ var actionsCol = App.ExTable.ColumnDefinition.create({
+ headerCellName: 'Actions',
+ tableCellViewClass: Em.Table.TableCell.extend({
+ template: Em.Handlebars.compile(
+ '<span class="ember-table-content">\
+ {{#link-to "task.counters" view.cellContent}}counters{{/link-to}} \
+ {{#link-to "task.attempts" view.cellContent}}attempts{{/link-to}}\
+ </span>'
+ )
+ }),
+ contentPath: 'id'
});
var logs = App.ExTable.ColumnDefinition.create({
@@ -162,6 +171,6 @@ App.VertexTasksController = Em.ObjectController.extend(App.PaginatedContentMixin
}
});
- return [idCol, vertexCol, startTimeCol, endTimeCol, statusCol, logs];
+ return [idCol, startTimeCol, endTimeCol, durationCol, statusCol, actionsCol, logs];
}.property(),
});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tez/blob/2ce8ebe6/tez-ui/src/main/webapp/app/scripts/helpers/misc.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/helpers/misc.js b/tez-ui/src/main/webapp/app/scripts/helpers/misc.js
index 66651b5..aebde79 100644
--- a/tez-ui/src/main/webapp/app/scripts/helpers/misc.js
+++ b/tez-ui/src/main/webapp/app/scripts/helpers/misc.js
@@ -101,4 +101,9 @@ App.Helpers.misc = {
{ label: 'Killed', id: 'KILLED' },
],
+ defaultQueryParamsConfig: {
+ refreshModel: true,
+ replace: true
+ }
+
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tez/blob/2ce8ebe6/tez-ui/src/main/webapp/app/scripts/models/TimelineRestAdapter.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/models/TimelineRestAdapter.js b/tez-ui/src/main/webapp/app/scripts/models/TimelineRestAdapter.js
index c9e470a..00ef215 100644
--- a/tez-ui/src/main/webapp/app/scripts/models/TimelineRestAdapter.js
+++ b/tez-ui/src/main/webapp/app/scripts/models/TimelineRestAdapter.js
@@ -148,8 +148,6 @@ App.DagSerializer = App.TimelineSerializer.extend({
},
});
-var containerIdRegex = /.*(container_.*?)\/.*/;
-var nodeIdRegex = /([^\/]*)\//;
var timelineJsonToTaskAttemptMap = {
id: 'entity',
startTime: 'otherinfo.startTime',
@@ -163,21 +161,10 @@ var timelineJsonToTaskAttemptMap = {
vertexID: 'primaryfilters.TEZ_VERTEX_ID.0',
dagID: 'primaryfilters.TEZ_DAG_ID.0',
- containerId: { custom: function (source) {
- var inProgressLogsURL = Em.get(source, 'otherinfo.inProgressLogsURL');
- var match = containerIdRegex.exec(inProgressLogsURL);
- return match[1];
- }},
- nodeId: {
- custom: function(source) {
- var inProgressLogsURL = Em.get(source, 'otherinfo.inProgressLogsURL');
- var match = nodeIdRegex.exec(inProgressLogsURL);
- return match[1];
- }
- }
+ containerId: 'otherinfo.containerId',
+ nodeId: 'otherinfo.nodeId'
};
-
App.TaskAttemptSerializer = App.TimelineSerializer.extend({
_normalizeSingleTaskAttemptPayload: function(taskAttempt) {
var normalizedCounterGroupData = this.normalizeCounterGroupsHelper('taskAttempt',
@@ -229,7 +216,6 @@ var timelineJsonToTaskMap = {
counterGroups: 'counterGroups',
successfulAttemptId: 'otherinfo.successfulAttemptId',
attempts: 'relatedentities.TEZ_TASK_ATTEMPT_ID',
- vertexID: 'primaryfilters.TEZ_VERTEX_ID.0',
dagID: 'primaryfilters.TEZ_DAG_ID.0',
numAttempts: 'relatedentities'
};
@@ -281,6 +267,7 @@ var timelineJsonToVertexMap = {
id: 'entity',
name: 'otherinfo.vertexName',
dagID: 'primaryfilters.TEZ_DAG_ID.0',
+ processorClassName: 'otherinfo.stats.processorClassName',
counterGroups: 'counterGroups',
startTime: 'otherinfo.startTime',
@@ -293,6 +280,19 @@ var timelineJsonToVertexMap = {
sucessfulTasks: 'otherinfo.numSucceededTasks',
numTasks: 'otherinfo.numTasks',
killedTasks: 'otherinfo.numKilledTasks',
+
+ firstTaskStartTime: 'otherinfo.stats.firstTaskStartTime',
+ lastTaskFinishTime: 'otherinfo.stats.lastTaskFinishTime',
+
+ firstTasksToStart: 'otherinfo.stats.firstTasksToStart',
+ lastTasksToFinish: 'otherinfo.stats.lastTasksToFinish',
+
+ minTaskDuration: 'otherinfo.stats.minTaskDuration',
+ maxTaskDuration: 'otherinfo.stats.maxTaskDuration',
+ avgTaskDuration: 'otherinfo.stats.avgTaskDuration',
+
+ shortestDurationTasks: 'otherinfo.stats.shortestDurationTasks',
+ longestDurationTasks: 'otherinfo.stats.longestDurationTasks'
};
App.VertexSerializer = App.TimelineSerializer.extend({
http://git-wip-us.apache.org/repos/asf/tez/blob/2ce8ebe6/tez-ui/src/main/webapp/app/scripts/models/dag.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/models/dag.js b/tez-ui/src/main/webapp/app/scripts/models/dag.js
index fbd8da6..8a74b4b 100644
--- a/tez-ui/src/main/webapp/app/scripts/models/dag.js
+++ b/tez-ui/src/main/webapp/app/scripts/models/dag.js
@@ -118,6 +118,26 @@ App.Vertex = DS.Model.extend({
endTime: DS.attr('number'),
+ firstTaskStartTime: DS.attr('number'),
+
+ firstTasksToStart: DS.attr('string'),
+
+ lastTaskFinishTime: DS.attr('number'),
+
+ lastTasksToFinish: DS.attr('string'),
+
+ minTaskDuration: DS.attr('number'),
+
+ maxTaskDuration: DS.attr('number'),
+
+ avgTaskDuration: DS.attr('number'),
+
+ shortestDurationTasks: DS.attr('string'),
+
+ longestDurationTasks: DS.attr('string'),
+
+ processorClassName: DS.attr('string'),
+
/**
* Provides the duration of this job. If the job has not started, duration
* will be given as 0. If the job has not ended, duration will be till now.
http://git-wip-us.apache.org/repos/asf/tez/blob/2ce8ebe6/tez-ui/src/main/webapp/app/scripts/router.js
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/scripts/router.js b/tez-ui/src/main/webapp/app/scripts/router.js
index 2d86d7d..50615a5 100644
--- a/tez-ui/src/main/webapp/app/scripts/router.js
+++ b/tez-ui/src/main/webapp/app/scripts/router.js
@@ -75,22 +75,12 @@ App.DagCountersRoute = App.VertexCountersRoute =
App.DagsRoute = Em.Route.extend({
queryParams: {
- count: {
- refreshModel: true,
- replace: true
- },
- fromID: {
- refreshModel: true,
- replace: true
- },
- user: {
- refreshModel: true,
- replace: true
- },
- status: {
- refreshModel: true,
- replace: true
- }
+ count: App.Helpers.misc.defaultQueryParamsConfig,
+ fromID: App.Helpers.misc.defaultQueryParamsConfig,
+ user: App.Helpers.misc.defaultQueryParamsConfig,
+ status: App.Helpers.misc.defaultQueryParamsConfig,
+ appid: App.Helpers.misc.defaultQueryParamsConfig,
+ dag_name: App.Helpers.misc.defaultQueryParamsConfig
},
setupController: function(controller, model) {
@@ -125,18 +115,9 @@ App.DagSwimlaneRoute = Em.Route.extend({
App.TasksRoute = Em.Route.extend({
queryParams: {
- status: {
- refreshModel: true,
- replace: true
- },
- parentType: {
- refreshModel: true,
- replace: true
- },
- parentID: {
- refreshModel: true,
- replace: true
- }
+ status: App.Helpers.misc.defaultQueryParamsConfig,
+ parentType: App.Helpers.misc.defaultQueryParamsConfig,
+ parentID: App.Helpers.misc.defaultQueryParamsConfig
},
setupController: function(controller, model) {
@@ -168,11 +149,9 @@ App.VertexRoute = Em.Route.extend({
App.VertexSwimlaneRoute = Em.Route.extend({
model: function(params) {
var model = this.modelFor('vertex');
- var queryParams = {'primaryFilter': 'TEZ_DAG_ID:' + model.get('dagID') };
+ var queryParams = {'primaryFilter': 'TEZ_VERTEX_ID:' + model.id };
this.store.unloadAll('task_attempt');
- return this.store.filter('task_attempt', queryParams, function(ta) {
- return ta.get('vertexID') == model.id;
- });
+ return this.store.find('task_attempt', queryParams);
},
setupController: function(controller, model) {
@@ -182,14 +161,8 @@ App.VertexSwimlaneRoute = Em.Route.extend({
App.DagTasksRoute = Em.Route.extend({
queryParams: {
- status: {
- refreshModel: true,
- replace: true
- },
- vertex_id: {
- refreshModel: true,
- replace: true
- }
+ status: App.Helpers.misc.defaultQueryParamsConfig,
+ vertex_id: App.Helpers.misc.defaultQueryParamsConfig
},
setupController: function(controller, model) {
@@ -200,10 +173,7 @@ App.DagTasksRoute = Em.Route.extend({
App.DagVerticesRoute = Em.Route.extend({
queryParams: {
- status: {
- refreshModel: true,
- replace: true
- }
+ status: App.Helpers.misc.defaultQueryParamsConfig
},
setupController: function(controller, model) {
@@ -214,10 +184,7 @@ App.DagVerticesRoute = Em.Route.extend({
App.VertexTasksRoute = Em.Route.extend({
queryParams: {
- status: {
- refreshModel: true,
- replace: true
- }
+ status: App.Helpers.misc.defaultQueryParamsConfig
},
setupController: function(controller, model) {
@@ -228,10 +195,7 @@ App.VertexTasksRoute = Em.Route.extend({
App.TaskAttemptsRoute = Em.Route.extend({
queryParams: {
- status: {
- refreshModel: true,
- replace: true
- }
+ status: App.Helpers.misc.defaultQueryParamsConfig
},
setupController: function(controller, model) {
@@ -254,22 +218,10 @@ App.TezAppRoute = Em.Route.extend({
App.TezAppDagsRoute = Em.Route.extend({
queryParams: {
- count: {
- refreshModel: true,
- replace: true
- },
- fromID: {
- refreshModel: true,
- replace: true
- },
- user: {
- refreshModel: true,
- replace: true
- },
- status: {
- refreshModel: true,
- replace: true
- }
+ count: App.Helpers.misc.defaultQueryParamsConfig,
+ fromID: App.Helpers.misc.defaultQueryParamsConfig,
+ user: App.Helpers.misc.defaultQueryParamsConfig,
+ status: App.Helpers.misc.defaultQueryParamsConfig
},
setupController: function(controller, model) {
http://git-wip-us.apache.org/repos/asf/tez/blob/2ce8ebe6/tez-ui/src/main/webapp/app/templates/dag.hbs
----------------------------------------------------------------------
diff --git a/tez-ui/src/main/webapp/app/templates/dag.hbs b/tez-ui/src/main/webapp/app/templates/dag.hbs
index 3908f2f..35ea965 100644
--- a/tez-ui/src/main/webapp/app/templates/dag.hbs
+++ b/tez-ui/src/main/webapp/app/templates/dag.hbs
@@ -6,7 +6,7 @@
<table class='detail-list'>
<tbody>
<tr>
- <td>{{t common.id}}</td>
+ <td>Dag ID</td>
<td>{{id}}</td>
</tr>
<tr>