236 lines
12 KiB
JavaScript
236 lines
12 KiB
JavaScript
function yarnTab(cluster, title, queueNames = 'default', searchName = undefined) {
|
|
return {
|
|
title: `${title} 集群`,
|
|
tab: [
|
|
{
|
|
id: `${cluster}-yarn-service`,
|
|
name: `${cluster}-yarn-service`,
|
|
type: 'service',
|
|
body: [
|
|
{
|
|
type: 'tpl',
|
|
tpl: '<span class="font-bold text-xl">集群资源</span>',
|
|
},
|
|
{
|
|
type: 'crud',
|
|
api: {
|
|
method: 'get',
|
|
url: '${base}/yarn/queue_list',
|
|
data: {
|
|
clusters: `${cluster}`,
|
|
names: '${queueName|default:undefined}'
|
|
},
|
|
},
|
|
affixHeader: false,
|
|
defaultParams: {
|
|
queueName: queueNames,
|
|
},
|
|
interval: 10000,
|
|
syncLocation: false,
|
|
silentPolling: true,
|
|
headerToolbar: [
|
|
"reload",
|
|
],
|
|
columns: [
|
|
{
|
|
name: 'queueName',
|
|
label: '队列名称',
|
|
width: 130,
|
|
type: 'tooltip-wrapper',
|
|
body: '${TRUNCATE(queueName, 20)}',
|
|
content: '${queueName}',
|
|
},
|
|
{
|
|
label: '当前容量',
|
|
type: 'progress',
|
|
value: '${ROUND((absoluteUsedCapacity * 100 / absoluteMaxCapacity), 0)}',
|
|
stripe: true,
|
|
animate: true,
|
|
showLabel: false,
|
|
map: [
|
|
{
|
|
value: 30,
|
|
color: "#28a745"
|
|
}, {
|
|
value: 90,
|
|
color: "#007bff"
|
|
},
|
|
{
|
|
value: 100,
|
|
color: "#dc3545"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
label: '进度',
|
|
width: 35,
|
|
align: 'center',
|
|
type: 'tpl',
|
|
tpl: '${ROUND((absoluteUsedCapacity * 100 / absoluteMaxCapacity), 0)}%',
|
|
},
|
|
{
|
|
type: "operation",
|
|
label: "操作",
|
|
width: 100,
|
|
fixed: 'right',
|
|
buttons: [
|
|
{
|
|
label: "详情",
|
|
type: "button",
|
|
level: "link",
|
|
tooltip: '查看队列详情',
|
|
visibleOn: '${!root}',
|
|
actionType: 'dialog',
|
|
dialog: {
|
|
closeOnEsc: true,
|
|
closeOnOutside: true,
|
|
size: 'md',
|
|
close: true,
|
|
title: '队列详情',
|
|
body: {
|
|
type: 'property',
|
|
items: [
|
|
{label: 'CPU', content: '${resourcesUsed.vCores}'},
|
|
// 有空看看这个值的单位
|
|
{label: '内存', content: '${resourcesUsed.memory}', span: 2},
|
|
{label: '容量(%)', content: '${capacity}'},
|
|
{label: '最大容量(%)', content: '${maxCapacity}'},
|
|
{label: '已用容量(%)', content: '${usedCapacity}'},
|
|
{label: '绝对容量(%)', content: '${absoluteCapacity}'},
|
|
{label: '绝对最大容量(%)', content: '${absoluteMaxCapacity}'},
|
|
{label: '绝对已用容量(%)', content: '${absoluteUsedCapacity}'},
|
|
{label: '应用数量', content: '${numApplications}', span: 3},
|
|
{label: '最大应用数量', content: '${maxApplications}'},
|
|
{label: '活跃应用数量', content: '${numActiveApplications}'},
|
|
{label: '等待应用数量', content: '${numPendingApplications}'},
|
|
{label: '容器数量', content: '${numContainers}', span: 3},
|
|
{label: '已分配容器数量', content: '${numApplications}'},
|
|
{label: '预留容器数量数量', content: '${numApplications}'},
|
|
{label: '等待容器数量', content: '${numApplications}'},
|
|
]
|
|
},
|
|
actions: []
|
|
}
|
|
},
|
|
{
|
|
visibleOn: "${webUrl}",
|
|
label: "管理页面",
|
|
type: "action",
|
|
level: "link",
|
|
tooltip: '打开管理页面',
|
|
actionType: 'url',
|
|
url: '${webUrl}',
|
|
blank: true,
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
type: 'tpl',
|
|
tpl: '<span class="font-bold text-xl">集群任务</span>',
|
|
// className: 'mb-2 block',
|
|
},
|
|
{
|
|
type: 'crud',
|
|
api: {
|
|
method: 'get',
|
|
url: '${base}/yarn/job_list',
|
|
data: {
|
|
clusters: `${cluster}`,
|
|
page: '${page|default:undefined}',
|
|
count: '${perPage|default:undefined}',
|
|
order: '${orderBy|default:undefined}',
|
|
direction: '${orderDir|default:undefined}',
|
|
filter_state: '${state|default:undefined}',
|
|
filter_final_status: '${finalStatus|default:undefined}',
|
|
search_id: '${id|default:undefined}',
|
|
search_name: '${name|default:undefined}',
|
|
}
|
|
},
|
|
defaultParams: {
|
|
name: searchName
|
|
},
|
|
interval: 10000,
|
|
affixHeader: false,
|
|
syncLocation: false,
|
|
silentPolling: true,
|
|
itemBadge: {
|
|
text: 'Hudi',
|
|
mode: 'ribbon',
|
|
position: 'top-left',
|
|
level: 'info',
|
|
visibleOn: 'this.hudiApplication'
|
|
},
|
|
filter: {
|
|
mode: 'inline',
|
|
title: '任务筛选',
|
|
body: [
|
|
{
|
|
type: 'group',
|
|
body: [
|
|
{
|
|
type: 'input-text',
|
|
name: 'id',
|
|
label: 'ID',
|
|
clearable: true,
|
|
placeholder: '通过 ID 搜索',
|
|
size: 'md'
|
|
},
|
|
{
|
|
type: 'input-text',
|
|
name: 'name',
|
|
label: '名称',
|
|
clearable: true,
|
|
placeholder: '通过名称搜索',
|
|
size: 'md'
|
|
},
|
|
]
|
|
},
|
|
],
|
|
actions: [
|
|
{
|
|
type: "submit",
|
|
level: "primary",
|
|
label: "查询",
|
|
},
|
|
{
|
|
type: "reset",
|
|
label: "重置",
|
|
},
|
|
]
|
|
},
|
|
filterTogglable: true,
|
|
filterDefaultVisible: false,
|
|
stopAutoRefreshWhenModalIsOpen: true,
|
|
resizable: false,
|
|
perPage: 20,
|
|
headerToolbar: [
|
|
"reload",
|
|
'filter-toggler',
|
|
{
|
|
type: "tpl",
|
|
tpl: "共 <span class='text-primary font-bold'>${total|default:0}</span> 个任务,其中 <span class='text-success font-bold'>${running|default:0}</span> 个任务运行中,<span class='text-danger font-bold'>${unRunning|default:0}</span> 个任务处于非运行状态"
|
|
},
|
|
{
|
|
type: 'pagination',
|
|
layout: ['pager', 'perPage'],
|
|
maxButtons: 8,
|
|
showPageInput: false,
|
|
}
|
|
],
|
|
footerToolbar: [
|
|
{
|
|
type: 'pagination',
|
|
layout: ['pager', 'perPage'],
|
|
maxButtons: 8,
|
|
showPageInput: false,
|
|
}
|
|
],
|
|
columns: yarnCrudColumns(),
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
} |