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:19:55 UTC

[23/51] [abbrv] flink git commit: [FLINK-2357] [web dashboard] Auto-update overview page

[FLINK-2357] [web dashboard] Auto-update overview page


Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/907f773c
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/907f773c
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/907f773c

Branch: refs/heads/master
Commit: 907f773c5da8a67abae0bfaa56850816509bbb42
Parents: b26ce5a
Author: Piotr Godek <pi...@gmail.com>
Authored: Fri Aug 21 14:58:38 2015 +0200
Committer: Stephan Ewen <se...@apache.org>
Committed: Thu Sep 17 14:21:51 2015 +0200

----------------------------------------------------------------------
 flink-runtime-web/README.md                     |   2 +-
 .../app/partials/jobs/completed-jobs.jade       |   2 +-
 .../web-dashboard/app/partials/jobs/job.jade    |   9 +-
 .../app/partials/jobs/job.plan.node.jade        |   4 +-
 .../app/partials/jobs/running-jobs.jade         |   8 +-
 .../web-dashboard/app/partials/overview.jade    |  10 +-
 .../app/scripts/common/services.coffee          |   2 +-
 .../web-dashboard/app/scripts/index.coffee      |   2 -
 .../app/scripts/modules/jobs/jobs.ctrl.coffee   |   2 +-
 .../app/scripts/modules/jobs/jobs.dir.coffee    |  37 +++----
 .../app/scripts/modules/jobs/jobs.svc.coffee    |  69 +++++++------
 .../modules/overview/overview.ctrl.coffee       |  10 +-
 flink-runtime-web/web-dashboard/web/js/index.js | 103 +++++++++++--------
 .../web/partials/jobs/completed-jobs.html       |   2 +-
 .../web-dashboard/web/partials/jobs/job.html    |  10 +-
 .../web/partials/jobs/job.plan.node.html        |   4 +-
 .../web/partials/jobs/running-jobs.html         |   4 -
 .../web-dashboard/web/partials/overview.html    |   6 +-
 18 files changed, 150 insertions(+), 136 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink/blob/907f773c/flink-runtime-web/README.md
----------------------------------------------------------------------
diff --git a/flink-runtime-web/README.md b/flink-runtime-web/README.md
index ad12943..9664681 100644
--- a/flink-runtime-web/README.md
+++ b/flink-runtime-web/README.md
@@ -113,7 +113,7 @@ mvn -DskipTests clean package
 To simplify continuous development, one can use a *standalone proxy server*, together with automatic
 re-compilation:
 
-1. Edit the file `app/scripts/index.coffee`. Comment/uncomment the lines that define the `webServer`, `jobServer`, and `newServer` URLs.
+1. Edit the file `app/scripts/index.coffee`. Comment/uncomment the lines that define the `webServer`, and `jobServer` URLs.
 2. Re-compile the files via `gulp`. By calling `gulp watch`, the build-tool autocompiles future changes.
 3. Start the proxy server via `node server.js`
 4. Access the dashboard at [`http://localhost:3000`](http://localhost:3000)

http://git-wip-us.apache.org/repos/asf/flink/blob/907f773c/flink-runtime-web/web-dashboard/app/partials/jobs/completed-jobs.jade
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/app/partials/jobs/completed-jobs.jade b/flink-runtime-web/web-dashboard/app/partials/jobs/completed-jobs.jade
index 1233a21..23303b2 100644
--- a/flink-runtime-web/web-dashboard/app/partials/jobs/completed-jobs.jade
+++ b/flink-runtime-web/web-dashboard/app/partials/jobs/completed-jobs.jade
@@ -38,7 +38,7 @@ nav.navbar.navbar-default.navbar-fixed-top.navbar-main
       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 {{job['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}
-        td {{job['end-time'] - job['start-time']}} ms
+        td {{job.duration}} ms
         td {{job.name}}
         td {{job.jid}}
         td.label-group

http://git-wip-us.apache.org/repos/asf/flink/blob/907f773c/flink-runtime-web/web-dashboard/app/partials/jobs/job.jade
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/app/partials/jobs/job.jade b/flink-runtime-web/web-dashboard/app/partials/jobs/job.jade
index 7fb3234..07e7402 100644
--- a/flink-runtime-web/web-dashboard/app/partials/jobs/job.jade
+++ b/flink-runtime-web/web-dashboard/app/partials/jobs/job.jade
@@ -32,11 +32,12 @@ nav.navbar.navbar-default.navbar-fixed-top.navbar-main(ng-if="job")
 
   .navbar-info.first.last.hidden-xs.hidden-sm
     | {{ job['start-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}
-    | - 
-    | {{ job['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}
+    span(ng-if="job['end-time'] > -1")
+      | - 
+      | {{ job['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}
   
-  .navbar-info.last.first
-    | {{job['end-time'] - job['start-time']}} ms
+  .navbar-info.last.first(ng-if="job.duration > -1")
+    | {{job.duration}} ms
 
 nav.navbar.navbar-default.navbar-fixed-top.navbar-main-additional(ng-if="job")
   ul.nav.nav-tabs

http://git-wip-us.apache.org/repos/asf/flink/blob/907f773c/flink-runtime-web/web-dashboard/app/partials/jobs/job.plan.node.jade
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/app/partials/jobs/job.plan.node.jade b/flink-runtime-web/web-dashboard/app/partials/jobs/job.plan.node.jade
index 9ca30f1..a554b89 100644
--- a/flink-runtime-web/web-dashboard/app/partials/jobs/job.plan.node.jade
+++ b/flink-runtime-web/web-dashboard/app/partials/jobs/job.plan.node.jade
@@ -25,7 +25,7 @@
 
     .panel-info(ng-if="node.description")
       .label-group
-        bs-label(status="{{status}}" ng-repeat="(index, status) in stateList") {{node.vertex.groupvertex[status]}}
+        bs-label(status="{{status}}" ng-repeat="(index, status) in stateList") {{node.vertex.tasks[status]}}
 
   .panel-heading.clearfix
     .panel-info.first.last(ng-if="node.description")
@@ -40,7 +40,7 @@
 
       tbody
         tr(ng-repeat="vertex in node.vertex.groupvertex.groupmembers")
-          td {{ vertex.vertexname | humanizeTaskName }}
+          td {{ vertex.name | humanizeTaskName }}
           td 
             bs-label(status="{{vertex.vertexstatus}}") {{vertex.vertexstatus}}
 

http://git-wip-us.apache.org/repos/asf/flink/blob/907f773c/flink-runtime-web/web-dashboard/app/partials/jobs/running-jobs.jade
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/app/partials/jobs/running-jobs.jade b/flink-runtime-web/web-dashboard/app/partials/jobs/running-jobs.jade
index d76d9af..73ded56 100644
--- a/flink-runtime-web/web-dashboard/app/partials/jobs/running-jobs.jade
+++ b/flink-runtime-web/web-dashboard/app/partials/jobs/running-jobs.jade
@@ -27,8 +27,8 @@ nav.navbar.navbar-default.navbar-fixed-top.navbar-main
     thead
       tr
         th Start Time
-        th End Time
-        th Duration
+        //- th End Time
+        //- th Duration
         th Job Name
         th Job ID
         th Tasks
@@ -37,8 +37,8 @@ nav.navbar.navbar-default.navbar-fixed-top.navbar-main
     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 {{job['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}
-        td {{job['end-time'] - job['start-time']}} ms
+        //- td {{job['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}
+        //- td {{job.duration}} ms
         td {{job.name}}
         td {{job.jid}}
         td.label-group

http://git-wip-us.apache.org/repos/asf/flink/blob/907f773c/flink-runtime-web/web-dashboard/app/partials/overview.jade
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/app/partials/overview.jade b/flink-runtime-web/web-dashboard/app/partials/overview.jade
index aa92ac0..87f8f57 100644
--- a/flink-runtime-web/web-dashboard/app/partials/overview.jade
+++ b/flink-runtime-web/web-dashboard/app/partials/overview.jade
@@ -87,8 +87,8 @@ nav.navbar.navbar-default.navbar-fixed-top.navbar-main
         thead
           tr
             th Start Time
-            th End Time
-            th Duration
+            //- th End Time
+            //- th Duration
             th Job Name
             th Job ID
             th Tasks
@@ -97,8 +97,8 @@ nav.navbar.navbar-default.navbar-fixed-top.navbar-main
         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 {{job['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}
-            td {{job.duration}}
+            //- td {{job['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}
+            //- td {{job.duration}} ms
             td {{job.name}}
             td {{job.jid}}
             td.label-group
@@ -126,7 +126,7 @@ nav.navbar.navbar-default.navbar-fixed-top.navbar-main
           tr(ng-repeat="job in finishedJobs" ui-sref="single-job.plan({ jobid: job.jid })")
             td {{job['start-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}
             td {{job['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}
-            td {{job['end-time'] - job['start-time']}} ms
+            td {{job.duration}} ms
             td {{job.name}}
             td {{job.jid}}
             td.label-group

http://git-wip-us.apache.org/repos/asf/flink/blob/907f773c/flink-runtime-web/web-dashboard/app/scripts/common/services.coffee
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/app/scripts/common/services.coffee b/flink-runtime-web/web-dashboard/app/scripts/common/services.coffee
index 2e45a44..d3fc584 100644
--- a/flink-runtime-web/web-dashboard/app/scripts/common/services.coffee
+++ b/flink-runtime-web/web-dashboard/app/scripts/common/services.coffee
@@ -24,7 +24,7 @@ angular.module('flinkApp')
   @loadConfig = ->
     deferred = $q.defer()
 
-    $http.get flinkConfig.newServer + "/config"
+    $http.get flinkConfig.jobServer + "/config"
     .success (data, status, headers, config) ->
       deferred.resolve(data)
 

http://git-wip-us.apache.org/repos/asf/flink/blob/907f773c/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 6c52e12..3d01ef5 100644
--- a/flink-runtime-web/web-dashboard/app/scripts/index.coffee
+++ b/flink-runtime-web/web-dashboard/app/scripts/index.coffee
@@ -30,9 +30,7 @@ angular.module('flinkApp', ['ui.router', 'angularMoment'])
 
 .value 'flinkConfig', {
   jobServer: 'http://localhost:8081'
-  newServer: 'http://localhost:8081'
 #  jobServer: 'http://localhost:3000/new-server'
-#  newServer: 'http://localhost:3000/new-server'
   "refresh-interval": 10000
 }
 

http://git-wip-us.apache.org/repos/asf/flink/blob/907f773c/flink-runtime-web/web-dashboard/app/scripts/modules/jobs/jobs.ctrl.coffee
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/app/scripts/modules/jobs/jobs.ctrl.coffee b/flink-runtime-web/web-dashboard/app/scripts/modules/jobs/jobs.ctrl.coffee
index ebd632b..1fc8eae 100644
--- a/flink-runtime-web/web-dashboard/app/scripts/modules/jobs/jobs.ctrl.coffee
+++ b/flink-runtime-web/web-dashboard/app/scripts/modules/jobs/jobs.ctrl.coffee
@@ -70,5 +70,5 @@ angular.module('flinkApp')
 # --------------------------------------
 
 .controller 'JobTimelineVertexController', ($scope, $state, $stateParams, JobsService) ->
-  JobsService.getVertex($stateParams.jobid, $stateParams.vertexId).then (data) ->
+  JobsService.getVertex($stateParams.vertexId).then (data) ->
     $scope.vertex = data

http://git-wip-us.apache.org/repos/asf/flink/blob/907f773c/flink-runtime-web/web-dashboard/app/scripts/modules/jobs/jobs.dir.coffee
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/app/scripts/modules/jobs/jobs.dir.coffee b/flink-runtime-web/web-dashboard/app/scripts/modules/jobs/jobs.dir.coffee
index 15a3bb6..bf10799 100644
--- a/flink-runtime-web/web-dashboard/app/scripts/modules/jobs/jobs.dir.coffee
+++ b/flink-runtime-web/web-dashboard/app/scripts/modules/jobs/jobs.dir.coffee
@@ -35,34 +35,32 @@ angular.module('flinkApp')
     analyzeTime = (data) ->
       testData = []
 
-      angular.forEach data.groupvertex.groupmembers, (vertex, i) ->
-        vTime = data.verticetimes[vertex.vertexid]
-
+      angular.forEach data.subtasks, (subtask, i) ->
         testData.push {
-          label: "#{vertex.vertexinstancename} (#{i})"
+          label: "#{subtask.host} (#{subtask.subtask})"
           times: [
             {
               label: "Scheduled"
               color: "#666"
               borderColor: "#555"
-              starting_time: vTime["SCHEDULED"] * 100
-              ending_time: vTime["DEPLOYING"] * 100
+              starting_time: subtask.timestamps["SCHEDULED"]
+              ending_time: subtask.timestamps["DEPLOYING"]
               type: 'regular'
             }
             {
               label: "Deploying"
               color: "#aaa"
               borderColor: "#555"
-              starting_time: vTime["DEPLOYING"] * 100
-              ending_time: vTime["RUNNING"] * 100
+              starting_time: subtask.timestamps["DEPLOYING"]
+              ending_time: subtask.timestamps["RUNNING"]
               type: 'regular'
             }
             {
               label: "Running"
               color: "#ddd"
               borderColor: "#555"
-              starting_time: vTime["RUNNING"] * 100
-              ending_time: vTime["FINISHED"] * 100
+              starting_time: subtask.timestamps["RUNNING"]
+              ending_time: subtask.timestamps["FINISHED"]
               type: 'regular'
             }
           ]
@@ -115,26 +113,21 @@ angular.module('flinkApp')
           label: "Scheduled"
           color: "#cccccc"
           borderColor: "#555"
-          starting_time: data.oldV["SCHEDULED"]
-          ending_time: data.oldV["SCHEDULED"] + 1
-          # link: vertex.groupvertexid
+          starting_time: data.timestamps["CREATED"]
+          ending_time: data.timestamps["CREATED"] + 1
           type: 'scheduled'
         ]
 
 
-      angular.forEach data.oldV.groupvertices, (vertex) ->
-        vTime = data.oldV.groupverticetimes[vertex.groupvertexid]
-
-        # console.log vTime, vertex.groupvertexid
-
+      angular.forEach data.vertices, (vertex) ->
         testData.push 
           times: [
-            label: translateLabel(vertex.groupvertexname)
+            label: translateLabel(vertex.name)
             color: "#d9f1f7"
             borderColor: "#62cdea"
-            starting_time: vTime["STARTED"]
-            ending_time: vTime["ENDED"]
-            link: vertex.groupvertexid
+            starting_time: vertex['start-time']
+            ending_time: vertex['end-time']
+            link: vertex.id
             type: 'regular'
           ]
 

http://git-wip-us.apache.org/repos/asf/flink/blob/907f773c/flink-runtime-web/web-dashboard/app/scripts/modules/jobs/jobs.svc.coffee
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/app/scripts/modules/jobs/jobs.svc.coffee b/flink-runtime-web/web-dashboard/app/scripts/modules/jobs/jobs.svc.coffee
index 72bdb6c..cc5c29b 100644
--- a/flink-runtime-web/web-dashboard/app/scripts/modules/jobs/jobs.svc.coffee
+++ b/flink-runtime-web/web-dashboard/app/scripts/modules/jobs/jobs.svc.coffee
@@ -69,7 +69,7 @@ angular.module('flinkApp')
   @listJobs = ->
     deferred = $q.defer()
 
-    $http.get flinkConfig.newServer + "/joboverview"
+    $http.get flinkConfig.jobServer + "/joboverview"
     .success (data, status, headers, config) ->
 
       angular.forEach data, (list, listKey) ->
@@ -80,11 +80,6 @@ angular.module('flinkApp')
           when 'cancelled' then jobs.cancelled = list
           when 'failed' then jobs.failed = list
 
-        # angular.forEach list, (jobid, index) ->
-        #   $http.get flinkConfig.newServer + "/jobs/" + jobid
-        #   .success (details) ->
-        #     list[index] = details
-
       deferred.resolve(jobs)
       notifyObservers()
 
@@ -100,23 +95,28 @@ angular.module('flinkApp')
     currentJob = null
     deferreds.job = $q.defer()
 
-    $http.get flinkConfig.newServer + "/jobs/" + jobid
+    $http.get flinkConfig.jobServer + "/jobs/" + jobid
     .success (data, status, headers, config) ->
-      data.time = Date.now()
+      # data.time = Date.now()
 
-      $http.get flinkConfig.newServer + "/jobs/" + jobid + "/vertices"
+      $http.get flinkConfig.jobServer + "/jobs/" + jobid + "/vertices"
       .success (vertices) ->
         data = angular.extend(data, vertices)
 
-        $http.get flinkConfig.jobServer + "/jobsInfo?get=job&job=" + jobid
-        .success (oldVertices) ->
-          data.oldV = oldVertices[0]
+        # $http.get flinkConfig.jobServer + "/jobsInfo?get=job&job=" + jobid
+        # .success (oldVertices) ->
+        #   data.oldV = oldVertices[0]
+
+        $http.get flinkConfig.jobServer + "/jobs/" + jobid + "/config"
+        .success (jobConfig) ->
+          data = angular.extend(data, jobConfig)
 
-          $http.get flinkConfig.jobServer + "/jobs/" + jobid + "/config"
-          .success (jobConfig) ->
-            data = angular.extend(data, jobConfig)
+          $http.get flinkConfig.jobServer + "/jobs/" + jobid + "/exceptions"
+          .success (exceptions) ->
+            data.exceptions = exceptions
 
             currentJob = data
+
             deferreds.job.resolve(data)
 
     deferreds.job.promise
@@ -125,7 +125,7 @@ angular.module('flinkApp')
     currentPlan = null
     deferreds.plan = $q.defer()
 
-    $http.get flinkConfig.newServer + "/jobs/" + jobid + "/plan"
+    $http.get flinkConfig.jobServer + "/jobs/" + jobid + "/plan"
     .success (data) ->
       currentPlan = data
 
@@ -142,33 +142,38 @@ angular.module('flinkApp')
 
       null
 
-    deferred = $q.defer()
 
-    # if currentPlan
-    #   deferred.resolve(seekNode(nodeid, currentPlan.nodes))
-    # else
-    #   # deferreds.plan.promise.then (data) ->
-    #   $q.all([deferreds.plan.promise, deferreds.job.promise]).then (data) ->
-    #     console.log 'resolving getNode'
-    #     deferred.resolve(seekNode(nodeid, currentPlan.nodes))
+    deferred = $q.defer()
 
     $q.all([deferreds.plan.promise, deferreds.job.promise]).then (data) =>
       foundNode = seekNode(nodeid, currentPlan.nodes)
 
-      # @getVertex(currentJob.jid, currentJob.oldV.groupvertices[0].groupvertexid).then (vertex) ->
-      @getVertex(currentJob.jid, nodeid).then (vertex) ->
-        foundNode.vertex = vertex
-        deferred.resolve(foundNode)
+      # $http.get flinkConfig.jobServer + "/jobsInfo?get=groupvertex&job=" + currentJob.jid + "&groupvertex=" + nodeid
+
+      foundNode.vertex = @seekVertex(nodeid)
+
+      deferred.resolve(foundNode)
 
     deferred.promise
 
+  @seekVertex = (nodeid) ->
+    for vertex in currentJob.vertices
+      return vertex if vertex.id is nodeid
+
+    return null
+
 
-  @getVertex = (jobId, vertexId) ->
+  @getVertex = (vertexid) ->
     deferred = $q.defer()
 
-    $http.get flinkConfig.jobServer + "/jobsInfo?get=groupvertex&job=" + jobId + "&groupvertex=" + vertexId
-    .success (data) ->
-      deferred.resolve(data)
+    $q.all([deferreds.job.promise]).then (data) =>
+      vertex = @seekVertex(vertexid)
+
+      $http.get flinkConfig.jobServer + "/jobs/" + currentJob.jid + "/vertices/" + vertexid + "/subtasktimes"
+      .success (data) ->
+        vertex.subtasks = data.subtasks
+
+        deferred.resolve(vertex)
 
     deferred.promise
 

http://git-wip-us.apache.org/repos/asf/flink/blob/907f773c/flink-runtime-web/web-dashboard/app/scripts/modules/overview/overview.ctrl.coffee
----------------------------------------------------------------------
diff --git a/flink-runtime-web/web-dashboard/app/scripts/modules/overview/overview.ctrl.coffee b/flink-runtime-web/web-dashboard/app/scripts/modules/overview/overview.ctrl.coffee
index 828f276..dc8ab2c 100644
--- a/flink-runtime-web/web-dashboard/app/scripts/modules/overview/overview.ctrl.coffee
+++ b/flink-runtime-web/web-dashboard/app/scripts/modules/overview/overview.ctrl.coffee
@@ -18,7 +18,7 @@
 
 angular.module('flinkApp')
 
-.controller 'OverviewController', ($scope, OverviewService, JobsService) ->
+.controller 'OverviewController', ($scope, OverviewService, JobsService, $interval, flinkConfig) ->
   $scope.jobObserver = ->
     $scope.runningJobs = JobsService.getJobs('running')
     $scope.finishedJobs = JobsService.getJobs('finished')
@@ -31,3 +31,11 @@ angular.module('flinkApp')
 
   OverviewService.loadOverview().then (data) ->
     $scope.overview = data
+
+  refresh = $interval ->
+    OverviewService.loadOverview().then (data) ->
+      $scope.overview = data
+  , flinkConfig["refresh-interval"]
+
+  $scope.$on '$destroy', ->
+    $interval.cancel(refresh)