You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by tr...@apache.org on 2015/10/20 09:59:30 UTC

[39/47] flink git commit: [FLINK-2354] [runtime] Replace old StateHandleProvider by StateStorageHelper in ZooKeeperStateHandleStore

http://git-wip-us.apache.org/repos/asf/flink/blob/a6890b28/flink-runtime-web/src/main/resources/web/partials/jobmanager/config.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/src/main/resources/web/partials/jobmanager/config.html b/flink-runtime-web/src/main/resources/web/partials/jobmanager/config.html
deleted file mode 100644
index da6b75b..0000000
--- a/flink-runtime-web/src/main/resources/web/partials/jobmanager/config.html
+++ /dev/null
@@ -1,33 +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-properties">
-  <thead>
-    <tr>
-      <th>Key</th>
-      <th>Value</th>
-    </tr>
-  </thead>
-  <tbody>
-    <tr ng-repeat="entry in jobmanager.config | orderBy: 'key'">
-      <td>{{entry.key}}</td>
-      <td>{{entry.value}}</td>
-    </tr>
-  </tbody>
-</table>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/a6890b28/flink-runtime-web/src/main/resources/web/partials/jobmanager/index.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/src/main/resources/web/partials/jobmanager/index.html b/flink-runtime-web/src/main/resources/web/partials/jobmanager/index.html
deleted file mode 100644
index 02c2f47..0000000
--- a/flink-runtime-web/src/main/resources/web/partials/jobmanager/index.html
+++ /dev/null
@@ -1,33 +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.
-
--->
-<nav class="navbar navbar-default navbar-fixed-top navbar-main">
-  <div id="fold-button" ng-click="showSidebar()" class="btn btn-default navbar-btn pull-left"><i class="fa fa-navicon"></i></div>
-  <div class="navbar-title">Job Manager</div>
-</nav>
-<nav class="navbar navbar-default navbar-fixed-top navbar-main-additional">
-  <ul class="nav nav-tabs">
-    <li ui-sref-active="active"><a ui-sref=".config">Configuration</a></li>
-    <li ui-sref-active="active"><a ui-sref=".log">Logs</a></li>
-    <li ui-sref-active="active"><a ui-sref=".stdout">Stdout</a></li>
-  </ul>
-</nav>
-<div id="content-inner" class="has-navbar-main-additional">
-  <div ui-view="details"></div>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/a6890b28/flink-runtime-web/src/main/resources/web/partials/jobmanager/stdout.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/src/main/resources/web/partials/jobmanager/stdout.html b/flink-runtime-web/src/main/resources/web/partials/jobmanager/stdout.html
deleted file mode 100644
index df6a817..0000000
--- a/flink-runtime-web/src/main/resources/web/partials/jobmanager/stdout.html
+++ /dev/null
@@ -1,40 +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-properties">
-  <thead>
-    <tr>
-      <th colspan="2">
-        <div class="row">
-          <div class="col-xs-10">Job Manager Output</div>
-          <div class="col-xs-1 text-right"><a ng-click="reloadData()" class="show-pointer"><i class="fa fa-refresh"></i></a></div>
-          <div class="col-xs-1 text-left"><a href="jobmanager/stdout"><i class="fa fa-download"></i></a></div>
-        </div>
-      </th>
-    </tr>
-  </thead>
-  <tbody>
-    <tr>
-      <td colspan="2">
-        <pre>{{jobmanager.stdout}}</pre>
-      </td>
-    </tr>
-  </tbody>
-</table>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/a6890b28/flink-runtime-web/src/main/resources/web/partials/jobs/completed-jobs.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/src/main/resources/web/partials/jobs/completed-jobs.html b/flink-runtime-web/src/main/resources/web/partials/jobs/completed-jobs.html
deleted file mode 100644
index b76278d..0000000
--- a/flink-runtime-web/src/main/resources/web/partials/jobs/completed-jobs.html
+++ /dev/null
@@ -1,53 +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.
-
--->
-<nav class="navbar navbar-default navbar-fixed-top navbar-main">
-  <div id="fold-button" ng-click="showSidebar()" class="btn btn-default navbar-btn pull-left"><i class="fa fa-navicon"></i></div>
-  <div class="navbar-title">Completed Jobs</div>
-</nav>
-<div id="content-inner">
-  <table class="table table-hover table-clickable">
-    <thead>
-      <tr>
-        <th>Start Time</th>
-        <th>End Time</th>
-        <th>Duration</th>
-        <th>Job Name</th>
-        <th>Job ID</th>
-        <th>Tasks</th>
-        <th>Status</th>
-      </tr>
-    </thead>
-    <tbody>
-      <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>
-        <td>{{job.name}}</td>
-        <td>{{job.jid}}</td>
-        <td class="label-group">
-          <bs-label status="{{status}}" ng-repeat="(status, value) in job.tasks">{{value}}</bs-label>
-        </td>
-        <td> 
-          <bs-label status="{{job.state}}">{{job.state}}</bs-label>
-        </td>
-      </tr>
-    </tbody>
-  </table>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/a6890b28/flink-runtime-web/src/main/resources/web/partials/jobs/job.config.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/src/main/resources/web/partials/jobs/job.config.html b/flink-runtime-web/src/main/resources/web/partials/jobs/job.config.html
deleted file mode 100644
index a7a5d9d..0000000
--- a/flink-runtime-web/src/main/resources/web/partials/jobs/job.config.html
+++ /dev/null
@@ -1,57 +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 ng-if="job['execution-config']" class="table table-properties">
-  <thead>
-    <tr>
-      <th colspan="2">Execution configuration</th>
-    </tr>
-  </thead>
-  <tbody>
-    <tr>
-      <td>Execution mode</td>
-      <td>{{ job['execution-config']['execution-mode'] }}</td>
-    </tr>
-    <tr>
-      <td>Max. number of execution retries</td>
-      <td>{{ job['execution-config']['max-execution-retries'] === -1 ? 'deactivated' : job['execution-config']['max-execution-retries'] }}</td>
-    </tr>
-    <tr>
-      <td>Job parallelism</td>
-      <td>{{ job['execution-config']['job-parallelism'] === -1 ? 'auto' : job['execution-config']['job-parallelism'] }}</td>
-    </tr>
-    <tr>
-      <td>Object reuse mode</td>
-      <td>{{ job['execution-config']['object-reuse-mode'] }}</td>
-    </tr>
-  </tbody>
-</table>
-<table ng-if="job['execution-config']['user-config']" class="table table-properties">
-  <thead>
-    <tr>
-      <th colspan="2">User configuration</th>
-    </tr>
-  </thead>
-  <tbody>
-    <tr ng-repeat="property in job['execution-config']['user-config']">
-      <td>{{property.name}}</td>
-      <td table-property="table-property" value="property.value"></td>
-    </tr>
-  </tbody>
-</table>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/a6890b28/flink-runtime-web/src/main/resources/web/partials/jobs/job.exceptions.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/src/main/resources/web/partials/jobs/job.exceptions.html b/flink-runtime-web/src/main/resources/web/partials/jobs/job.exceptions.html
deleted file mode 100644
index a5f6676..0000000
--- a/flink-runtime-web/src/main/resources/web/partials/jobs/job.exceptions.html
+++ /dev/null
@@ -1,38 +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="exceptions['root-exception']" class="panel panel-default panel-multi">
-  <div class="panel-heading clearfix">
-    <div class="panel-title">Root exception</div>
-  </div>
-  <div class="panel-body">
-    <pre class="exception">{{ exceptions['root-exception'] }}</pre>
-  </div>
-</div>
-<div ng-repeat="exception in exceptions['all-exceptions']" class="panel panel-default panel-multi">
-  <div class="panel-heading clearfix">
-    <div class="panel-title">{{ exception.task }}</div>
-  </div>
-  <div class="panel-heading clearfix">
-    <div class="panel-info thin last"><span>{{ exception.location }}</span></div>
-  </div>
-  <div class="panel-body">
-    <pre class="exception">{{ exception.exception }}</pre>
-  </div>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/a6890b28/flink-runtime-web/src/main/resources/web/partials/jobs/job.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/src/main/resources/web/partials/jobs/job.html b/flink-runtime-web/src/main/resources/web/partials/jobs/job.html
deleted file mode 100644
index 9d3e171..0000000
--- a/flink-runtime-web/src/main/resources/web/partials/jobs/job.html
+++ /dev/null
@@ -1,48 +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.
-
--->
-<nav ng-if="job" class="navbar navbar-default navbar-fixed-top navbar-main">
-  <div id="fold-button" ng-click="showSidebar()" class="btn btn-default navbar-btn pull-left"><i class="fa fa-navicon"></i></div>
-  <div class="navbar-title">
-    <indicator-primary status="{{job.state}}"></indicator-primary>{{ job.name }}
-  </div>
-  <div class="navbar-info first last hidden-xs hidden-sm">{{ job.jid }}</div>
-  <div class="navbar-info first last">
-    <div class="label-group">
-      <bs-label status="{{status}}" ng-repeat="(status, value) in job['status-counts']">{{value}}</bs-label>
-    </div>
-  </div>
-  <div class="navbar-info first last hidden-xs hidden-sm">{{ job['start-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}<span ng-if="job['end-time'] &gt; -1">
-      - 
-      {{ job['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}</span></div>
-  <div ng-if="job.duration &gt; -1" class="navbar-info last first">{{job.duration}} ms</div>
-</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.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>
-<div id="content-inner" class="has-navbar-main-additional">
-  <div ui-view="details"></div>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/a6890b28/flink-runtime-web/src/main/resources/web/partials/jobs/job.plan.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/src/main/resources/web/partials/jobs/job.plan.html b/flink-runtime-web/src/main/resources/web/partials/jobs/job.plan.html
deleted file mode 100644
index f2c4143..0000000
--- a/flink-runtime-web/src/main/resources/web/partials/jobs/job.plan.html
+++ /dev/null
@@ -1,31 +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="canvas-wrapper">
-  <div job-plan="job-plan" plan="plan" jobid="{{jobid}}" set-node="changeNode(nodeid)" class="main-canvas"></div>
-</div>
-<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/a6890b28/flink-runtime-web/src/main/resources/web/partials/jobs/job.plan.node-list.accumulators.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/src/main/resources/web/partials/jobs/job.plan.node-list.accumulators.html b/flink-runtime-web/src/main/resources/web/partials/jobs/job.plan.node-list.accumulators.html
deleted file mode 100644
index 8de3921..0000000
--- a/flink-runtime-web/src/main/resources/web/partials/jobs/job.plan.node-list.accumulators.html
+++ /dev/null
@@ -1,40 +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>Name</th>
-      <th>Status</th>
-    </tr>
-  </thead>
-  <tbody ng-repeat="v in job.vertices" ng-class="{ active: v.id == nodeid }" ng-click="v.id == nodeid || changeNode(v.id)">
-    <tr ng-if="v.type == 'regular'">
-      <td>{{ v.name | humanizeText }}</td>
-      <td> 
-        <bs-label status="{{v.status}}">{{v.status}}</bs-label>
-      </td>
-    </tr>
-    <tr ng-if="nodeid &amp;&amp; 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/a6890b28/flink-runtime-web/src/main/resources/web/partials/jobs/job.plan.node-list.overview.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/src/main/resources/web/partials/jobs/job.plan.node-list.overview.html b/flink-runtime-web/src/main/resources/web/partials/jobs/job.plan.node-list.overview.html
deleted file mode 100644
index 1706d3e..0000000
--- a/flink-runtime-web/src/main/resources/web/partials/jobs/job.plan.node-list.overview.html
+++ /dev/null
@@ -1,60 +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>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 ng-if="v.type == 'regular'">
-      <td><span ng-if="v['start-time'] &gt; -1">{{ v['start-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}</span></td>
-      <td><span ng-if="v['end-time'] &gt; -1">{{ v['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}</span></td>
-      <td><span ng-if="v.duration &gt; -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 &amp;&amp; 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/a6890b28/flink-runtime-web/src/main/resources/web/partials/jobs/job.plan.node.accumulators.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/src/main/resources/web/partials/jobs/job.plan.node.accumulators.html b/flink-runtime-web/src/main/resources/web/partials/jobs/job.plan.node.accumulators.html
deleted file mode 100644
index e7dcf2c..0000000
--- a/flink-runtime-web/src/main/resources/web/partials/jobs/job.plan.node.accumulators.html
+++ /dev/null
@@ -1,68 +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="accumulators.length == 0">
-  <p><i>No accumulators</i></p>
-</div>
-<div ng-if="accumulators &amp;&amp; accumulators.length &gt; 0">
-  <table 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 accumulators">
-        <td width="30%">{{ accumulator.name }}</td>
-        <td width="30%">{{ accumulator.type }}</td>
-        <td width="30%">{{ accumulator.value }}</td>
-      </tr>
-    </tbody>
-  </table>
-  <div ng-if="!nodeUnfolded"><a ng-click="toggleFold()" class="btn btn-default">
-      Show subtasks
-       <i class="fa fa-chevron-down"></i></a><a ng-click="deactivateNode(); $event.stopPropagation()" title="Fold" class="btn btn-default pull-right"><i class="fa fa-chevron-up"></i></a></div>
-  <div ng-if="nodeUnfolded &amp;&amp; subtaskAccumulators &amp;&amp; subtaskAccumulators.length &gt; 0"><a ng-click="toggleFold()" class="btn btn-default">
-      Hide subtasks
-       <i class="fa fa-chevron-up"></i></a>
-    <table class="table table-hover table-clickable table-activable table-inner">
-      <thead>
-        <tr>
-          <th>Name</th>
-          <th>Type</th>
-          <th>Value</th>
-        </tr>
-      </thead>
-      <tbody ng-if="subtask['user-accumulators'] &amp;&amp; subtask['user-accumulators'].length &gt; 0" ng-repeat="subtask in subtaskAccumulators">
-        <tr>
-          <td colwidth="3">
-            <div class="small-label">({{ subtask.subtask }}) {{ subtask.host }}, attempt: {{ subtask.attempt + 1 }}</div>
-          </td>
-        </tr>
-        <tr ng-repeat="accumulator in subtask['user-accumulators']">
-          <td width="30%">{{ accumulator.name }}</td>
-          <td width="30%">{{ accumulator.type }}</td>
-          <td width="30%">{{ accumulator.value }}</td>
-        </tr>
-      </tbody>
-    </table>
-  </div>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/a6890b28/flink-runtime-web/src/main/resources/web/partials/jobs/job.plan.node.subtasks.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/src/main/resources/web/partials/jobs/job.plan.node.subtasks.html b/flink-runtime-web/src/main/resources/web/partials/jobs/job.plan.node.subtasks.html
deleted file mode 100644
index 40b16bc..0000000
--- a/flink-runtime-web/src/main/resources/web/partials/jobs/job.plan.node.subtasks.html
+++ /dev/null
@@ -1,52 +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 ng-if="subtasks" class="table table-hover table-clickable table-activable table-inner">
-  <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>Attempt</th>
-      <th>Host</th>
-      <th>Status</th>
-    </tr>
-  </thead>
-  <tbody>
-    <tr ng-repeat="subtask in subtasks">
-      <td><span ng-if="subtask['start-time'] &gt; -1">{{ subtask['start-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}</span></td>
-      <td><span ng-if="subtask['end-time'] &gt; -1">{{ subtask['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}</span></td>
-      <td><span ng-if="subtask.duration &gt; -1">{{ subtask.duration }} ms</span></td>
-      <td><span ng-if="subtask.metrics['read-bytes'] &gt; -1">{{ subtask.metrics['read-bytes'] }}</span></td>
-      <td><span ng-if="subtask.metrics['read-records'] &gt; -1">{{ subtask.metrics['read-records'] }}</span></td>
-      <td><span ng-if="subtask.metrics['write-bytes'] &gt; -1">{{ subtask.metrics['write-bytes'] }}</span></td>
-      <td><span ng-if="subtask.metrics['write-records'] &gt; -1">{{ subtask.metrics['write-records'] }}</span></td>
-      <td>{{ subtask.attempt + 1 }}</td>
-      <td>{{ subtask.host }}</td>
-      <td> 
-        <bs-label status="{{subtask.status}}">{{subtask.status}}</bs-label>
-      </td>
-    </tr>
-  </tbody>
-</table>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/a6890b28/flink-runtime-web/src/main/resources/web/partials/jobs/job.properties.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/src/main/resources/web/partials/jobs/job.properties.html b/flink-runtime-web/src/main/resources/web/partials/jobs/job.properties.html
deleted file mode 100644
index 907afd3..0000000
--- a/flink-runtime-web/src/main/resources/web/partials/jobs/job.properties.html
+++ /dev/null
@@ -1,140 +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="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/a6890b28/flink-runtime-web/src/main/resources/web/partials/jobs/job.statistics.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/src/main/resources/web/partials/jobs/job.statistics.html b/flink-runtime-web/src/main/resources/web/partials/jobs/job.statistics.html
deleted file mode 100644
index 951cc1c..0000000
--- a/flink-runtime-web/src/main/resources/web/partials/jobs/job.statistics.html
+++ /dev/null
@@ -1,40 +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-properties">
-  <thead>
-    <tr>
-      <th colspan="2">Some statistics</th>
-    </tr>
-  </thead>
-  <tbody>
-    <tr>
-      <td>Operator</td>
-      <td>1</td>
-    </tr>
-    <tr>
-      <td>Parallelism</td>
-      <td>2</td>
-    </tr>
-    <tr>
-      <td>Subtasks-per-instance</td>
-      <td>3</td>
-    </tr>
-  </tbody>
-</table>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/a6890b28/flink-runtime-web/src/main/resources/web/partials/jobs/job.timeline.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/src/main/resources/web/partials/jobs/job.timeline.html b/flink-runtime-web/src/main/resources/web/partials/jobs/job.timeline.html
deleted file mode 100644
index 2f22576..0000000
--- a/flink-runtime-web/src/main/resources/web/partials/jobs/job.timeline.html
+++ /dev/null
@@ -1,23 +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="canvas-wrapper">
-  <div timeline="timeline" vertices="vertices" jobid="jobid" class="timeline-canvas"></div>
-</div>
-<div ui-view="vertex"></div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/a6890b28/flink-runtime-web/src/main/resources/web/partials/jobs/job.timeline.vertex.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/src/main/resources/web/partials/jobs/job.timeline.vertex.html b/flink-runtime-web/src/main/resources/web/partials/jobs/job.timeline.vertex.html
deleted file mode 100644
index 1a4bd06..0000000
--- a/flink-runtime-web/src/main/resources/web/partials/jobs/job.timeline.vertex.html
+++ /dev/null
@@ -1,30 +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="vertex" class="panel panel-default panel-multi">
-  <div class="panel-heading clearfix">
-    <div class="panel-title">{{ vertex.groupvertex.groupvertexname | humanizeText }}</div>
-  </div>
-  <div class="panel-body">
-    <div class="canvas-wrapper">
-      <div vertex="vertex" data="vertex" class="timeline-canvas"></div>
-    </div>
-    <div id="timeline1"></div>
-  </div>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/a6890b28/flink-runtime-web/src/main/resources/web/partials/jobs/running-jobs.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/src/main/resources/web/partials/jobs/running-jobs.html b/flink-runtime-web/src/main/resources/web/partials/jobs/running-jobs.html
deleted file mode 100644
index e175d07..0000000
--- a/flink-runtime-web/src/main/resources/web/partials/jobs/running-jobs.html
+++ /dev/null
@@ -1,53 +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.
-
--->
-<nav class="navbar navbar-default navbar-fixed-top navbar-main">
-  <div id="fold-button" ng-click="showSidebar()" class="btn btn-default navbar-btn pull-left"><i class="fa fa-navicon"></i></div>
-  <div class="navbar-title">Running Jobs</div>
-</nav>
-<div id="content-inner">
-  <table class="table table-hover table-clickable">
-    <thead>
-      <tr>
-        <th>Start Time</th>
-        <th>End Time</th>
-        <th>Duration</th>
-        <th>Job Name</th>
-        <th>Job ID</th>
-        <th>Tasks</th>
-        <th>Status</th>
-      </tr>
-    </thead>
-    <tbody>
-      <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>
-        <td>{{job.name}}</td>
-        <td>{{job.jid}}</td>
-        <td class="label-group">
-          <bs-label status="{{status}}" ng-repeat="(status, value) in job.tasks">{{value}}</bs-label>
-        </td>
-        <td> 
-          <bs-label status="{{job.state}}">{{job.state}}</bs-label>
-        </td>
-      </tr>
-    </tbody>
-  </table>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/a6890b28/flink-runtime-web/src/main/resources/web/partials/overview.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/src/main/resources/web/partials/overview.html b/flink-runtime-web/src/main/resources/web/partials/overview.html
deleted file mode 100644
index ec3c580..0000000
--- a/flink-runtime-web/src/main/resources/web/partials/overview.html
+++ /dev/null
@@ -1,147 +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.
-
--->
-<nav class="navbar navbar-default navbar-fixed-top navbar-main">
-  <div id="fold-button" ng-click="showSidebar()" class="btn btn-default navbar-btn pull-left"><i class="fa fa-navicon"></i></div>
-  <div class="navbar-title">Overview</div>
-</nav>
-<div id="content-inner">
-  <div class="row">
-    <div class="col-md-6">
-      <div class="panel panel-default panel-dashboard">
-        <div class="panel-heading">
-          <div class="row">
-            <div class="col-xs-3"><i class="fa fa-tasks fa-3x"></i></div>
-            <div class="col-xs-9 text-right">
-              <div class="huge">{{overview.taskmanagers}}</div>
-              <div>Task Managers</div>
-            </div>
-          </div>
-        </div>
-        <div class="panel-heading">
-          <div class="row">
-            <div class="col-xs-3"><i class="fa fa-folder fa-3x"></i></div>
-            <div class="col-xs-9 text-right">
-              <div class="huge">{{overview["slots-total"]}}</div>
-              <div>Task Slots</div>
-            </div>
-          </div>
-        </div>
-        <div class="panel-heading">
-          <div class="row">
-            <div class="col-xs-3"><i class="fa fa-folder-o fa-3x"></i></div>
-            <div class="col-xs-9 text-right">
-              <div class="huge">{{overview["slots-available"]}}</div>
-              <div>Available Task Slots</div>
-            </div>
-          </div>
-        </div>
-      </div>
-    </div>
-    <div class="col-md-6">
-      <div class="panel panel-default panel-lg">
-        <div class="panel-heading">Total Jobs</div>
-        <div class="list-group">
-          <div class="list-group-item">
-            <div class="badge badge-primary">{{overview["jobs-running"]}}</div>Running
-          </div>
-          <div class="list-group-item">
-            <div class="badge badge-success">{{overview["jobs-finished"]}}</div>Finished
-          </div>
-          <div class="list-group-item">
-            <div class="badge badge-info">{{overview["jobs-cancelled"]}}</div>Canceled
-          </div>
-          <div class="list-group-item">
-            <div class="badge badge-danger">{{overview["jobs-failed"]}}</div>Failed
-          </div>
-        </div>
-      </div>
-    </div>
-  </div>
-  <div class="panel panel-default">
-    <div class="panel-heading">
-      <h3 class="panel-title">Running Jobs</h3>
-    </div>
-    <div class="panel-body">
-      <table class="table table-hover table-clickable">
-        <thead>
-          <tr>
-            <th>Start Time</th>
-            <th>End Time</th>
-            <th>Duration</th>
-            <th>Job Name</th>
-            <th>Job ID</th>
-            <th>Tasks</th>
-            <th>Status</th>
-          </tr>
-        </thead>
-        <tbody>
-          <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>
-            <td>{{job.name}}</td>
-            <td>{{job.jid}}</td>
-            <td class="label-group">
-              <bs-label status="{{status}}" ng-repeat="(status, value) in job.tasks">{{value}}</bs-label>
-            </td>
-            <td> 
-              <bs-label status="{{job.state}}">{{job.state}}</bs-label>
-            </td>
-          </tr>
-        </tbody>
-      </table>
-    </div>
-  </div>
-  <div class="panel panel-default">
-    <div class="panel-heading">
-      <h3 class="panel-title">Completed Jobs</h3>
-    </div>
-    <div class="panel-body">
-      <table class="table table-hover table-clickable">
-        <thead>
-          <tr>
-            <th>Start Time</th>
-            <th>End Time</th>
-            <th>Duration</th>
-            <th>Job Name</th>
-            <th>Job ID</th>
-            <th>Tasks</th>
-            <th>Status</th>
-          </tr>
-        </thead>
-        <tbody>
-          <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>
-            <td>{{job.name}}</td>
-            <td>{{job.jid}}</td>
-            <td class="label-group">
-              <bs-label status="{{status}}" ng-repeat="(status, value) in job.tasks">{{value}}</bs-label>
-            </td>
-            <td> 
-              <bs-label status="{{job.state}}">{{job.state}}</bs-label>
-            </td>
-          </tr>
-        </tbody>
-      </table>
-    </div>
-  </div>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/a6890b28/flink-runtime-web/src/test/java/org/apache/flink/runtime/webmonitor/WebRuntimeMonitorITCase.java
----------------------------------------------------------------------
diff --git a/flink-runtime-web/src/test/java/org/apache/flink/runtime/webmonitor/WebRuntimeMonitorITCase.java b/flink-runtime-web/src/test/java/org/apache/flink/runtime/webmonitor/WebRuntimeMonitorITCase.java
index 5167d13..68b00dc 100644
--- a/flink-runtime-web/src/test/java/org/apache/flink/runtime/webmonitor/WebRuntimeMonitorITCase.java
+++ b/flink-runtime-web/src/test/java/org/apache/flink/runtime/webmonitor/WebRuntimeMonitorITCase.java
@@ -46,6 +46,7 @@ import scala.concurrent.duration.Deadline;
 import scala.concurrent.duration.FiniteDuration;
 
 import java.io.File;
+import java.nio.file.Files;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Scanner;
@@ -62,7 +63,7 @@ public class WebRuntimeMonitorITCase extends TestLogger {
 
 	private final static FiniteDuration TestTimeout = new FiniteDuration(2, TimeUnit.MINUTES);
 
-	private final String MAIN_RESOURCES_PATH = getClass().getResource("/../classes/web").getPath();
+	private final String MAIN_RESOURCES_PATH = getClass().getResource("/web").getPath();
 
 	/**
 	 * Tests operation of the monitor in standalone operation.
@@ -82,10 +83,13 @@ public class WebRuntimeMonitorITCase extends TestLogger {
 			ActorSystem jmActorSystem = flink.jobManagerActorSystems().get().head();
 			ActorRef jmActor = flink.jobManagerActors().get().head();
 
+			File logDir = temporaryFolder.newFolder("log");
+			Files.createFile(new File(logDir, "jobmanager.log").toPath());
+			Files.createFile(new File(logDir, "jobmanager.out").toPath());
+
 			Configuration monitorConfig = new Configuration();
-			monitorConfig.setString(WebMonitorConfig.JOB_MANAGER_WEB_DOC_ROOT_KEY, MAIN_RESOURCES_PATH);
-			monitorConfig.setBoolean(ConfigConstants.JOB_MANAGER_NEW_WEB_FRONTEND_KEY, true);
 			monitorConfig.setInteger(ConfigConstants.JOB_MANAGER_WEB_PORT_KEY, 0);
+			monitorConfig.setString(ConfigConstants.JOB_MANAGER_WEB_LOG_PATH_KEY, logDir.getAbsolutePath());
 
 			// Needs to match the leader address from the leader retrieval service
 			String jobManagerAddress = AkkaUtils.getAkkaURL(jmActorSystem, jmActor);
@@ -143,9 +147,13 @@ public class WebRuntimeMonitorITCase extends TestLogger {
 			final Configuration config = ZooKeeperTestUtils.createZooKeeperRecoveryModeConfig(
 				zooKeeper.getConnectString(),
 				temporaryFolder.getRoot().getPath());
-			config.setString(WebMonitorConfig.JOB_MANAGER_WEB_DOC_ROOT_KEY, MAIN_RESOURCES_PATH);
-			config.setBoolean(ConfigConstants.JOB_MANAGER_NEW_WEB_FRONTEND_KEY, true);
+
+			File logDir = temporaryFolder.newFolder();
+			Files.createFile(new File(logDir, "jobmanager.log").toPath());
+			Files.createFile(new File(logDir, "jobmanager.out").toPath());
+
 			config.setInteger(ConfigConstants.JOB_MANAGER_WEB_PORT_KEY, 0);
+			config.setString(ConfigConstants.JOB_MANAGER_WEB_LOG_PATH_KEY, logDir.getAbsolutePath());
 
 			for (int i = 0; i < jobManagerSystem.length; i++) {
 				jobManagerSystem[i] = AkkaUtils.createActorSystem(new Configuration(),
@@ -280,10 +288,13 @@ public class WebRuntimeMonitorITCase extends TestLogger {
 
 		try (TestingServer zooKeeper = new TestingServer()) {
 
+			File logDir = temporaryFolder.newFolder();
+			Files.createFile(new File(logDir, "jobmanager.log").toPath());
+			Files.createFile(new File(logDir, "jobmanager.out").toPath());
+
 			final Configuration config = new Configuration();
-			config.setString(WebMonitorConfig.JOB_MANAGER_WEB_DOC_ROOT_KEY, MAIN_RESOURCES_PATH);
-			config.setBoolean(ConfigConstants.JOB_MANAGER_NEW_WEB_FRONTEND_KEY, true);
 			config.setInteger(ConfigConstants.JOB_MANAGER_WEB_PORT_KEY, 0);
+			config.setString(ConfigConstants.JOB_MANAGER_WEB_LOG_PATH_KEY, logDir.getAbsolutePath());
 			config.setString(ConfigConstants.RECOVERY_MODE, "ZOOKEEPER");
 			config.setString(ConfigConstants.ZOOKEEPER_QUORUM_KEY, zooKeeper.getConnectString());
 

http://git-wip-us.apache.org/repos/asf/flink/blob/a6890b28/flink-runtime-web/web-dashboard/gulpfile.js
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/gulpfile.js b/flink-runtime-web/web-dashboard/gulpfile.js
index 2abfcce..737519e 100644
--- a/flink-runtime-web/web-dashboard/gulpfile.js
+++ b/flink-runtime-web/web-dashboard/gulpfile.js
@@ -43,7 +43,7 @@ var path = require('path');
 var environment = 'development';
 var paths = {
   src: './app/',
-  dest: '../src/main/resources/web/',
+  dest: './web/',
   vendor: './bower_components/',
   vendorLocal: './vendor-local/',
   assets: './assets/',
@@ -168,7 +168,7 @@ gulp.task('watch', function () {
 });
 
 gulp.task('serve', serve({
-  root: '../src/main/resources/web/',
+  root: 'web',
   port: 3001
 }));
 

http://git-wip-us.apache.org/repos/asf/flink/blob/a6890b28/flink-runtime-web/web-dashboard/web/css/index.css
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/css/index.css b/flink-runtime-web/web-dashboard/web/css/index.css
new file mode 100644
index 0000000..43f7d98
--- /dev/null
+++ b/flink-runtime-web/web-dashboard/web/css/index.css
@@ -0,0 +1,596 @@
+/*
+ * 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.
+ */
+#sidebar {
+  overflow: hidden;
+  position: fixed;
+  left: -250px;
+  top: 0;
+  bottom: 0;
+  height: 100%;
+  width: 250px;
+  background: #151515;
+  -webkit-transition: 400ms;
+  -moz-transition: 400ms;
+  -o-transition: 400ms;
+  -ms-transition: 400ms;
+  transition: 400ms;
+  -webkit-box-shadow: inset -10px 0px 10px rgba(0,0,0,0.2);
+  box-shadow: inset -10px 0px 10px rgba(0,0,0,0.2);
+}
+#sidebar.sidebar-visible {
+  left: 0;
+}
+#sidebar .logo {
+  width: auto;
+  height: 22px;
+}
+#sidebar .logo img {
+  display: inline-block;
+}
+#sidebar .navbar-static-top {
+  overflow: hidden;
+  height: 51px;
+}
+#sidebar .navbar-static-top .navbar-header {
+  width: 100%;
+}
+#sidebar .navbar-brand.navbar-brand-text {
+  font-size: 14px;
+  font-weight: bold;
+  color: #fff;
+  padding-left: 0;
+}
+#sidebar .nav > li > a {
+  color: #aaa;
+  margin-bottom: 1px;
+}
+#sidebar .nav > li > a:hover,
+#sidebar .nav > li > a:focus {
+  background-color: rgba(40,40,40,0.5);
+}
+#sidebar .nav > li > a.active {
+  background-color: rgba(100,100,100,0.5);
+}
+#content {
+  background-color: #fff;
+  overflow: hidden;
+  margin-left: 0;
+  padding-top: 70px;
+  -webkit-transition: 400ms;
+  -moz-transition: 400ms;
+  -o-transition: 400ms;
+  -ms-transition: 400ms;
+  transition: 400ms;
+}
+#content .navbar-main,
+#content .navbar-main-additional {
+  -webkit-transition: 400ms;
+  -moz-transition: 400ms;
+  -o-transition: 400ms;
+  -ms-transition: 400ms;
+  transition: 400ms;
+}
+#content .navbar-main-additional {
+  margin-top: 51px;
+  border-bottom: none;
+  padding: 0 20px;
+}
+#content .navbar-main-additional .nav-tabs {
+  margin: 0 -20px;
+  padding: 0 20px;
+}
+#content .navbar-secondary-additional {
+  border: none;
+  padding: 0 20px;
+  margin-bottom: 0;
+}
+#content .navbar-secondary-additional .nav-tabs {
+  margin: 0 -20px;
+}
+#content.sidebar-visible {
+  margin-left: 250px;
+}
+#content.sidebar-visible .navbar-main,
+#content.sidebar-visible .navbar-main-additional {
+  left: 250px;
+}
+#content #fold-button {
+  display: inline-block;
+  margin-left: 20px;
+}
+#content #content-inner {
+  padding: 0px 20px 20px 20px;
+}
+#content #content-inner.has-navbar-main-additional {
+  padding-top: 42px;
+}
+.page-header {
+  margin: 0 0 20px 0;
+}
+.nav > li > a,
+.nav > li > a:hover,
+.nav > li > a:focus {
+  color: #aaa;
+  background-color: transparent;
+  border-bottom: 2px solid transparent;
+}
+.nav > li.active > a,
+.nav > li.active > a:hover,
+.nav > li.active > a:focus {
+  color: #000;
+  border-bottom: 2px solid #000;
+}
+.nav.nav-tabs {
+  margin-bottom: 20px;
+}
+.table .table {
+  background-color: transparent;
+}
+.table th {
+  font-weight: normal;
+  color: #999;
+}
+.table td.td-long {
+  width: 20%;
+  white-space: pre-wrap;
+  white-space: -moz-pre-wrap;
+  white-space: -pre-wrap;
+  white-space: -o-pre-wrap;
+  word-wrap: break-word;
+}
+.table.table-clickable tr {
+  cursor: pointer;
+}
+.table.table-inner {
+  background-color: transparent;
+}
+.table.table-properties {
+  table-layout: fixed;
+  white-space: nowrap;
+}
+.table.table-properties td {
+  width: 50%;
+  white-space: nowrap;
+  overflow: hidden;
+  -o-text-overflow: ellipsis;
+  text-overflow: ellipsis;
+}
+.table.table-body-hover > tbody {
+  border-top: none;
+  border-left: 2px solid transparent;
+}
+.table.table-body-hover > tbody.active {
+  border-left: 2px solid #000;
+}
+.table.table-body-hover > tbody:hover td:not(.tab-column),
+.table.table-body-hover > tbody.active td:not(.tab-column) {
+  background-color: #f0f0f0;
+}
+.table.table-body-hover > tbody:hover td.tab-column li.active,
+.table.table-body-hover > tbody.active td.tab-column li.active {
+  background-color: #f0f0f0;
+}
+.table.table-activable th.tab-column,
+.table.table-activable td.tab-column {
+  border-top: none;
+  width: 47px;
+}
+.table.table-activable td.tab-column {
+  border-right: 1px solid #ddd;
+}
+.table.table-activable td {
+  position: relative;
+}
+.table .small-label {
+  text-transform: uppercase;
+  font-size: 13px;
+  color: #999;
+}
+.panel.panel-dashboard .huge {
+  font-size: 28px;
+}
+.panel.panel-lg {
+  font-size: 16px;
+}
+.panel.panel-lg .badge {
+  font-size: 14px;
+}
+.navbar-secondary {
+  overflow: auto;
+}
+.navbar-main .navbar-title,
+.navbar-secondary .navbar-title,
+.navbar-main-additional .navbar-title,
+.panel.panel-multi .navbar-title,
+.navbar-secondary-additional .navbar-title,
+.navbar-main .panel-title,
+.navbar-secondary .panel-title,
+.navbar-main-additional .panel-title,
+.panel.panel-multi .panel-title,
+.navbar-secondary-additional .panel-title {
+  float: left;
+  font-size: 18px;
+  padding: 12px 20px 13px 10px;
+  color: #333;
+  display: inline-block;
+}
+.navbar-main .navbar-info,
+.navbar-secondary .navbar-info,
+.navbar-main-additional .navbar-info,
+.panel.panel-multi .navbar-info,
+.navbar-secondary-additional .navbar-info,
+.navbar-main .panel-info,
+.navbar-secondary .panel-info,
+.navbar-main-additional .panel-info,
+.panel.panel-multi .panel-info,
+.navbar-secondary-additional .panel-info {
+  float: left;
+  font-size: 14px;
+  padding: 15px 15px 15px 15px;
+  color: #999;
+  display: inline-block;
+  border-right: 1px solid #e7e7e7;
+  overflow: hidden;
+}
+.navbar-main .navbar-info .overflow,
+.navbar-secondary .navbar-info .overflow,
+.navbar-main-additional .navbar-info .overflow,
+.panel.panel-multi .navbar-info .overflow,
+.navbar-secondary-additional .navbar-info .overflow,
+.navbar-main .panel-info .overflow,
+.navbar-secondary .panel-info .overflow,
+.navbar-main-additional .panel-info .overflow,
+.panel.panel-multi .panel-info .overflow,
+.navbar-secondary-additional .panel-info .overflow {
+  position: absolute;
+  display: block;
+  -o-text-overflow: ellipsis;
+  text-overflow: ellipsis;
+  overflow: hidden;
+  height: 22px;
+  line-height: 22px;
+  vertical-align: middle;
+}
+.navbar-main .navbar-info.first,
+.navbar-secondary .navbar-info.first,
+.navbar-main-additional .navbar-info.first,
+.panel.panel-multi .navbar-info.first,
+.navbar-secondary-additional .navbar-info.first,
+.navbar-main .panel-info.first,
+.navbar-secondary .panel-info.first,
+.navbar-main-additional .panel-info.first,
+.panel.panel-multi .panel-info.first,
+.navbar-secondary-additional .panel-info.first {
+  border-left: 1px solid #e7e7e7;
+}
+.navbar-main .navbar-info.last,
+.navbar-secondary .navbar-info.last,
+.navbar-main-additional .navbar-info.last,
+.panel.panel-multi .navbar-info.last,
+.navbar-secondary-additional .navbar-info.last,
+.navbar-main .panel-info.last,
+.navbar-secondary .panel-info.last,
+.navbar-main-additional .panel-info.last,
+.panel.panel-multi .panel-info.last,
+.navbar-secondary-additional .panel-info.last {
+  border-right: none;
+}
+.panel.panel-multi .panel-heading {
+  padding: 0;
+}
+.panel.panel-multi .panel-heading .panel-info.thin {
+  padding: 8px 10px;
+}
+.panel.panel-multi .panel-body {
+  padding: 10px;
+  background-color: #fdfdfd;
+  color: #999;
+  font-size: 13px;
+}
+.panel.panel-multi .panel-body.clean {
+  color: inherit;
+  font-size: inherit;
+}
+.navbar-main-additional,
+.navbar-secondary-additional {
+  min-height: 40px;
+  background-color: #fdfdfd;
+}
+.navbar-main-additional .navbar-info,
+.navbar-secondary-additional .navbar-info {
+  font-size: 13px;
+  padding: 10px 15px 10px 15px;
+}
+.nav-top-affix.affix {
+  width: 100%;
+  top: 50px;
+  margin-left: -20px;
+  padding-left: 20px;
+  margin-right: -20px;
+  padding-right: 20px;
+  background-color: #fff;
+  z-index: 1;
+}
+.badge-default[href]:hover,
+.badge-default[href]:focus {
+  background-color: #808080;
+}
+.badge-primary {
+  background-color: #428bca;
+}
+.badge-primary[href]:hover,
+.badge-primary[href]:focus {
+  background-color: #3071a9;
+}
+.badge-success {
+  background-color: #5cb85c;
+}
+.badge-success[href]:hover,
+.badge-success[href]:focus {
+  background-color: #449d44;
+}
+.badge-info {
+  background-color: #5bc0de;
+}
+.badge-info[href]:hover,
+.badge-info[href]:focus {
+  background-color: #31b0d5;
+}
+.badge-warning {
+  background-color: #f0ad4e;
+}
+.badge-warning[href]:hover,
+.badge-warning[href]:focus {
+  background-color: #ec971f;
+}
+.badge-danger {
+  background-color: #d9534f;
+}
+.badge-danger[href]:hover,
+.badge-danger[href]:focus {
+  background-color: #c9302c;
+}
+.indicator {
+  display: inline-block;
+  margin-right: 15px;
+}
+.indicator.indicator-primary {
+  color: #428bca;
+}
+.indicator.indicator-success {
+  color: #5cb85c;
+}
+.indicator.indicator-info {
+  color: #5bc0de;
+}
+.indicator.indicator-warning {
+  color: #f0ad4e;
+}
+.indicator.indicator-danger {
+  color: #d9534f;
+}
+pre.exception {
+  border: none;
+  background-color: transparent;
+  padding: 0;
+  margin: 0;
+}
+.nav-tabs.tabs-vertical {
+  position: absolute;
+  left: 0;
+  top: 0;
+  border-bottom: none;
+  z-index: 100;
+}
+.nav-tabs.tabs-vertical li {
+  float: none;
+  margin-bottom: 0;
+  margin-right: -1px;
+}
+.nav-tabs.tabs-vertical li > a {
+  margin-right: 0;
+  -webkit-border-radius: 0;
+  border-radius: 0;
+  border-bottom: none;
+  border-left: 2px solid transparent;
+}
+.nav-tabs.tabs-vertical li > a:hover,
+.nav-tabs.tabs-vertical li > a:focus {
+  border-bottom: none;
+  border-left: 2px solid #000;
+}
+.nav-tabs.tabs-vertical li.active > a {
+  border-bottom: none;
+  border-left: 2px solid #000;
+}
+.navbar-main .navbar-title,
+.navbar-secondary .navbar-title,
+.navbar-main-additional .navbar-title,
+.navbar-secondary-additional .navbar-title {
+  padding: 12px 20px 13px 20px;
+}
+livechart {
+  width: 30%;
+  height: 30%;
+  text-align: center;
+}
+.canvas-wrapper {
+  border: 1px solid #ddd;
+  position: relative;
+  margin-bottom: 20px;
+}
+.canvas-wrapper .main-canvas {
+  height: 400px;
+  overflow: hidden;
+}
+.canvas-wrapper .main-canvas .zoom-buttons {
+  position: absolute;
+  top: 10px;
+  right: 10px;
+}
+.label-group .label {
+  display: inline-block;
+  width: 2em;
+  padding-left: 0.1em;
+  padding-right: 0.1em;
+  margin: 0;
+  border-right: 1px solid #fff;
+  -webkit-border-radius: 0;
+  border-radius: 0;
+}
+.label-group .label.label-black {
+  background-color: #000;
+}
+svg.graph {
+  overflow: hidden;
+}
+svg.graph g.type-TK > rect {
+  fill: #00ffd0;
+}
+svg.graph text {
+  font-weight: 300;
+  font-size: 14px;
+}
+svg.graph .node {
+  cursor: pointer;
+}
+svg.graph .node > rect {
+  stroke: #999;
+  stroke-width: 5px;
+  fill: #fff;
+  margin: 0;
+  padding: 0;
+}
+svg.graph .node[active] > rect {
+  fill: #eee;
+}
+svg.graph .node.node-mirror > rect {
+  stroke: #a8a8a8;
+}
+svg.graph .node.node-iteration > rect {
+  stroke: #cd3333;
+}
+svg.graph .node.node-source > rect {
+  stroke: #4ce199;
+}
+svg.graph .node.node-sink > rect {
+  stroke: #e6ec8b;
+}
+svg.graph .node.node-normal > rect {
+  stroke: #3fb6d8;
+}
+svg.graph .node h4 {
+  color: #000;
+}
+svg.graph .node h5 {
+  color: #999;
+}
+svg.graph .edgeLabel rect {
+  fill: #fff;
+}
+svg.graph .edgePath path {
+  stroke: #333;
+  stroke-width: 2px;
+  fill: #333;
+}
+svg.graph .label {
+  color: #777;
+  margin: 0;
+}
+svg.graph .edge-label {
+  font-size: 14px;
+}
+svg.graph .node-label {
+  display: block;
+  margin: 0;
+  text-decoration: none;
+}
+.timeline {
+  overflow: hidden;
+}
+.timeline-canvas {
+  overflow: hidden;
+  padding: 10px;
+}
+.timeline-canvas .bar-container {
+  overflow: hidden;
+}
+.timeline-canvas .timeline-insidelabel,
+.timeline-canvas .timeline-series {
+  cursor: pointer;
+}
+.timeline-canvas.secondary .timeline-insidelabel,
+.timeline-canvas.secondary .timeline-series {
+  cursor: auto;
+}
+.qtip-timeline-bar {
+  font-size: 14px;
+  line-height: 1.4;
+}
+@media (min-width: 1024px) and (max-width: 1279px) {
+  #sidebar {
+    left: 0;
+    width: 160px;
+  }
+  #sidebar .navbar-static-top .navbar-brand-text {
+    display: none;
+  }
+  #content {
+    margin-left: 160px;
+  }
+  #content #fold-button {
+    display: none;
+  }
+  #content .navbar-main,
+  #content .navbar-main-additional {
+    left: 160px;
+  }
+  .table td.td-long {
+    width: 20%;
+  }
+}
+@media (min-width: 1280px) {
+  #sidebar {
+    left: 0;
+  }
+  #content {
+    margin-left: 250px;
+  }
+  #content #fold-button {
+    display: none;
+  }
+  #content .navbar-main,
+  #content .navbar-main-additional {
+    left: 250px;
+  }
+  .table td.td-long {
+    width: 30%;
+  }
+}
+#total-mem {
+  background-color: #7cb5ec;
+}
+#heap-mem {
+  background-color: #434348;
+}
+#non-heap-mem {
+  background-color: #90ed7d;
+}
+a.show-pointer {
+  cursor: pointer;
+}