You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by se...@apache.org on 2015/09/17 20:20:01 UTC
[29/51] [abbrv] flink git commit: [FLINK-2357] [web dashboard] Adjust
view for details of a job
http://git-wip-us.apache.org/repos/asf/flink/blob/c36b3d7a/flink-runtime-web/web-dashboard/web/partials/jobs/completed-jobs.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/completed-jobs.html b/flink-runtime-web/web-dashboard/web/partials/jobs/completed-jobs.html
index 07e09c2..b76278d 100644
--- a/flink-runtime-web/web-dashboard/web/partials/jobs/completed-jobs.html
+++ b/flink-runtime-web/web-dashboard/web/partials/jobs/completed-jobs.html
@@ -35,7 +35,7 @@ limitations under the License.
</tr>
</thead>
<tbody>
- <tr ng-repeat="job in jobs" ui-sref="single-job.plan({ jobid: job.jid })">
+ <tr ng-repeat="job in jobs" ui-sref="single-job.plan.overview({ jobid: job.jid })">
<td>{{job['start-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}</td>
<td>{{job['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}</td>
<td>{{job.duration}} ms</td>
http://git-wip-us.apache.org/repos/asf/flink/blob/c36b3d7a/flink-runtime-web/web-dashboard/web/partials/jobs/job.exceptions.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/job.exceptions.html b/flink-runtime-web/web-dashboard/web/partials/jobs/job.exceptions.html
index bcaef0d..a5f6676 100644
--- a/flink-runtime-web/web-dashboard/web/partials/jobs/job.exceptions.html
+++ b/flink-runtime-web/web-dashboard/web/partials/jobs/job.exceptions.html
@@ -17,7 +17,7 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
-<div class="panel panel-default panel-multi">
+<div ng-if="exceptions['root-exception']" class="panel panel-default panel-multi">
<div class="panel-heading clearfix">
<div class="panel-title">Root exception</div>
</div>
http://git-wip-us.apache.org/repos/asf/flink/blob/c36b3d7a/flink-runtime-web/web-dashboard/web/partials/jobs/job.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/job.html b/flink-runtime-web/web-dashboard/web/partials/jobs/job.html
index ed10feb..9d3e171 100644
--- a/flink-runtime-web/web-dashboard/web/partials/jobs/job.html
+++ b/flink-runtime-web/web-dashboard/web/partials/jobs/job.html
@@ -35,10 +35,11 @@ limitations under the License.
</nav>
<nav ng-if="job" class="navbar navbar-default navbar-fixed-top navbar-main-additional">
<ul class="nav nav-tabs">
- <li ui-sref-active="active"><a ui-sref=".plan">Plan</a></li>
+ <li ui-sref-active="active"><a ui-sref=".plan.overview">Plan</a></li>
<li ui-sref-active="active"><a ui-sref=".statistics">Job Accumulators / Statistics</a></li>
<li ui-sref-active="active"><a ui-sref=".timeline">Timeline</a></li>
<li ui-sref-active="active"><a ui-sref=".exceptions">Exceptions</a></li>
+ <li ui-sref-active="active"><a ui-sref=".properties">Properties</a></li>
<li ui-sref-active="active"><a ui-sref=".config">Configuration</a></li>
</ul>
</nav>
http://git-wip-us.apache.org/repos/asf/flink/blob/c36b3d7a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.html b/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.html
index 34ad7a9..f2c4143 100644
--- a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.html
+++ b/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.html
@@ -18,6 +18,14 @@ limitations under the License.
-->
<div class="canvas-wrapper">
- <div job-plan="job-plan" plan="plan" jobid="{{jobid}}" class="main-canvas"></div>
+ <div job-plan="job-plan" plan="plan" jobid="{{jobid}}" set-node="changeNode(nodeid)" class="main-canvas"></div>
</div>
-<div ui-view="node-tabs"></div>
\ No newline at end of file
+<div ng-if="plan" class="panel panel-default panel-multi">
+ <nav class="navbar navbar-default navbar-secondary-additional">
+ <ul class="nav nav-tabs">
+ <li ui-sref-active="active"><a ui-sref=".overview({nodeid: nodeid})">Overview</a></li>
+ <li ui-sref-active="active"><a ui-sref=".accumulators({nodeid: nodeid})">Accumulators</a></li>
+ </ul>
+ </nav>
+ <div ui-view="node-details" class="panel-body clean"></div>
+</div>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flink/blob/c36b3d7a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node-list.accumulators.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node-list.accumulators.html b/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node-list.accumulators.html
new file mode 100644
index 0000000..e3a20e3
--- /dev/null
+++ b/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node-list.accumulators.html
@@ -0,0 +1,40 @@
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-->
+<table class="table table-body-hover table-clickable table-activable">
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th>Status</th>
+ </tr>
+ </thead>
+ <tbody ng-repeat="v in job.vertices" ng-class="{ active: v.id == nodeid }" ng-click="changeNode(v.id)">
+ <tr>
+ <td>{{ v.name | humanizeText }}</td>
+ <td>
+ <bs-label status="{{v.status}}">{{v.status}}</bs-label>
+ </td>
+ </tr>
+ <tr ng-if="nodeid && v.id == nodeid">
+ <td colspan="10">
+ <div ng-include=" 'partials/jobs/job.plan.node.accumulators.html' "></div>
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flink/blob/c36b3d7a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node-list.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node-list.html b/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node-list.html
deleted file mode 100644
index 27e965a..0000000
--- a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node-list.html
+++ /dev/null
@@ -1,69 +0,0 @@
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-<table class="table table-body-hover table-clickable table-activable">
- <thead>
- <tr>
- <th class="tab-column"></th>
- <th>Start Time</th>
- <th>End Time</th>
- <th>Duration</th>
- <th>Name</th>
- <th>Bytes read</th>
- <th>Records read</th>
- <th>Bytes written</th>
- <th>Records written</th>
- <th>Tasks</th>
- <th>Status</th>
- </tr>
- </thead>
- <tbody ng-repeat="v in job.vertices" ng-class="{ active: job.currentNode && v.id == job.currentNode.id }" ui-sref="{nodeid: v.id}">
- <tr>
- <td class="tab-column">
- <ul ng-if="job.currentNode && v.id == job.currentNode.id" class="nav nav-tabs tabs-vertical">
- <li ng-class="{ active: ('single-job.plan.node.generic' | isState) }"><a ng-click="gotoGeneric(v.id)" title="Basic"><i class="fa fa-tasks"></i></a></li>
- <li ng-class="{ active: ('single-job.plan.node.accumulators' | isState) }"><a ng-click="gotoAccumulators(v.id)" title="Accumulators"><i class="fa fa-calculator"></i></a></li>
- </ul>
- </td>
- <td><span ng-if="v['start-time'] > -1">{{ v['start-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}</span></td>
- <td><span ng-if="v['end-time'] > -1">{{ v['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}</span></td>
- <td><span ng-if="v.duration > -1">{{ v.duration }} ms</span></td>
- <td>{{ v.name | humanizeTaskName }}</td>
- <td>{{ v.metrics['read-bytes'] }}</td>
- <td>{{ v.metrics['read-records'] }}</td>
- <td>{{ v.metrics['write-bytes'] }}</td>
- <td>{{ v.metrics['write-records'] }}</td>
- <td>
- <div class="label-group">
- <bs-label status="{{status}}" ng-repeat="(index, status) in stateList">{{v.tasks[status]}}</bs-label>
- </div>
- </td>
- <td>
- <bs-label status="{{v.status}}">{{v.status}}</bs-label>
- </td>
- </tr>
- <tr ng-if="job.currentNode && v.id == job.currentNode.id">
- <td class="tab-column"></td>
- <td colspan="10">
- <div ng-if="'single-job.plan.node.generic' | isState" ng-include=" 'partials/jobs/job.plan.node.subtasks.html' "></div>
- <div ng-if="'single-job.plan.node.accumulators' | isState" ng-include=" 'partials/jobs/job.plan.node.accumulators.html' "></div>
- </td>
- </tr>
- </tbody>
-</table>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flink/blob/c36b3d7a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node-list.overview.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node-list.overview.html b/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node-list.overview.html
new file mode 100644
index 0000000..01440f8
--- /dev/null
+++ b/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node-list.overview.html
@@ -0,0 +1,60 @@
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-->
+<table class="table table-body-hover table-clickable table-activable">
+ <thead>
+ <tr>
+ <th>Start Time</th>
+ <th>End Time</th>
+ <th>Duration</th>
+ <th>Name</th>
+ <th>Bytes read</th>
+ <th>Records read</th>
+ <th>Bytes written</th>
+ <th>Records written</th>
+ <th>Tasks</th>
+ <th>Status</th>
+ </tr>
+ </thead>
+ <tbody ng-repeat="v in job.vertices" ng-class="{ active: v.id == nodeid }" ng-click="changeNode(v.id)">
+ <tr>
+ <td><span ng-if="v['start-time'] > -1">{{ v['start-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}</span></td>
+ <td><span ng-if="v['end-time'] > -1">{{ v['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}</span></td>
+ <td><span ng-if="v.duration > -1">{{ v.duration }} ms</span></td>
+ <td class="td-long">{{ v.name | humanizeText }}</td>
+ <td>{{ v.metrics['read-bytes'] }}</td>
+ <td>{{ v.metrics['read-records'] }}</td>
+ <td>{{ v.metrics['write-bytes'] }}</td>
+ <td>{{ v.metrics['write-records'] }}</td>
+ <td>
+ <div class="label-group">
+ <bs-label status="{{status}}" ng-repeat="(index, status) in stateList">{{v.tasks[status]}}</bs-label>
+ </div>
+ </td>
+ <td>
+ <bs-label status="{{v.status}}">{{v.status}}</bs-label>
+ </td>
+ </tr>
+ <tr ng-if="nodeid && v.id == nodeid">
+ <td colspan="10">
+ <div ng-include=" 'partials/jobs/job.plan.node.subtasks.html' "></div>
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flink/blob/c36b3d7a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node-tabs.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node-tabs.html b/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node-tabs.html
deleted file mode 100644
index 15a8638..0000000
--- a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node-tabs.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
-<div ng-if="node" class="panel panel-default panel-multi">
- <nav ng-if="job.currentNode" class="navbar navbar-default navbar-secondary-additional">
- <ul class="nav nav-tabs">
- <li ui-sref-active="active"><a ui-sref=".generic({nodeid: nodeid})">Subtasks</a></li>
- <li ui-sref-active="active"><a ui-sref=".properties({nodeid: nodeid})">Properties</a></li>
- </ul>
- </nav>
- <div ng-if="'single-job.plan.node.properties' | isState" class="panel-heading clearfix">
- <div class="panel-title">{{ node.description | humanizeTaskName }}</div>
- </div>
- <div ui-view="node-details" class="panel-body clean"></div>
-</div>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flink/blob/c36b3d7a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.accumulators.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.accumulators.html b/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.accumulators.html
index 16ca93a..6a79a7b 100644
--- a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.accumulators.html
+++ b/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.accumulators.html
@@ -17,4 +17,24 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
-<h3>Accumulators</h3>
\ No newline at end of file
+<div ng-if="vertex">
+ <div ng-if="vertex.accumulators.length == 0">
+ <p><i>No accumulators</i></p>
+ </div>
+ <table ng-if="vertex.accumulators.length > 0" class="table table-hover table-clickable table-activable table-inner">
+ <thead>
+ <tr>
+ <th>Name</th>
+ <th>Type</th>
+ <th>Value</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr ng-repeat="accumulator in vertex.accumulators">
+ <td>{{ accumulator.name }}</td>
+ <td>{{ accumulator.type }}</td>
+ <td>{{ accumulator.value }}</td>
+ </tr>
+ </tbody>
+ </table>
+</div>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flink/blob/c36b3d7a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.html b/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.html
deleted file mode 100644
index f97b077..0000000
--- a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.html
+++ /dev/null
@@ -1,44 +0,0 @@
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-<div ng-if="node" class="panel panel-default panel-multi">
- <div class="panel-heading clearfix">
- <div class="panel-title">{{ node.operator }}</div>
- <div class="panel-info first">ID: {{ node.id }}</div>
- <div ng-if="node.description" class="panel-info">
- <div class="label-group">
- <bs-label status="{{status}}" ng-repeat="(index, status) in stateList">{{node.vertex.tasks[status]}}</bs-label>
- </div>
- </div>
- </div>
- <div class="panel-heading clearfix">
- <div ng-if="node.description" class="panel-info thin last"><span>{{ vertex.name | humanizeTaskName }}</span>
- </div>
- </div>
- <nav class="navbar navbar-default navbar-secondary-additional">
- <ul class="nav nav-tabs">
- <li ui-sref-active="active"><a ui-sref=".subtasks">Subtasks</a></li>
- <li ui-sref-active="active"><a ui-sref=".properties">Properties</a></li>
- <li ui-sref-active="active"><a ui-sref=".accumulators">Accumulators</a></li>
- </ul>
- </nav>
- <div class="panel-body clean">
- <div ui-view="nodeTab"></div>
- </div>
-</div>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flink/blob/c36b3d7a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.properties.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.properties.html b/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.properties.html
deleted file mode 100644
index dce9fe5..0000000
--- a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.properties.html
+++ /dev/null
@@ -1,130 +0,0 @@
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
--->
-<div class="row">
- <div class="col-sm-6 col-md-4">
- <table ng-if="node.optimizer_properties.global_properties" class="table table-properties">
- <thead>
- <tr>
- <th colspan="2">Global Data Properties</th>
- </tr>
- </thead>
- <tbody>
- <tr ng-repeat="property in node.optimizer_properties.global_properties">
- <td>{{property.name}}</td>
- <td table-property="table-property" value="property.value"></td>
- </tr>
- </tbody>
- </table>
- <table ng-if="node.optimizer_properties.local_properties" class="table table-properties">
- <thead>
- <tr>
- <th colspan="2">Local Data Properties</th>
- </tr>
- </thead>
- <tbody>
- <tr ng-repeat="property in node.optimizer_properties.local_properties">
- <td>{{property.name}}</td>
- <td table-property="table-property" value="property.value"></td>
- </tr>
- </tbody>
- </table>
- <div class="visible-xs visible-sm">
- <table class="table table-properties">
- <thead>
- <tr>
- <th colspan="2">Properties</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>Operator</td>
- <td table-property="table-property" value="node.operator_strategy"></td>
- </tr>
- <tr>
- <td>Parallelism</td>
- <td table-property="table-property" value="node.parallelism"></td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- <div class="hidden-sm col-md-4">
- <table class="table table-properties">
- <thead>
- <tr>
- <th colspan="2">Properties</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>Operator</td>
- <td table-property="table-property" value="node.operator_strategy"></td>
- </tr>
- <tr>
- <td>Parallelism</td>
- <td table-property="table-property" value="node.parallelism"></td>
- </tr>
- </tbody>
- </table>
- <table ng-if="node.optimizer_properties.estimates" class="table table-properties">
- <thead>
- <tr>
- <th colspan="2">Size Estimates</th>
- </tr>
- </thead>
- <tbody>
- <tr ng-repeat="property in node.optimizer_properties.estimates">
- <td>{{property.name}}</td>
- <td table-property="table-property" value="property.value"></td>
- </tr>
- </tbody>
- </table>
- </div>
- <div class="col-sm-6 col-md-4">
- <div class="visible-xs visible-sm">
- <table ng-if="node.optimizer_properties.estimates" class="table table-properties">
- <thead>
- <tr>
- <th colspan="2">Size Estimates</th>
- </tr>
- </thead>
- <tbody>
- <tr ng-repeat="property in node.optimizer_properties.estimates">
- <td>{{property.name}}</td>
- <td table-property="table-property" value="property.value"></td>
- </tr>
- </tbody>
- </table>
- </div>
- <table ng-if="node.optimizer_properties.costs" class="table table-properties">
- <thead>
- <tr>
- <th colspan="2">Cost Estimates</th>
- </tr>
- </thead>
- <tbody>
- <tr ng-repeat="property in node.optimizer_properties.costs">
- <td>{{property.name}}</td>
- <td table-property="table-property" value="property.value"></td>
- </tr>
- </tbody>
- </table>
- </div>
-</div>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flink/blob/c36b3d7a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.subtasks.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.subtasks.html b/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.subtasks.html
index 594e080..451c3a5 100644
--- a/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.subtasks.html
+++ b/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.subtasks.html
@@ -18,7 +18,7 @@ limitations under the License.
-->
-<table class="table table-hover table-clickable table-activable table-inner">
+<table ng-if="vertex" class="table table-hover table-clickable table-activable table-inner">
<thead>
<tr>
<th>Start Time</th>
http://git-wip-us.apache.org/repos/asf/flink/blob/c36b3d7a/flink-runtime-web/web-dashboard/web/partials/jobs/job.properties.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/job.properties.html b/flink-runtime-web/web-dashboard/web/partials/jobs/job.properties.html
new file mode 100644
index 0000000..907afd3
--- /dev/null
+++ b/flink-runtime-web/web-dashboard/web/partials/jobs/job.properties.html
@@ -0,0 +1,140 @@
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-->
+<div class="canvas-wrapper">
+ <div job-plan="job-plan" plan="plan" jobid="{{jobid}}" set-node="changeNode(nodeid)" class="main-canvas"></div>
+</div>
+<div ng-if="node" class="panel panel-default">
+ <div class="panel-heading clearfix">
+ <div class="panel-title">{{ node.description | humanizeText }}</div>
+ </div>
+ <div class="panel-body clean">
+ <div class="row">
+ <div class="col-sm-6 col-md-4">
+ <table ng-if="node.optimizer_properties.global_properties" class="table table-properties">
+ <thead>
+ <tr>
+ <th colspan="2">Global Data Properties</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr ng-repeat="property in node.optimizer_properties.global_properties">
+ <td>{{property.name}}</td>
+ <td table-property="table-property" value="property.value"></td>
+ </tr>
+ </tbody>
+ </table>
+ <table ng-if="node.optimizer_properties.local_properties" class="table table-properties">
+ <thead>
+ <tr>
+ <th colspan="2">Local Data Properties</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr ng-repeat="property in node.optimizer_properties.local_properties">
+ <td>{{property.name}}</td>
+ <td table-property="table-property" value="property.value"></td>
+ </tr>
+ </tbody>
+ </table>
+ <div class="visible-xs visible-sm">
+ <table class="table table-properties">
+ <thead>
+ <tr>
+ <th colspan="2">Properties</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>Operator</td>
+ <td table-property="table-property" value="node.operator_strategy"></td>
+ </tr>
+ <tr>
+ <td>Parallelism</td>
+ <td table-property="table-property" value="node.parallelism"></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ <div class="hidden-sm col-md-4">
+ <table class="table table-properties">
+ <thead>
+ <tr>
+ <th colspan="2">Properties</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>Operator</td>
+ <td table-property="table-property" value="node.operator_strategy"></td>
+ </tr>
+ <tr>
+ <td>Parallelism</td>
+ <td table-property="table-property" value="node.parallelism"></td>
+ </tr>
+ </tbody>
+ </table>
+ <table ng-if="node.optimizer_properties.estimates" class="table table-properties">
+ <thead>
+ <tr>
+ <th colspan="2">Size Estimates</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr ng-repeat="property in node.optimizer_properties.estimates">
+ <td>{{property.name}}</td>
+ <td table-property="table-property" value="property.value"></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <div class="col-sm-6 col-md-4">
+ <div class="visible-xs visible-sm">
+ <table ng-if="node.optimizer_properties.estimates" class="table table-properties">
+ <thead>
+ <tr>
+ <th colspan="2">Size Estimates</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr ng-repeat="property in node.optimizer_properties.estimates">
+ <td>{{property.name}}</td>
+ <td table-property="table-property" value="property.value"></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <table ng-if="node.optimizer_properties.costs" class="table table-properties">
+ <thead>
+ <tr>
+ <th colspan="2">Cost Estimates</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr ng-repeat="property in node.optimizer_properties.costs">
+ <td>{{property.name}}</td>
+ <td table-property="table-property" value="property.value"></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </div>
+</div>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flink/blob/c36b3d7a/flink-runtime-web/web-dashboard/web/partials/jobs/job.timeline.vertex.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/job.timeline.vertex.html b/flink-runtime-web/web-dashboard/web/partials/jobs/job.timeline.vertex.html
index 36f38ab..1a4bd06 100644
--- a/flink-runtime-web/web-dashboard/web/partials/jobs/job.timeline.vertex.html
+++ b/flink-runtime-web/web-dashboard/web/partials/jobs/job.timeline.vertex.html
@@ -19,7 +19,7 @@ limitations under the License.
-->
<div ng-if="vertex" class="panel panel-default panel-multi">
<div class="panel-heading clearfix">
- <div class="panel-title">{{ vertex.groupvertex.groupvertexname | humanizeTaskName }}</div>
+ <div class="panel-title">{{ vertex.groupvertex.groupvertexname | humanizeText }}</div>
</div>
<div class="panel-body">
<div class="canvas-wrapper">
http://git-wip-us.apache.org/repos/asf/flink/blob/c36b3d7a/flink-runtime-web/web-dashboard/web/partials/jobs/running-jobs.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/jobs/running-jobs.html b/flink-runtime-web/web-dashboard/web/partials/jobs/running-jobs.html
index edd524f..e175d07 100644
--- a/flink-runtime-web/web-dashboard/web/partials/jobs/running-jobs.html
+++ b/flink-runtime-web/web-dashboard/web/partials/jobs/running-jobs.html
@@ -35,7 +35,7 @@ limitations under the License.
</tr>
</thead>
<tbody>
- <tr ng-repeat="job in jobs" ui-sref="single-job.plan({ jobid: job.jid })">
+ <tr ng-repeat="job in jobs" ui-sref="single-job.plan.overview({ jobid: job.jid })">
<td>{{job['start-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}</td>
<td>{{job['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}</td>
<td>{{job.duration}} ms</td>
http://git-wip-us.apache.org/repos/asf/flink/blob/c36b3d7a/flink-runtime-web/web-dashboard/web/partials/overview.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/partials/overview.html b/flink-runtime-web/web-dashboard/web/partials/overview.html
index c88b779..ec3c580 100644
--- a/flink-runtime-web/web-dashboard/web/partials/overview.html
+++ b/flink-runtime-web/web-dashboard/web/partials/overview.html
@@ -92,7 +92,7 @@ limitations under the License.
</tr>
</thead>
<tbody>
- <tr ng-repeat="job in runningJobs" ui-sref="single-job.plan({ jobid: job.jid })">
+ <tr ng-repeat="job in runningJobs" ui-sref="single-job.plan.overview({ jobid: job.jid })">
<td>{{job['start-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}</td>
<td>{{job['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}</td>
<td>{{job.duration}} ms</td>
@@ -127,7 +127,7 @@ limitations under the License.
</tr>
</thead>
<tbody>
- <tr ng-repeat="job in finishedJobs" ui-sref="single-job.plan({ jobid: job.jid })">
+ <tr ng-repeat="job in finishedJobs" ui-sref="single-job.plan.overview({ jobid: job.jid })">
<td>{{job['start-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}</td>
<td>{{job['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}</td>
<td>{{job.duration}} ms</td>