You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by uc...@apache.org on 2015/10/06 11:39:40 UTC
[3/3] flink git commit: [FLINK-2811] [web-dashboard] Add job manager
configuration overview
[FLINK-2811] [web-dashboard] Add job manager configuration overview
This closes #1219
Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/de14a801
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/de14a801
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/de14a801
Branch: refs/heads/master
Commit: de14a80152f092fea661c1105cba87178a9e462c
Parents: 19076b2
Author: Sachin Goel <sa...@gmail.com>
Authored: Sat Oct 3 14:09:36 2015 +0530
Committer: Ufuk Celebi <uc...@apache.org>
Committed: Tue Oct 6 11:39:22 2015 +0200
----------------------------------------------------------------------
.../runtime/webmonitor/WebRuntimeMonitor.java | 4 +
.../handlers/JobManagerConfigHandler.java | 55 ++++++++
flink-runtime-web/web-dashboard/app/index.jade | 7 +-
.../app/partials/jobmanager/config.jade | 29 +++++
.../app/partials/jobmanager/index.jade | 35 ++++++
.../app/partials/jobmanager/logfile.jade | 16 +++
.../app/partials/jobmanager/stdout.jade | 16 +++
.../web-dashboard/app/scripts/index.coffee | 25 ++++
.../modules/jobmanager/jobmanager.ctrl.coffee | 25 ++++
.../modules/jobmanager/jobmanager.svc.coffee | 34 +++++
flink-runtime-web/web-dashboard/web/index.html | 4 +-
flink-runtime-web/web-dashboard/web/js/index.js | 125 +++++++++++++------
.../web/partials/jobmanager/config.html | 33 +++++
.../web/partials/jobmanager/index.html | 33 +++++
.../web/partials/jobmanager/logfile.html | 18 +++
.../web/partials/jobmanager/stdout.html | 18 +++
16 files changed, 439 insertions(+), 38 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flink/blob/de14a801/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/WebRuntimeMonitor.java
----------------------------------------------------------------------
diff --git a/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/WebRuntimeMonitor.java b/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/WebRuntimeMonitor.java
index 1f10a73..946155a 100644
--- a/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/WebRuntimeMonitor.java
+++ b/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/WebRuntimeMonitor.java
@@ -39,6 +39,7 @@ import org.apache.flink.runtime.akka.AkkaUtils;
import org.apache.flink.runtime.leaderretrieval.LeaderRetrievalService;
import org.apache.flink.runtime.webmonitor.files.StaticFileServerHandler;
import org.apache.flink.runtime.webmonitor.handlers.JobAccumulatorsHandler;
+import org.apache.flink.runtime.webmonitor.handlers.JobManagerConfigHandler;
import org.apache.flink.runtime.webmonitor.handlers.JobPlanHandler;
import org.apache.flink.runtime.webmonitor.handlers.JobConfigHandler;
import org.apache.flink.runtime.webmonitor.handlers.JobExceptionsHandler;
@@ -159,6 +160,9 @@ public class WebRuntimeMonitor implements WebMonitor {
// the overview - how many task managers, slots, free slots, ...
.GET("/overview", handler(new ClusterOverviewHandler(retriever, DEFAULT_REQUEST_TIMEOUT)))
+ // job manager configuration
+ .GET("/jobmanager/config", handler(new JobManagerConfigHandler(config)))
+
// overview over jobs
.GET("/joboverview", handler(new CurrentJobsOverviewHandler(retriever, DEFAULT_REQUEST_TIMEOUT, true, true)))
.GET("/joboverview/running", handler(new CurrentJobsOverviewHandler(retriever, DEFAULT_REQUEST_TIMEOUT, true, false)))
http://git-wip-us.apache.org/repos/asf/flink/blob/de14a801/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/handlers/JobManagerConfigHandler.java
----------------------------------------------------------------------
diff --git a/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/handlers/JobManagerConfigHandler.java b/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/handlers/JobManagerConfigHandler.java
new file mode 100644
index 0000000..77314ec
--- /dev/null
+++ b/flink-runtime-web/src/main/java/org/apache/flink/runtime/webmonitor/handlers/JobManagerConfigHandler.java
@@ -0,0 +1,55 @@
+/*
+ * 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.
+ */
+
+package org.apache.flink.runtime.webmonitor.handlers;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import org.apache.flink.configuration.Configuration;
+
+import java.io.StringWriter;
+import java.util.Map;
+
+/**
+ * Returns the Job Manager's configuration.
+ */
+public class JobManagerConfigHandler implements RequestHandler, RequestHandler.JsonResponse {
+
+ private final Configuration config;
+
+ public JobManagerConfigHandler(Configuration config) {
+ this.config = config;
+ }
+
+ @Override
+ public String handleRequest(Map<String, String> params) throws Exception {
+ StringWriter writer = new StringWriter();
+ JsonGenerator gen = JsonFactory.jacksonFactory.createJsonGenerator(writer);
+
+ gen.writeStartArray();
+ for (String key : config.keySet()) {
+ gen.writeStartObject();
+ gen.writeStringField("key", key);
+ gen.writeStringField("value", config.getString(key, null));
+ gen.writeEndObject();
+ }
+ gen.writeEndArray();
+
+ gen.close();
+ return writer.toString();
+ }
+}
http://git-wip-us.apache.org/repos/asf/flink/blob/de14a801/flink-runtime-web/web-dashboard/app/index.jade
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/app/index.jade b/flink-runtime-web/web-dashboard/app/index.jade
index 4c0d2fc..a5a28ac 100644
--- a/flink-runtime-web/web-dashboard/app/index.jade
+++ b/flink-runtime-web/web-dashboard/app/index.jade
@@ -53,7 +53,7 @@ html(lang='en')
| Running Jobs
li
a(ui-sref="completed-jobs" ui-sref-active='active')
- i.fa.fa-server.fa-fw
+ i.fa.fa-check-circle.fa-fw
|
| Completed Jobs
li
@@ -61,6 +61,11 @@ html(lang='en')
i.fa.fa-sitemap.fa-fw
|
| Task Managers
+ li
+ a(ui-sref="jobmanager.config" ui-sref-active='active')
+ i.fa.fa-server.fa-fw
+ |
+ | Job Manager
#content(ng-class="{ 'sidebar-visible': sidebarVisible }")
div(ui-view='main')
http://git-wip-us.apache.org/repos/asf/flink/blob/de14a801/flink-runtime-web/web-dashboard/app/partials/jobmanager/config.jade
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/app/partials/jobmanager/config.jade b/flink-runtime-web/web-dashboard/app/partials/jobmanager/config.jade
new file mode 100644
index 0000000..f151115
--- /dev/null
+++ b/flink-runtime-web/web-dashboard/app/partials/jobmanager/config.jade
@@ -0,0 +1,29 @@
+//
+ 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.table.table-properties
+ thead
+ tr
+ th
+ | Key
+ th
+ | Value
+
+ tbody
+ tr(ng-repeat="entry in jobmanager.config | orderBy: 'key'")
+ td {{entry.key}}
+ td {{entry.value}}
http://git-wip-us.apache.org/repos/asf/flink/blob/de14a801/flink-runtime-web/web-dashboard/app/partials/jobmanager/index.jade
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/app/partials/jobmanager/index.jade b/flink-runtime-web/web-dashboard/app/partials/jobmanager/index.jade
new file mode 100644
index 0000000..00ff0fd
--- /dev/null
+++ b/flink-runtime-web/web-dashboard/app/partials/jobmanager/index.jade
@@ -0,0 +1,35 @@
+//
+ 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.navbar.navbar-default.navbar-fixed-top.navbar-main
+ #fold-button.btn.btn-default.navbar-btn.pull-left(ng-click='showSidebar()')
+ i.fa.fa-navicon
+
+ .navbar-title
+ | Job Manager
+
+nav.navbar.navbar-default.navbar-fixed-top.navbar-main-additional
+ ul.nav.nav-tabs
+ li(ui-sref-active='active')
+ a(ui-sref=".config") Configuration
+ li(ui-sref-active='active')
+ a(ui-sref=".logfile") Logs
+ li(ui-sref-active='active')
+ a(ui-sref=".stdout") Stdout
+
+#content-inner.has-navbar-main-additional
+ div(ui-view="details")
http://git-wip-us.apache.org/repos/asf/flink/blob/de14a801/flink-runtime-web/web-dashboard/app/partials/jobmanager/logfile.jade
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/app/partials/jobmanager/logfile.jade b/flink-runtime-web/web-dashboard/app/partials/jobmanager/logfile.jade
new file mode 100644
index 0000000..c0de885
--- /dev/null
+++ b/flink-runtime-web/web-dashboard/app/partials/jobmanager/logfile.jade
@@ -0,0 +1,16 @@
+//
+ 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.
http://git-wip-us.apache.org/repos/asf/flink/blob/de14a801/flink-runtime-web/web-dashboard/app/partials/jobmanager/stdout.jade
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/app/partials/jobmanager/stdout.jade b/flink-runtime-web/web-dashboard/app/partials/jobmanager/stdout.jade
new file mode 100644
index 0000000..c0de885
--- /dev/null
+++ b/flink-runtime-web/web-dashboard/app/partials/jobmanager/stdout.jade
@@ -0,0 +1,16 @@
+//
+ 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.
http://git-wip-us.apache.org/repos/asf/flink/blob/de14a801/flink-runtime-web/web-dashboard/app/scripts/index.coffee
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/app/scripts/index.coffee b/flink-runtime-web/web-dashboard/app/scripts/index.coffee
index 7154e14..eaa27f1 100644
--- a/flink-runtime-web/web-dashboard/app/scripts/index.coffee
+++ b/flink-runtime-web/web-dashboard/app/scripts/index.coffee
@@ -150,4 +150,29 @@ angular.module('flinkApp', ['ui.router', 'angularMoment'])
templateUrl: "partials/taskmanagers/index.html"
controller: 'TaskManagersController'
+ .state "jobmanager",
+ url: "/jobmanager"
+ views:
+ main:
+ templateUrl: "partials/jobmanager/index.html"
+
+ .state "jobmanager.config",
+ url: "/config"
+ views:
+ details:
+ templateUrl: "partials/jobmanager/config.html"
+ controller: 'JobManagerConfigController'
+
+ .state "jobmanager.stdout",
+ url: "/stdout"
+ views:
+ details:
+ templateUrl: "partials/jobmanager/stdout.html"
+
+ .state "jobmanager.logfile",
+ url: "/logfile"
+ views:
+ details:
+ templateUrl: "partials/jobmanager/logfile.html"
+
$urlRouterProvider.otherwise "/overview"
http://git-wip-us.apache.org/repos/asf/flink/blob/de14a801/flink-runtime-web/web-dashboard/app/scripts/modules/jobmanager/jobmanager.ctrl.coffee
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/app/scripts/modules/jobmanager/jobmanager.ctrl.coffee b/flink-runtime-web/web-dashboard/app/scripts/modules/jobmanager/jobmanager.ctrl.coffee
new file mode 100644
index 0000000..b3534c2
--- /dev/null
+++ b/flink-runtime-web/web-dashboard/app/scripts/modules/jobmanager/jobmanager.ctrl.coffee
@@ -0,0 +1,25 @@
+#
+# 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.
+#
+
+angular.module('flinkApp')
+
+.controller 'JobManagerConfigController', ($scope, JobManagerConfigService) ->
+ JobManagerConfigService.loadConfig().then (data) ->
+ if !$scope.jobmanager?
+ $scope.jobmanager = {}
+ $scope.jobmanager['config'] = data
http://git-wip-us.apache.org/repos/asf/flink/blob/de14a801/flink-runtime-web/web-dashboard/app/scripts/modules/jobmanager/jobmanager.svc.coffee
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/app/scripts/modules/jobmanager/jobmanager.svc.coffee b/flink-runtime-web/web-dashboard/app/scripts/modules/jobmanager/jobmanager.svc.coffee
new file mode 100644
index 0000000..38411f8
--- /dev/null
+++ b/flink-runtime-web/web-dashboard/app/scripts/modules/jobmanager/jobmanager.svc.coffee
@@ -0,0 +1,34 @@
+#
+# 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.
+#
+
+angular.module('flinkApp')
+
+.service 'JobManagerConfigService', ($http, flinkConfig, $q) ->
+ config = {}
+
+ @loadConfig = ->
+ deferred = $q.defer()
+
+ $http.get("/jobmanager/config")
+ .success (data, status, headers, config) ->
+ config = data
+ deferred.resolve(data)
+
+ deferred.promise
+
+ @
http://git-wip-us.apache.org/repos/asf/flink/blob/de14a801/flink-runtime-web/web-dashboard/web/index.html
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/web/index.html b/flink-runtime-web/web-dashboard/web/index.html
index 850aa2b..f06eb80 100644
--- a/flink-runtime-web/web-dashboard/web/index.html
+++ b/flink-runtime-web/web-dashboard/web/index.html
@@ -39,10 +39,12 @@ limitations under the License.
Overview</a></li>
<li><a ui-sref="running-jobs" ui-sref-active="active"><i class="fa fa-tasks fa-fw"></i>
Running Jobs</a></li>
- <li><a ui-sref="completed-jobs" ui-sref-active="active"><i class="fa fa-server fa-fw"></i>
+ <li><a ui-sref="completed-jobs" ui-sref-active="active"><i class="fa fa-check-circle fa-fw"></i>
Completed Jobs</a></li>
<li><a ui-sref="taskmanagers" ui-sref-active="active"><i class="fa fa-sitemap fa-fw"></i>
Task Managers</a></li>
+ <li><a ui-sref="jobmanager.config" ui-sref-active="active"><i class="fa fa-server fa-fw"></i>
+ Job Manager</a></li>
</ul>
</div>
</div>