feature(web): 增加历史压缩情况查询

This commit is contained in:
2023-06-14 15:21:21 +08:00
parent 58487be66a
commit 6abbd3d46a
5 changed files with 214 additions and 0 deletions

View File

@@ -751,6 +751,87 @@ function tableMetaDialog() {
actionType: 'dialog',
dialog: simpleYarnDialog('b1', '压缩详情', 'compactionJobName')
},
{
label: '历史压缩',
type: 'action',
icon: 'fa fa-list',
actionType: 'dialog',
dialog: {
title: 'Hudi 表时间线',
actions: [],
size: 'lg',
body: {
type: 'crud',
api: {
method: 'get',
url: '${base}/table/list_compaction_metrics',
data: {
page: '${page|default:undefined}',
count: '${perPage|default:undefined}',
order: '${orderBy|default:update_time}',
direction: '${orderDir|default:DESC}',
search_flink_job_id: '${flinkJobId|default:undefined}',
search_alias: '${tableMeta.alias|default:undefined}',
filter_completes: '${complete|default:undefined}',
},
defaultParams: {
filter_type: 'active',
},
},
...crudCommonOptions(),
perPage: 15,
headerToolbar: [
"reload",
paginationCommonOptions(),
],
footerToolbar: [
paginationCommonOptions(),
],
columns: [
{
name: 'compactionPlanInstant',
label: '压缩时间点',
width: 160,
...copyField('compactionPlanInstant')
},
{
name: 'cluster',
label: '集群',
width: 65,
align: 'center',
type: 'tpl',
tpl: '<span class="label label-info">${cluster}</span>'
},
{
name: 'applicationId',
label: '应用',
...copyField('applicationId')
},
{
name: 'complete',
label: '状态',
...mappingField('complete', compactionMetricsStateMapping),
filterable: filterableField(compactionMetricsStateMapping, false),
},
{
name: 'startedTime',
label: '启动时间',
...timeAndFrom('startedTime', 'startedTimeFromNow'),
sortable: true,
canAccessSuperData: false,
},
{
name: 'finishedTime',
label: '停止时间',
...timeAndFrom('finishedTime', 'finishedTimeFromNow'),
sortable: true,
align: 'center',
canAccessSuperData: false,
},
],
}
}
},
{
type: 'button',
label: '时间线',
@@ -1416,6 +1497,11 @@ let versionUpdateStateMapping = [
mappingItem('未跨天', 'false', 'label-danger'),
]
let compactionMetricsStateMapping = [
mappingItem('成功', 'true', 'label-success'),
mappingItem('失败', 'false', 'label-danger'),
]
function mappingField(field, mapping) {
let mapData = {
'*': `<span class='label bg-gray-300'>\${${field}}</span>`,