Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
doujutun3207
flink
提交
d7da7d4a
F
flink
项目概览
doujutun3207
/
flink
与 Fork 源项目一致
从无法访问的项目Fork
通知
24
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
flink
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d7da7d4a
编写于
11月 04, 2015
作者:
S
Sachin Goel
提交者:
Maximilian Michels
11月 10, 2015
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[FLINK-2966][web-dashboard] Improve the way job duration is reported
This closes #1327.
上级
e058abba
变更
14
隐藏空白更改
内联
并排
Showing
14 changed file
with
84 addition
and
17 deletion
+84
-17
flink-runtime-web/web-dashboard/app/partials/jobs/completed-jobs.jade
...e-web/web-dashboard/app/partials/jobs/completed-jobs.jade
+1
-1
flink-runtime-web/web-dashboard/app/partials/jobs/job.jade
flink-runtime-web/web-dashboard/app/partials/jobs/job.jade
+2
-2
flink-runtime-web/web-dashboard/app/partials/jobs/job.plan.node-list.overview.jade
...hboard/app/partials/jobs/job.plan.node-list.overview.jade
+1
-1
flink-runtime-web/web-dashboard/app/partials/jobs/job.plan.node.subtasks.jade
...b-dashboard/app/partials/jobs/job.plan.node.subtasks.jade
+1
-1
flink-runtime-web/web-dashboard/app/partials/jobs/running-jobs.jade
...ime-web/web-dashboard/app/partials/jobs/running-jobs.jade
+1
-1
flink-runtime-web/web-dashboard/app/partials/overview.jade
flink-runtime-web/web-dashboard/app/partials/overview.jade
+2
-2
flink-runtime-web/web-dashboard/app/scripts/common/filters.coffee
...ntime-web/web-dashboard/app/scripts/common/filters.coffee
+26
-0
flink-runtime-web/web-dashboard/web/js/index.js
flink-runtime-web/web-dashboard/web/js/index.js
+43
-2
flink-runtime-web/web-dashboard/web/partials/jobs/completed-jobs.html
...e-web/web-dashboard/web/partials/jobs/completed-jobs.html
+1
-1
flink-runtime-web/web-dashboard/web/partials/jobs/job.html
flink-runtime-web/web-dashboard/web/partials/jobs/job.html
+1
-1
flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node-list.overview.html
...hboard/web/partials/jobs/job.plan.node-list.overview.html
+1
-1
flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.subtasks.html
...b-dashboard/web/partials/jobs/job.plan.node.subtasks.html
+1
-1
flink-runtime-web/web-dashboard/web/partials/jobs/running-jobs.html
...ime-web/web-dashboard/web/partials/jobs/running-jobs.html
+1
-1
flink-runtime-web/web-dashboard/web/partials/overview.html
flink-runtime-web/web-dashboard/web/partials/overview.html
+2
-2
未找到文件。
flink-runtime-web/web-dashboard/app/partials/jobs/completed-jobs.jade
浏览文件 @
d7da7d4a
...
...
@@ -38,7 +38,7 @@ nav.navbar.navbar-default.navbar-fixed-top.navbar-main
tr(ng-repeat="job in jobs|orderBy:\"'end-time'\":true" ui-sref="single-job.plan.overview({ 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}} ms
td
(title="{{job.duration | humanizeDuration:false}}") {{job.duration | humanizeDuration:true}}
td {{job.name}}
td {{job.jid}}
td.label-group
...
...
flink-runtime-web/web-dashboard/app/partials/jobs/job.jade
浏览文件 @
d7da7d4a
...
...
@@ -36,8 +36,8 @@ nav.navbar.navbar-default.navbar-fixed-top.navbar-main(ng-if="job")
| -
| {{ job['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}
.navbar-info.last.first(ng-if="job.duration > -1")
| {{job.duration
}} ms
.navbar-info.last.first(ng-if="job.duration > -1"
title="{{job.duration | humanizeDuration:false}}"
)
| {{job.duration
| humanizeDuration:true}}
.navbar-info.last.first(ng-if="job.state=='RUNNING' || job.state=='CREATED'")
span.navbar-info-button.btn.btn-default(ng-click="cancelJob($event)")
...
...
flink-runtime-web/web-dashboard/app/partials/jobs/job.plan.node-list.overview.jade
浏览文件 @
d7da7d4a
...
...
@@ -36,7 +36,7 @@ table.table.table-body-hover.table-clickable.table-activable
td
span(ng-if="v['end-time'] > -1") {{ v['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}
td
span(ng-if="v.duration > -1"
) {{ v.duration }} ms
span(ng-if="v.duration > -1"
title="{{v.duration | humanizeDuration:false}}") {{v.duration | humanizeDuration:true}}
td.td-long {{ v.name | humanizeText }}
td {{ v.metrics['read-bytes'] | number }}
...
...
flink-runtime-web/web-dashboard/app/partials/jobs/job.plan.node.subtasks.jade
浏览文件 @
d7da7d4a
...
...
@@ -40,7 +40,7 @@ table.table.table-hover.table-clickable.table-activable.table-inner(ng-if="subta
td
span(ng-if="subtask['end-time'] > -1") {{ subtask['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}
td
span(ng-if="subtask.duration > -1"
) {{ subtask.duration }} ms
span(ng-if="subtask.duration > -1"
title="{{subtask.duration | humanizeDuration:false}}") {{subtask.duration | humanizeDuration:true}}
td
span(ng-if="subtask.metrics['read-bytes'] > -1") {{ subtask.metrics['read-bytes'] | number }}
...
...
flink-runtime-web/web-dashboard/app/partials/jobs/running-jobs.jade
浏览文件 @
d7da7d4a
...
...
@@ -38,7 +38,7 @@ nav.navbar.navbar-default.navbar-fixed-top.navbar-main
tr(ng-repeat="job in jobs|orderBy:\"'start-time'\"" ui-sref="single-job.plan.overview({ 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}} ms
td
(title="{{job.duration | humanizeDuration:false}}") {{job.duration | humanizeDuration:true}}
td {{job.name}}
td {{job.jid}}
td.label-group
...
...
flink-runtime-web/web-dashboard/app/partials/overview.jade
浏览文件 @
d7da7d4a
...
...
@@ -98,7 +98,7 @@ nav.navbar.navbar-default.navbar-fixed-top.navbar-main
tr(ng-repeat="job in runningJobs|orderBy:\"'start-time'\"" ui-sref="single-job.plan.overview({ 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}} ms
td
(title="{{job.duration | humanizeDuration:false}}") {{job.duration | humanizeDuration:true}}
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|orderBy:\"'end-time'\":true" ui-sref="single-job.plan.overview({ 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}} ms
td
(title="{{job.duration | humanizeDuration:false}}") {{job.duration | humanizeDuration:true}}
td {{job.name}}
td {{job.jid}}
td.label-group
...
...
flink-runtime-web/web-dashboard/app/scripts/common/filters.coffee
浏览文件 @
d7da7d4a
...
...
@@ -28,6 +28,32 @@ angular.module('flinkApp')
amDurationFormatExtendedFilter
.
filter
"humanizeDuration"
,
->
(
value
,
short
)
->
return
""
if
typeof
value
is
"undefined"
or
value
is
null
ms
=
value
%
1000
x
=
Math
.
floor
(
value
/
1000
)
seconds
=
x
%
60
x
=
Math
.
floor
(
x
/
60
)
minutes
=
x
%
60
x
=
Math
.
floor
(
x
/
60
)
hours
=
x
%
24
x
=
Math
.
floor
(
x
/
24
)
days
=
x
if
days
==
0
if
hours
==
0
if
minutes
==
0
if
seconds
==
0
return
ms
+
"ms"
else
return
seconds
+
"s "
else
return
minutes
+
"m "
+
seconds
+
"s"
else
if
short
then
return
hours
+
"h "
+
minutes
+
"m"
else
return
hours
+
"h "
+
minutes
+
"m "
+
seconds
+
"s"
else
if
short
then
return
days
+
"d "
+
hours
+
"h"
else
return
days
+
"d "
+
hours
+
"h "
+
minutes
+
"m "
+
seconds
+
"s"
.
filter
"humanizeText"
,
->
(
text
)
->
# TODO: extend... a lot
...
...
flink-runtime-web/web-dashboard/web/js/index.js
浏览文件 @
d7da7d4a
因为 它太大了无法显示 source diff 。你可以改为
查看blob
。
flink-runtime-web/web-dashboard/web/partials/jobs/completed-jobs.html
浏览文件 @
d7da7d4a
...
...
@@ -38,7 +38,7 @@ limitations under the License.
<tr
ng-repeat=
"job in jobs|orderBy:"'end-time'":true"
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
title=
"{{job.duration | humanizeDuration:false}}"
>
{{job.duration | humanizeDuration:true}}
</td>
<td>
{{job.name}}
</td>
<td>
{{job.jid}}
</td>
<td
class=
"label-group"
>
...
...
flink-runtime-web/web-dashboard/web/partials/jobs/job.html
浏览文件 @
d7da7d4a
...
...
@@ -31,7 +31,7 @@ limitations under the License.
<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'] > -1"
>
-
{{ job['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}
</span></div>
<div
ng-if=
"job.duration > -1"
class=
"navbar-info last first"
>
{{job.duration}} ms
</div>
<div
ng-if=
"job.duration > -1"
title=
"{{job.duration | humanizeDuration:false}}"
class=
"navbar-info last first"
>
{{job.duration | humanizeDuration:true}}
</div>
<div
ng-if=
"job.state=='RUNNING' || job.state=='CREATED'"
class=
"navbar-info last first"
><span
ng-click=
"cancelJob($event)"
class=
"navbar-info-button btn btn-default"
>
Cancel
</span></div>
</nav>
<nav
ng-if=
"job"
class=
"navbar navbar-default navbar-fixed-top navbar-main-additional"
>
...
...
flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node-list.overview.html
浏览文件 @
d7da7d4a
...
...
@@ -36,7 +36,7 @@ limitations under the License.
<tr
ng-if=
"v.type == 'regular'"
>
<td><span
ng-if=
"v['start-time'] > -1"
>
{{ v['start-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}
</span></td>
<td><span
ng-if=
"v['end-time'] > -1"
>
{{ v['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}
</span></td>
<td><span
ng-if=
"v.duration > -1"
>
{{ v.duration }} ms
</span></td>
<td><span
ng-if=
"v.duration > -1"
title=
"{{v.duration | humanizeDuration:false}}"
>
{{v.duration | humanizeDuration:true}}
</span></td>
<td
class=
"td-long"
>
{{ v.name | humanizeText }}
</td>
<td>
{{ v.metrics['read-bytes'] | number }}
</td>
<td>
{{ v.metrics['read-records'] | number }}
</td>
...
...
flink-runtime-web/web-dashboard/web/partials/jobs/job.plan.node.subtasks.html
浏览文件 @
d7da7d4a
...
...
@@ -37,7 +37,7 @@ limitations under the License.
<tr
ng-repeat=
"subtask in subtasks"
>
<td><span
ng-if=
"subtask['start-time'] > -1"
>
{{ subtask['start-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}
</span></td>
<td><span
ng-if=
"subtask['end-time'] > -1"
>
{{ subtask['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss' }}
</span></td>
<td><span
ng-if=
"subtask.duration > -1"
>
{{ subtask.duration }} ms
</span></td>
<td><span
ng-if=
"subtask.duration > -1"
title=
"{{subtask.duration | humanizeDuration:false}}"
>
{{subtask.duration | humanizeDuration:true}}
</span></td>
<td><span
ng-if=
"subtask.metrics['read-bytes'] > -1"
>
{{ subtask.metrics['read-bytes'] | number }}
</span></td>
<td><span
ng-if=
"subtask.metrics['read-records'] > -1"
>
{{ subtask.metrics['read-records'] | number }}
</span></td>
<td><span
ng-if=
"subtask.metrics['write-bytes'] > -1"
>
{{ subtask.metrics['write-bytes'] | number }}
</span></td>
...
...
flink-runtime-web/web-dashboard/web/partials/jobs/running-jobs.html
浏览文件 @
d7da7d4a
...
...
@@ -38,7 +38,7 @@ limitations under the License.
<tr
ng-repeat=
"job in jobs|orderBy:"'start-time'""
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
title=
"{{job.duration | humanizeDuration:false}}"
>
{{job.duration | humanizeDuration:true}}
</td>
<td>
{{job.name}}
</td>
<td>
{{job.jid}}
</td>
<td
class=
"label-group"
>
...
...
flink-runtime-web/web-dashboard/web/partials/overview.html
浏览文件 @
d7da7d4a
...
...
@@ -95,7 +95,7 @@ limitations under the License.
<tr
ng-repeat=
"job in runningJobs|orderBy:"'start-time'""
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
title=
"{{job.duration | humanizeDuration:false}}"
>
{{job.duration | humanizeDuration:true}}
</td>
<td>
{{job.name}}
</td>
<td>
{{job.jid}}
</td>
<td
class=
"label-group"
>
...
...
@@ -130,7 +130,7 @@ limitations under the License.
<tr
ng-repeat=
"job in finishedJobs|orderBy:"'end-time'":true"
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
title=
"{{job.duration | humanizeDuration:false}}"
>
{{job.duration | humanizeDuration:true}}
</td>
<td>
{{job.name}}
</td>
<td>
{{job.jid}}
</td>
<td
class=
"label-group"
>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录