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:17 UTC
[45/51] [abbrv] flink git commit: [FLINK-2357] [web dashboard]
Timeline for running tasks
http://git-wip-us.apache.org/repos/asf/flink/blob/6d873e60/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
new file mode 100644
index 0000000..f2e5e7e
--- /dev/null
+++ b/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.accumulators.html
@@ -0,0 +1,20 @@
+
+<!--
+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.
+
+-->
+<h1>Accumulators</h1>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flink/blob/6d873e60/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
index dcc19f7..f97b077 100644
--- 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
@@ -28,135 +28,17 @@ limitations under the License.
</div>
</div>
<div class="panel-heading clearfix">
- <div ng-if="node.description" class="panel-info first last"><span>{{ node.description | humanizeTaskName }}</span></div>
- </div>
- <div class="panel-body">
- <table class="table table-hover table-clickable">
- <thead>
- <tr>
- <th>Name</th>
- <th>Status</th>
- </tr>
- </thead>
- <tbody>
- <tr ng-repeat="vertex in node.vertex.groupvertex.groupmembers">
- <td>{{ vertex.name | humanizeTaskName }}</td>
- <td>
- <bs-label status="{{vertex.vertexstatus}}">{{vertex.vertexstatus}}</bs-label>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
-</div>
-<div ng-if="node" 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 ng-if="node.description" class="panel-info thin last"><span>{{ vertex.name | humanizeTaskName }}</span>
</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>
+ <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/6d873e60/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
new file mode 100644
index 0000000..7592c65
--- /dev/null
+++ b/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.properties.html
@@ -0,0 +1,131 @@
+
+<!--
+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="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/6d873e60/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
new file mode 100644
index 0000000..34fedd0
--- /dev/null
+++ b/flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.subtasks.html
@@ -0,0 +1,53 @@
+
+<!--
+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-hover table-clickable">
+ <thead>
+ <tr>
+ <th>Start Time</th>
+ <th>End Time</th>
+ <th>Duration</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>
+ <tr>
+ <td>{{ vertex['start-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}</td>
+ <td>{{ vertex['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}</td>
+ <td>{{ vertex.duration }} ms</td>
+ <td>{{ vertex.metrics['read-bytes'] }}</td>
+ <td>{{ vertex.metrics['read-records'] }}</td>
+ <td>{{ vertex.metrics['write-bytes'] }}</td>
+ <td>{{ vertex.metrics['write-records'] }}</td>
+ <td>
+ <div class="label-group">
+ <bs-label status="{{status}}" ng-repeat="(index, status) in stateList">{{vertex.tasks[status]}}</bs-label>
+ </div>
+ </td>
+ <td>
+ <bs-label status="{{vertex.status}}">{{vertex.status}}</bs-label>
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flink/blob/6d873e60/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 11ccaa3..edd524f 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
@@ -26,6 +26,8 @@ limitations under the License.
<thead>
<tr>
<th>Start Time</th>
+ <th>End Time</th>
+ <th>Duration</th>
<th>Job Name</th>
<th>Job ID</th>
<th>Tasks</th>
@@ -35,6 +37,8 @@ limitations under the License.
<tbody>
<tr ng-repeat="job in jobs" ui-sref="single-job.plan({ 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>
<td>{{job.name}}</td>
<td>{{job.jid}}</td>
<td class="label-group">
http://git-wip-us.apache.org/repos/asf/flink/blob/6d873e60/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 31812b7..c88b779 100644
--- a/flink-runtime-web/web-dashboard/web/partials/overview.html
+++ b/flink-runtime-web/web-dashboard/web/partials/overview.html
@@ -83,6 +83,8 @@ limitations under the License.
<thead>
<tr>
<th>Start Time</th>
+ <th>End Time</th>
+ <th>Duration</th>
<th>Job Name</th>
<th>Job ID</th>
<th>Tasks</th>
@@ -92,6 +94,8 @@ limitations under the License.
<tbody>
<tr ng-repeat="job in runningJobs" ui-sref="single-job.plan({ 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>
<td>{{job.name}}</td>
<td>{{job.jid}}</td>
<td class="label-group">