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">