baoliang
6 years ago
47 changed files with 1065 additions and 600 deletions
@ -1,54 +0,0 @@
|
||||
-- 用户指定队列 |
||||
alter table t_escheduler_user add queue varchar(64); |
||||
|
||||
-- 访问token |
||||
CREATE TABLE `t_escheduler_access_token` ( |
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', |
||||
`user_id` int(11) DEFAULT NULL COMMENT '用户id', |
||||
`token` varchar(64) DEFAULT NULL COMMENT 'token令牌', |
||||
`expire_time` datetime DEFAULT NULL COMMENT 'token有效结束时间', |
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间', |
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间', |
||||
PRIMARY KEY (`id`) |
||||
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; |
||||
|
||||
CREATE TABLE `t_escheduler_error_command` ( |
||||
`id` int(11) NOT NULL COMMENT '主键', |
||||
`command_type` tinyint(4) NULL DEFAULT NULL COMMENT '命令类型:0 启动工作流,1 从当前节点开始执行,2 恢复被容错的工作流,3 恢复暂停流程,4 从失败节点开始执行,5 补数,6 调度,7 重跑,8 暂停,9 停止,10 恢复等待线程', |
||||
`executor_id` int(11) NULL DEFAULT NULL COMMENT '命令执行者', |
||||
`process_definition_id` int(11) NULL DEFAULT NULL COMMENT '流程定义id', |
||||
`command_param` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '命令的参数(json格式)', |
||||
`task_depend_type` tinyint(4) NULL DEFAULT NULL COMMENT '节点依赖类型', |
||||
`failure_strategy` tinyint(4) NULL DEFAULT 0 COMMENT '失败策略:0结束,1继续', |
||||
`warning_type` tinyint(4) NULL DEFAULT 0 COMMENT '告警类型', |
||||
`warning_group_id` int(11) NULL DEFAULT NULL COMMENT '告警组', |
||||
`schedule_time` datetime(0) NULL DEFAULT NULL COMMENT '预期运行时间', |
||||
`start_time` datetime(0) NULL DEFAULT NULL COMMENT '开始时间', |
||||
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', |
||||
`dependence` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '依赖字段', |
||||
`process_instance_priority` int(11) NULL DEFAULT NULL COMMENT '流程实例优先级:0 Highest,1 High,2 Medium,3 Low,4 Lowest', |
||||
`message` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '执行信息', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
|
||||
CREATE TABLE `t_escheduler_worker_group` ( |
||||
`id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT 'id', |
||||
`name` varchar(256) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL COMMENT '组名称', |
||||
`ip_list` varchar(256) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL COMMENT 'worker地址列表', |
||||
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', |
||||
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', |
||||
PRIMARY KEY (`id`) USING BTREE |
||||
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; |
||||
|
||||
ALTER TABLE `t_escheduler_task_instance` |
||||
ADD COLUMN `worker_group_id` int(11) NULL DEFAULT -1 COMMENT '任务指定运行的worker分组' AFTER `task_instance_priority`; |
||||
|
||||
ALTER TABLE `t_escheduler_command` |
||||
ADD COLUMN `worker_group_id` int(11) NULL DEFAULT -1 COMMENT '任务指定运行的worker分组' NULL AFTER `process_instance_priority`; |
||||
|
||||
ALTER TABLE `t_escheduler_error_command` |
||||
ADD COLUMN `worker_group_id` int(11) NULL DEFAULT -1 COMMENT '任务指定运行的worker分组' NULL AFTER `process_instance_priority`; |
||||
|
||||
ALTER TABLE `t_escheduler_schedules` |
||||
ADD COLUMN `worker_group_id` int(11) NULL DEFAULT -1 COMMENT '任务指定运行的worker分组' NULL AFTER `process_instance_priority`; |
@ -0,0 +1,62 @@
|
||||
<template> |
||||
<div class="gauge-model"> |
||||
<div class="gauge-echart"> |
||||
<div :id="id" style="height: 380px;"></div> |
||||
</div> |
||||
<div class="text-1" style="margin-top: -104px;"> |
||||
{{name}} |
||||
</div> |
||||
</div> |
||||
</template> |
||||
<script> |
||||
import gaugeOption from './gaugeOption' |
||||
|
||||
export default { |
||||
name: 'gauge', |
||||
data () { |
||||
return {} |
||||
}, |
||||
props: { |
||||
id: String, |
||||
name: String, |
||||
value: Number |
||||
}, |
||||
methods: {}, |
||||
created () { |
||||
}, |
||||
mounted () { |
||||
const gauge = echarts.init(document.getElementById(this.id)) // eslint-disable-line |
||||
gauge.setOption(gaugeOption(this.value), true) |
||||
}, |
||||
components: {} |
||||
} |
||||
</script> |
||||
|
||||
<style lang="scss" rel="stylesheet/scss"> |
||||
.gauge-model { |
||||
width: 100%; |
||||
height: 360px; |
||||
overflow: hidden; |
||||
margin: 0 auto; |
||||
.gauge-echart { |
||||
width: 350px; |
||||
margin: auto; |
||||
margin-bottom: -80px; |
||||
} |
||||
.text-1 { |
||||
width: 100%; |
||||
margin: 0 auto; |
||||
font-size: 32px; |
||||
text-align: center; |
||||
} |
||||
.value-p { |
||||
height: 254px; |
||||
line-height: 254px; |
||||
text-align: center; |
||||
>b { |
||||
font-size: 100px; |
||||
color: #333; |
||||
} |
||||
} |
||||
} |
||||
</style> |
@ -1,81 +0,0 @@
|
||||
<template> |
||||
<div class="list-model"> |
||||
<div class="table-box"> |
||||
<table> |
||||
<tr> |
||||
<th> |
||||
<span>{{$t('#')}}</span> |
||||
</th> |
||||
<th> |
||||
<span>node</span> |
||||
</th> |
||||
<th> |
||||
<span>ip</span> |
||||
</th> |
||||
<th> |
||||
<span>模式</span> |
||||
</th> |
||||
<th> |
||||
<span>连接数</span> |
||||
</th> |
||||
<th> |
||||
<span>watch数</span> |
||||
</th> |
||||
<th> |
||||
<span>数据量</span> |
||||
</th> |
||||
<th> |
||||
<span>Sent/Received</span> |
||||
</th> |
||||
<th> |
||||
<span>节点自检状态</span> |
||||
</th> |
||||
</tr> |
||||
<tr v-for="(item, $index) in list" :key="$index"> |
||||
<td> |
||||
<span>{{$index + 1}}</span> |
||||
</td> |
||||
<td> |
||||
<span> |
||||
<a href="javascript:" class="links">task1</a> |
||||
</span> |
||||
</td> |
||||
<td><span>192.11.1.1</span></td> |
||||
<td> |
||||
<span>2222</span> |
||||
</td> |
||||
<td> |
||||
<span>3333</span> |
||||
</td> |
||||
<td> |
||||
<span>4444</span> |
||||
</td> |
||||
<td><span>5555</span></td> |
||||
<td> |
||||
<span>6666</span> |
||||
</td> |
||||
<td> |
||||
<span>7777</span> |
||||
</td> |
||||
</tr> |
||||
</table> |
||||
</div> |
||||
</div> |
||||
</template> |
||||
<script> |
||||
import '@/module/filter/formatDate' |
||||
|
||||
export default { |
||||
name: 'tenement-list', |
||||
data () { |
||||
return { |
||||
list: [] |
||||
} |
||||
}, |
||||
props: { |
||||
list: Array |
||||
}, |
||||
methods: { |
||||
} |
||||
} |
||||
</script> |
@ -0,0 +1,125 @@
|
||||
<template> |
||||
<div class="list-model zookeeper-list"> |
||||
<div class="table-box"> |
||||
<table> |
||||
<tr> |
||||
<th> |
||||
<span>{{$t('#')}}</span> |
||||
</th> |
||||
<th> |
||||
<span>host</span> |
||||
</th> |
||||
<th> |
||||
<span>连接数</span> |
||||
</th> |
||||
<th> |
||||
<span>watches数量</span> |
||||
</th> |
||||
<th> |
||||
<span>发送量</span> |
||||
</th> |
||||
<th> |
||||
<span>接收量</span> |
||||
</th> |
||||
<th> |
||||
<span>leader/follower</span> |
||||
</th> |
||||
<th> |
||||
<span>最低延时</span> |
||||
</th> |
||||
<th> |
||||
<span>平均延时</span> |
||||
</th> |
||||
<th> |
||||
<span>最大延时</span> |
||||
</th> |
||||
<th> |
||||
<span>节点数</span> |
||||
</th> |
||||
<th> |
||||
<span>当前查询时间戳</span> |
||||
</th> |
||||
<th style="text-align: center"> |
||||
<span>节点自检状态</span> |
||||
</th> |
||||
</tr> |
||||
<tr v-for="(item, $index) in list" :key="$index"> |
||||
<td> |
||||
<span>{{$index + 1}}</span> |
||||
</td> |
||||
<td> |
||||
<span> |
||||
<a href="javascript:" class="links">{{item.hostname}}</a> |
||||
</span> |
||||
</td> |
||||
<td><span>{{item.connections}}</span></td> |
||||
<td> |
||||
<span>{{item.watches}}</span> |
||||
</td> |
||||
<td> |
||||
<span>{{item.sent}}</span> |
||||
</td> |
||||
<td> |
||||
<span>{{item.received}}</span> |
||||
</td> |
||||
<td><span>{{item.mode}}</span></td> |
||||
<td> |
||||
<span>{{item.minLatency}}</span> |
||||
</td> |
||||
<td> |
||||
<span>{{item.avgLatency}}</span> |
||||
</td> |
||||
<td> |
||||
<span>{{item.maxLatency}}</span> |
||||
</td> |
||||
<td> |
||||
<span>{{item.nodeCount}}</span> |
||||
</td> |
||||
<td> |
||||
<span>{{item.date | formatDate}}</span> |
||||
</td> |
||||
<td> |
||||
<span class="state"> |
||||
<i class="iconfont success" v-if="item.state"></i> |
||||
<i class="iconfont error" v-else></i> |
||||
</span> |
||||
</td> |
||||
</tr> |
||||
</table> |
||||
</div> |
||||
</div> |
||||
</template> |
||||
<script> |
||||
export default { |
||||
name: 'zookeeper-list', |
||||
data () { |
||||
return { |
||||
list: [] |
||||
} |
||||
}, |
||||
props: { |
||||
list: Array |
||||
}, |
||||
methods: { |
||||
} |
||||
} |
||||
</script> |
||||
|
||||
<style lang="scss" rel="stylesheet/scss"> |
||||
.zookeeper-list { |
||||
.state { |
||||
text-align: center; |
||||
display: block; |
||||
>i { |
||||
font-size: 18px; |
||||
} |
||||
.success { |
||||
color: #33cc00; |
||||
} |
||||
.error { |
||||
color: #ff0000; |
||||
} |
||||
} |
||||
} |
||||
</style> |
||||
|
@ -0,0 +1,57 @@
|
||||
/* |
||||
* 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. |
||||
*/ |
||||
|
||||
import io from '@/module/io' |
||||
|
||||
export default { |
||||
getMasterData ({ state }, payload) { |
||||
return new Promise((resolve, reject) => { |
||||
io.get(`monitor/master/list`, payload, res => { |
||||
resolve(res.data) |
||||
}).catch(e => { |
||||
reject(e) |
||||
}) |
||||
}) |
||||
}, |
||||
getWorkerData ({ state }, payload) { |
||||
return new Promise((resolve, reject) => { |
||||
io.get(`monitor/worker/list`, payload, res => { |
||||
resolve(res.data) |
||||
}).catch(e => { |
||||
reject(e) |
||||
}) |
||||
}) |
||||
}, |
||||
getDatabaseData ({ state }, payload) { |
||||
return new Promise((resolve, reject) => { |
||||
io.get(`monitor/database`, payload, res => { |
||||
resolve(res.data) |
||||
}).catch(e => { |
||||
reject(e) |
||||
}) |
||||
}) |
||||
}, |
||||
getZookeeperData ({ state }, payload) { |
||||
return new Promise((resolve, reject) => { |
||||
io.get(`monitor/zookeeper/list`, payload, res => { |
||||
resolve(res.data) |
||||
}).catch(e => { |
||||
reject(e) |
||||
}) |
||||
}) |
||||
} |
||||
} |
@ -0,0 +1,19 @@
|
||||
/* |
||||
* 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. |
||||
*/ |
||||
|
||||
export default { |
||||
} |
@ -0,0 +1,30 @@
|
||||
/* |
||||
* 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. |
||||
*/ |
||||
|
||||
import actions from './actions' |
||||
import getters from './getters' |
||||
import mutations from './mutations' |
||||
import state from './state' |
||||
|
||||
export default { |
||||
strict: true, |
||||
namespaced: true, |
||||
state, |
||||
getters, |
||||
mutations, |
||||
actions |
||||
} |
@ -0,0 +1,19 @@
|
||||
/* |
||||
* 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. |
||||
*/ |
||||
|
||||
export default { |
||||
} |
@ -0,0 +1,18 @@
|
||||
/* |
||||
* 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. |
||||
*/ |
||||
export default { |
||||
} |
Loading…
Reference in new issue