Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
H
holmes
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
QA
holmes
Commits
0b6b9a2f
Commit
0b6b9a2f
authored
Dec 30, 2021
by
黎博
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改表名及接口url
parent
c2145f1f
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
150 additions
and
114 deletions
+150
-114
QuartzInitRunner.java
src/main/java/cn/qg/holmes/config/QuartzInitRunner.java
+7
-7
SqlMonitorDataSourceController.java
...es/controller/monitor/SqlMonitorDataSourceController.java
+21
-21
SqlMonitorTaskController.java
...g/holmes/controller/monitor/SqlMonitorTaskController.java
+37
-37
SqlMonitorDataSource.java
...ava/cn/qg/holmes/entity/monitor/SqlMonitorDataSource.java
+2
-2
SqlMonitorTask.java
...main/java/cn/qg/holmes/entity/monitor/SqlMonitorTask.java
+2
-2
SqlMonitorDataSourceMapper.java
.../qg/holmes/mapper/monitor/SqlMonitorDataSourceMapper.java
+7
-0
SqlMonitorTaskMapper.java
...ava/cn/qg/holmes/mapper/monitor/SqlMonitorTaskMapper.java
+7
-0
SqlMonitorTask.java
src/main/java/cn/qg/holmes/quartz/SqlMonitorTask.java
+13
-14
MonitorService.java
...ain/java/cn/qg/holmes/service/monitor/MonitorService.java
+0
-8
SqlMonitorDataSourceService.java
...g/holmes/service/monitor/SqlMonitorDataSourceService.java
+10
-0
SqlMonitorTaskService.java
...a/cn/qg/holmes/service/monitor/SqlMonitorTaskService.java
+8
-0
MonitorServiceImpl.java
...cn/qg/holmes/service/monitor/impl/MonitorServiceImpl.java
+0
-11
SqlMonitorDataSourceServiceImpl.java
...service/monitor/impl/SqlMonitorDataSourceServiceImpl.java
+13
-0
SqlMonitorTaskServiceImpl.java
...olmes/service/monitor/impl/SqlMonitorTaskServiceImpl.java
+11
-0
QuartzUtils.java
src/main/java/cn/qg/holmes/utils/QuartzUtils.java
+12
-12
No files found.
src/main/java/cn/qg/holmes/config/QuartzInitRunner.java
View file @
0b6b9a2f
package
cn
.
qg
.
holmes
.
config
;
import
cn.qg.holmes.entity.monitor.MonitorTask
;
import
cn.qg.holmes.service.monitor.MonitorTaskService
;
import
cn.qg.holmes.entity.monitor.
Sql
MonitorTask
;
import
cn.qg.holmes.service.monitor.
Sql
MonitorTaskService
;
import
cn.qg.holmes.utils.QuartzUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.quartz.Scheduler
;
...
...
@@ -22,17 +22,17 @@ import java.util.List;
public
class
QuartzInitRunner
implements
ApplicationRunner
{
@Autowired
MonitorTaskService
m
onitorTaskService
;
SqlMonitorTaskService
sqlM
onitorTaskService
;
@Autowired
private
Scheduler
scheduler
;
@Override
public
void
run
(
ApplicationArguments
args
)
{
List
<
MonitorTask
>
monitorTaskList
=
m
onitorTaskService
.
list
();
for
(
MonitorTask
monitorTask:
m
onitorTaskList
)
{
if
(
m
onitorTask
.
getStatus
()
==
1
)
{
QuartzUtils
.
createS
cheduleJob
(
scheduler
,
m
onitorTask
);
List
<
SqlMonitorTask
>
sqlMonitorTaskList
=
sqlM
onitorTaskService
.
list
();
for
(
SqlMonitorTask
sqlMonitorTask
:
sqlM
onitorTaskList
)
{
if
(
sqlM
onitorTask
.
getStatus
()
==
1
)
{
QuartzUtils
.
createS
qlScheduleJob
(
scheduler
,
sqlM
onitorTask
);
}
}
}
...
...
src/main/java/cn/qg/holmes/controller/monitor/MonitorDataSourceController.java
→
src/main/java/cn/qg/holmes/controller/monitor/
Sql
MonitorDataSourceController.java
View file @
0b6b9a2f
package
cn
.
qg
.
holmes
.
controller
.
monitor
;
import
cn.qg.holmes.common.JsonResult
;
import
cn.qg.holmes.entity.monitor.MonitorDataSource
;
import
cn.qg.holmes.service.monitor.MonitorDataSourceService
;
import
cn.qg.holmes.entity.monitor.
Sql
MonitorDataSource
;
import
cn.qg.holmes.service.monitor.
Sql
MonitorDataSourceService
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
...
...
@@ -19,10 +19,10 @@ import java.util.Map;
@CrossOrigin
@RestController
@RequestMapping
(
"/monitor/ds"
)
public
class
MonitorDataSourceController
{
public
class
Sql
MonitorDataSourceController
{
@Autowired
MonitorDataSourceService
m
onitorDataSourceService
;
SqlMonitorDataSourceService
sqlM
onitorDataSourceService
;
/**
* 获取监控数据源列表,带分页和筛选
...
...
@@ -35,12 +35,12 @@ public class MonitorDataSourceController {
public
JsonResult
getMonitorDataSourceListWithPaging
(
@RequestParam
(
defaultValue
=
"1"
)
Integer
pageNum
,
@RequestParam
(
defaultValue
=
"10"
)
Integer
pageSize
,
String
dsName
)
{
IPage
<
MonitorDataSource
>
IPageParam
=
new
Page
<>(
pageNum
,
pageSize
);
QueryWrapper
<
MonitorDataSource
>
queryWrapper
=
new
QueryWrapper
<>();
IPage
<
Sql
MonitorDataSource
>
IPageParam
=
new
Page
<>(
pageNum
,
pageSize
);
QueryWrapper
<
Sql
MonitorDataSource
>
queryWrapper
=
new
QueryWrapper
<>();
if
(!
StringUtils
.
isEmpty
(
dsName
))
{
queryWrapper
.
eq
(
"name"
,
dsName
);
}
IPage
<
MonitorDataSource
>
IPageResult
=
m
onitorDataSourceService
.
page
(
IPageParam
);
IPage
<
SqlMonitorDataSource
>
IPageResult
=
sqlM
onitorDataSourceService
.
page
(
IPageParam
);
Map
<
String
,
Object
>
dsResult
=
new
HashMap
<>();
dsResult
.
put
(
"total"
,
IPageResult
.
getTotal
());
dsResult
.
put
(
"list"
,
IPageResult
.
getRecords
());
...
...
@@ -53,50 +53,50 @@ public class MonitorDataSourceController {
*/
@GetMapping
(
"/list"
)
public
JsonResult
getMonitorDataSourceList
()
{
return
JsonResult
.
buildSuccessResult
(
m
onitorDataSourceService
.
list
());
return
JsonResult
.
buildSuccessResult
(
sqlM
onitorDataSourceService
.
list
());
}
/**
* 添加监控数据源
* @param
m
onitorDataSource
* @param
sqlM
onitorDataSource
* @return
*/
@PostMapping
(
"/add"
)
public
JsonResult
addMonitorDataSource
(
@RequestBody
MonitorDataSource
m
onitorDataSource
)
{
return
JsonResult
.
buildSuccessResult
(
monitorDataSourceService
.
saveOrUpdate
(
m
onitorDataSource
));
public
JsonResult
addMonitorDataSource
(
@RequestBody
SqlMonitorDataSource
sqlM
onitorDataSource
)
{
return
JsonResult
.
buildSuccessResult
(
sqlMonitorDataSourceService
.
saveOrUpdate
(
sqlM
onitorDataSource
));
}
/**
* 更新监控数据源
* @param
m
onitorDataSource
* @param
sqlM
onitorDataSource
* @return
*/
@PostMapping
(
"/update"
)
public
JsonResult
updateMonitorDataSource
(
@RequestBody
MonitorDataSource
m
onitorDataSource
)
{
Integer
dsId
=
m
onitorDataSource
.
getId
();
public
JsonResult
updateMonitorDataSource
(
@RequestBody
SqlMonitorDataSource
sqlM
onitorDataSource
)
{
Integer
dsId
=
sqlM
onitorDataSource
.
getId
();
if
(
dsId
==
null
)
{
return
JsonResult
.
buildErrorStateResult
(
"数据源不存在!"
,
null
);
}
if
(
m
onitorDataSourceService
.
getById
(
dsId
)
==
null
)
{
if
(
sqlM
onitorDataSourceService
.
getById
(
dsId
)
==
null
)
{
return
JsonResult
.
buildErrorStateResult
(
"数据源不存在"
,
null
);
}
return
JsonResult
.
buildSuccessResult
(
monitorDataSourceService
.
saveOrUpdate
(
m
onitorDataSource
));
return
JsonResult
.
buildSuccessResult
(
sqlMonitorDataSourceService
.
saveOrUpdate
(
sqlM
onitorDataSource
));
}
/**
* 删除监控数据源
* @param
m
onitorDataSource
* @param
sqlM
onitorDataSource
* @return
*/
@PostMapping
(
"/delete"
)
public
JsonResult
deleteMonitorDataSource
(
@RequestBody
MonitorDataSource
m
onitorDataSource
)
{
Integer
dsId
=
m
onitorDataSource
.
getId
();
public
JsonResult
deleteMonitorDataSource
(
@RequestBody
SqlMonitorDataSource
sqlM
onitorDataSource
)
{
Integer
dsId
=
sqlM
onitorDataSource
.
getId
();
if
(
dsId
==
null
)
{
return
JsonResult
.
buildErrorStateResult
(
"数据源不存在!"
,
null
);
}
if
(
m
onitorDataSourceService
.
getById
(
dsId
)
==
null
)
{
if
(
sqlM
onitorDataSourceService
.
getById
(
dsId
)
==
null
)
{
return
JsonResult
.
buildErrorStateResult
(
"数据源不存在"
,
null
);
}
return
JsonResult
.
buildSuccessResult
(
m
onitorDataSourceService
.
getById
(
dsId
));
return
JsonResult
.
buildSuccessResult
(
sqlM
onitorDataSourceService
.
getById
(
dsId
));
}
}
src/main/java/cn/qg/holmes/controller/monitor/MonitorTaskController.java
→
src/main/java/cn/qg/holmes/controller/monitor/
Sql
MonitorTaskController.java
View file @
0b6b9a2f
package
cn
.
qg
.
holmes
.
controller
.
monitor
;
import
cn.qg.holmes.common.JsonResult
;
import
cn.qg.holmes.entity.monitor.MonitorDataSource
;
import
cn.qg.holmes.entity.monitor.MonitorTask
;
import
cn.qg.holmes.service.monitor.MonitorDataSourceService
;
import
cn.qg.holmes.service.monitor.MonitorTaskService
;
import
cn.qg.holmes.entity.monitor.
Sql
MonitorDataSource
;
import
cn.qg.holmes.entity.monitor.
Sql
MonitorTask
;
import
cn.qg.holmes.service.monitor.
Sql
MonitorDataSourceService
;
import
cn.qg.holmes.service.monitor.
Sql
MonitorTaskService
;
import
cn.qg.holmes.utils.DingdingUtils
;
import
cn.qg.holmes.utils.JdbcUtils
;
import
com.alibaba.fastjson.JSON
;
...
...
@@ -25,14 +25,14 @@ import java.util.Map;
*/
@CrossOrigin
@RestController
@RequestMapping
(
"/
monitor/task
"
)
public
class
MonitorTaskController
{
@RequestMapping
(
"/
sql/monitor
"
)
public
class
Sql
MonitorTaskController
{
@Autowired
MonitorTaskService
m
onitorTaskService
;
SqlMonitorTaskService
sqlM
onitorTaskService
;
@Autowired
MonitorDataSourceService
m
onitorDataSourceService
;
SqlMonitorDataSourceService
sqlM
onitorDataSourceService
;
@Autowired
JdbcTemplate
jdbcTemplate
;
...
...
@@ -50,7 +50,7 @@ public class MonitorTaskController {
@RequestParam
(
defaultValue
=
"10"
)
Integer
pageSize
,
@RequestParam
String
serviceName
,
@RequestParam
String
taskName
)
{
QueryWrapper
<
MonitorTask
>
queryWrapper
=
new
QueryWrapper
<>();
QueryWrapper
<
Sql
MonitorTask
>
queryWrapper
=
new
QueryWrapper
<>();
if
(!
StringUtils
.
isEmpty
(
serviceName
))
{
queryWrapper
.
eq
(
"service_name"
,
serviceName
);
}
...
...
@@ -58,14 +58,14 @@ public class MonitorTaskController {
queryWrapper
.
eq
(
"task_name"
,
taskName
);
}
queryWrapper
.
orderByDesc
(
"id"
);
IPage
<
MonitorTask
>
pageParam
=
new
Page
<>(
pageNum
,
pageSize
);
IPage
<
MonitorTask
>
monitorTaskIPage
=
m
onitorTaskService
.
page
(
pageParam
,
queryWrapper
);
List
<
MonitorTask
>
m
onitorTaskList
=
monitorTaskIPage
.
getRecords
();
for
(
MonitorTask
monitorTask:
m
onitorTaskList
)
{
monitorTask
.
setDsName
(
monitorDataSourceService
.
getById
(
m
onitorTask
.
getDsId
()).
getName
());
IPage
<
Sql
MonitorTask
>
pageParam
=
new
Page
<>(
pageNum
,
pageSize
);
IPage
<
SqlMonitorTask
>
monitorTaskIPage
=
sqlM
onitorTaskService
.
page
(
pageParam
,
queryWrapper
);
List
<
SqlMonitorTask
>
sqlM
onitorTaskList
=
monitorTaskIPage
.
getRecords
();
for
(
SqlMonitorTask
sqlMonitorTask
:
sqlM
onitorTaskList
)
{
sqlMonitorTask
.
setDsName
(
sqlMonitorDataSourceService
.
getById
(
sqlM
onitorTask
.
getDsId
()).
getName
());
}
Map
<
String
,
Object
>
resultMap
=
new
HashMap
<>();
resultMap
.
put
(
"list"
,
m
onitorTaskList
);
resultMap
.
put
(
"list"
,
sqlM
onitorTaskList
);
resultMap
.
put
(
"total"
,
monitorTaskIPage
.
getTotal
());
return
JsonResult
.
buildSuccessResult
(
resultMap
);
}
...
...
@@ -73,38 +73,38 @@ public class MonitorTaskController {
/**
* 新增监控
*
* @param
m
onitorTask
* @param
sqlM
onitorTask
* @return
*/
@PostMapping
(
"/add"
)
public
JsonResult
addMonitorTask
(
@RequestBody
MonitorTask
m
onitorTask
)
{
return
JsonResult
.
buildSuccessResult
(
monitorTaskService
.
save
(
m
onitorTask
));
public
JsonResult
addMonitorTask
(
@RequestBody
SqlMonitorTask
sqlM
onitorTask
)
{
return
JsonResult
.
buildSuccessResult
(
sqlMonitorTaskService
.
save
(
sqlM
onitorTask
));
}
/**
* 修改监控
*
* @param
m
onitorTask
* @param
sqlM
onitorTask
* @return
*/
@PostMapping
(
"/edit"
)
public
JsonResult
editMonitorTask
(
@RequestBody
MonitorTask
m
onitorTask
)
{
return
JsonResult
.
buildSuccessResult
(
monitorTaskService
.
saveOrUpdate
(
m
onitorTask
));
public
JsonResult
editMonitorTask
(
@RequestBody
SqlMonitorTask
sqlM
onitorTask
)
{
return
JsonResult
.
buildSuccessResult
(
sqlMonitorTaskService
.
saveOrUpdate
(
sqlM
onitorTask
));
}
/**
* 删除监控
*
* @param
m
onitorTask
* @param
sqlM
onitorTask
* @return
*/
@PostMapping
(
"/delete"
)
public
JsonResult
deleteMonitorTask
(
@RequestBody
MonitorTask
m
onitorTask
)
{
Integer
taskId
=
m
onitorTask
.
getId
();
if
(
m
onitorTaskService
.
getById
(
taskId
)
==
null
)
{
public
JsonResult
deleteMonitorTask
(
@RequestBody
SqlMonitorTask
sqlM
onitorTask
)
{
Integer
taskId
=
sqlM
onitorTask
.
getId
();
if
(
sqlM
onitorTaskService
.
getById
(
taskId
)
==
null
)
{
return
JsonResult
.
buildErrorStateResult
(
"定时任务不存在!"
,
false
);
}
boolean
delResult
=
m
onitorTaskService
.
removeById
(
taskId
);
boolean
delResult
=
sqlM
onitorTaskService
.
removeById
(
taskId
);
if
(
delResult
)
{
return
JsonResult
.
buildSuccessResult
(
"删除成功!"
);
}
else
{
...
...
@@ -121,27 +121,27 @@ public class MonitorTaskController {
*/
@PostMapping
(
"/execute"
)
public
JsonResult
executeSql
(
@RequestParam
Integer
dsId
,
@RequestParam
String
sql
)
{
MonitorDataSource
monitorDataSource
=
m
onitorDataSourceService
.
getById
(
dsId
);
List
<
Map
<
String
,
Object
>>
resultList
=
JdbcUtils
.
queryForList
(
monitorDataSource
.
getHost
(),
monitorDataSource
.
getPort
(),
m
onitorDataSource
.
getUsername
(),
m
onitorDataSource
.
getPassword
(),
null
,
sql
);
SqlMonitorDataSource
sqlMonitorDataSource
=
sqlM
onitorDataSourceService
.
getById
(
dsId
);
List
<
Map
<
String
,
Object
>>
resultList
=
JdbcUtils
.
queryForList
(
sqlMonitorDataSource
.
getHost
(),
sqlMonitorDataSource
.
getPort
(),
sqlM
onitorDataSource
.
getUsername
(),
sqlM
onitorDataSource
.
getPassword
(),
null
,
sql
);
return
JsonResult
.
buildSuccessResult
(
resultList
);
}
/**
* 发送测试,立即测试下定时任务发送消息是否准确
*
* @param
m
onitorTask 监控任务
* @param
sqlM
onitorTask 监控任务
* @return
*/
@PostMapping
(
"/test"
)
public
JsonResult
testMonitorTask
(
@RequestBody
MonitorTask
m
onitorTask
)
{
public
JsonResult
testMonitorTask
(
@RequestBody
SqlMonitorTask
sqlM
onitorTask
)
{
try
{
Integer
dsId
=
m
onitorTask
.
getDsId
();
MonitorDataSource
monitorDataSource
=
m
onitorDataSourceService
.
getById
(
dsId
);
List
<
Map
<
String
,
Object
>>
resultList
=
JdbcUtils
.
queryForList
(
monitorDataSource
.
getHost
(),
m
onitorDataSource
.
getPort
(),
monitorDataSource
.
getUsername
(),
monitorDataSource
.
getPassword
(),
null
,
m
onitorTask
.
getSql
());
String
dingUrl
=
m
onitorTask
.
getDingUrl
();
String
dingText
=
m
onitorTask
.
getDingText
();
Integer
dsId
=
sqlM
onitorTask
.
getDsId
();
SqlMonitorDataSource
sqlMonitorDataSource
=
sqlM
onitorDataSourceService
.
getById
(
dsId
);
List
<
Map
<
String
,
Object
>>
resultList
=
JdbcUtils
.
queryForList
(
sqlMonitorDataSource
.
getHost
(),
sqlM
onitorDataSource
.
getPort
(),
sqlMonitorDataSource
.
getUsername
(),
sqlMonitorDataSource
.
getPassword
(),
null
,
sqlM
onitorTask
.
getSql
());
String
dingUrl
=
sqlM
onitorTask
.
getDingUrl
();
String
dingText
=
sqlM
onitorTask
.
getDingText
();
dingText
=
dingText
.
replaceAll
(
"\\{count}"
,
String
.
valueOf
(
resultList
.
size
()));
String
markdownMsg
=
DingdingUtils
.
buildMarkdownMsg
(
"监控测试"
,
dingText
+
"\n"
+
JSON
.
toJSONString
(
resultList
),
false
);
boolean
result
=
DingdingUtils
.
sendToDingding
(
markdownMsg
,
dingUrl
);
...
...
src/main/java/cn/qg/holmes/entity/monitor/MonitorDataSource.java
→
src/main/java/cn/qg/holmes/entity/monitor/
Sql
MonitorDataSource.java
View file @
0b6b9a2f
...
...
@@ -14,8 +14,8 @@ import java.util.Date;
* @author libo
*/
@Data
@TableName
(
value
=
"monitor_data_source"
)
public
class
MonitorDataSource
{
@TableName
(
value
=
"
sql_
monitor_data_source"
)
public
class
Sql
MonitorDataSource
{
@TableId
(
type
=
IdType
.
AUTO
)
private
Integer
id
;
...
...
src/main/java/cn/qg/holmes/entity/monitor/MonitorTask.java
→
src/main/java/cn/qg/holmes/entity/monitor/
Sql
MonitorTask.java
View file @
0b6b9a2f
...
...
@@ -16,8 +16,8 @@ import java.util.Date;
* @author libo
*/
@Data
@TableName
(
value
=
"monitor_task"
)
public
class
MonitorTask
{
@TableName
(
value
=
"
sql_
monitor_task"
)
public
class
Sql
MonitorTask
{
@TableId
(
type
=
IdType
.
AUTO
)
private
Integer
id
;
...
...
src/main/java/cn/qg/holmes/mapper/monitor/MonitorDataSourceMapper.java
→
src/main/java/cn/qg/holmes/mapper/monitor/
Sql
MonitorDataSourceMapper.java
View file @
0b6b9a2f
package
cn
.
qg
.
holmes
.
mapper
.
monitor
;
import
cn.qg.holmes.entity.monitor.MonitorDataSource
;
import
cn.qg.holmes.entity.monitor.
Sql
MonitorDataSource
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
public
interface
MonitorDataSourceMapper
extends
BaseMapper
<
MonitorDataSource
>
{
public
interface
SqlMonitorDataSourceMapper
extends
BaseMapper
<
Sql
MonitorDataSource
>
{
}
src/main/java/cn/qg/holmes/mapper/monitor/MonitorTaskMapper.java
→
src/main/java/cn/qg/holmes/mapper/monitor/
Sql
MonitorTaskMapper.java
View file @
0b6b9a2f
package
cn
.
qg
.
holmes
.
mapper
.
monitor
;
import
cn.qg.holmes.entity.monitor.MonitorTask
;
import
cn.qg.holmes.entity.monitor.
Sql
MonitorTask
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
public
interface
MonitorTaskMapper
extends
BaseMapper
<
MonitorTask
>
{
public
interface
SqlMonitorTaskMapper
extends
BaseMapper
<
Sql
MonitorTask
>
{
}
src/main/java/cn/qg/holmes/quartz/SqlMonitorTask.java
View file @
0b6b9a2f
package
cn
.
qg
.
holmes
.
quartz
;
import
cn.qg.holmes.entity.monitor.MonitorDataSource
;
import
cn.qg.holmes.entity.monitor.MonitorTask
;
import
cn.qg.holmes.service.monitor.MonitorDataSourceService
;
import
cn.qg.holmes.service.monitor.MonitorTaskService
;
import
cn.qg.holmes.entity.monitor.SqlMonitorDataSource
;
import
cn.qg.holmes.service.monitor.SqlMonitorDataSourceService
;
import
cn.qg.holmes.service.monitor.SqlMonitorTaskService
;
import
cn.qg.holmes.utils.DingdingUtils
;
import
cn.qg.holmes.utils.JdbcUtils
;
import
com.alibaba.fastjson.JSON
;
...
...
@@ -27,10 +26,10 @@ import java.util.regex.Pattern;
public
class
SqlMonitorTask
extends
QuartzJobBean
{
@Autowired
MonitorDataSourceService
m
onitorDataSourceService
;
SqlMonitorDataSourceService
sqlM
onitorDataSourceService
;
@Autowired
MonitorTaskService
m
onitorTaskService
;
SqlMonitorTaskService
sqlM
onitorTaskService
;
@Override
protected
void
executeInternal
(
JobExecutionContext
jobExecutionContext
)
throws
JobExecutionException
{
...
...
@@ -38,17 +37,17 @@ public class SqlMonitorTask extends QuartzJobBean {
// 定时任务名称
String
taskName
=
jobDetail
.
getKey
().
getName
();
// 获取定时任务信息
QueryWrapper
<
MonitorTask
>
monitorTaskQueryWrapper
=
new
QueryWrapper
<>();
QueryWrapper
<
cn
.
qg
.
holmes
.
entity
.
monitor
.
Sql
MonitorTask
>
monitorTaskQueryWrapper
=
new
QueryWrapper
<>();
monitorTaskQueryWrapper
.
eq
(
"task_name"
,
taskName
);
MonitorTask
monitorTask
=
m
onitorTaskService
.
getOne
(
monitorTaskQueryWrapper
);
cn
.
qg
.
holmes
.
entity
.
monitor
.
SqlMonitorTask
sqlMonitorTask
=
sqlM
onitorTaskService
.
getOne
(
monitorTaskQueryWrapper
);
// 获取数据源相关信息
Integer
dsId
=
m
onitorTask
.
getDsId
();
MonitorDataSource
monitorDataSource
=
m
onitorDataSourceService
.
getById
(
dsId
);
Integer
dsId
=
sqlM
onitorTask
.
getDsId
();
SqlMonitorDataSource
sqlMonitorDataSource
=
sqlM
onitorDataSourceService
.
getById
(
dsId
);
List
<
Map
<
String
,
Object
>>
resultList
=
JdbcUtils
.
queryForList
(
monitorDataSource
.
getHost
(),
m
onitorDataSource
.
getPort
(),
monitorDataSource
.
getUsername
(),
monitorDataSource
.
getPassword
(),
null
,
m
onitorTask
.
getSql
());
String
dingUrl
=
m
onitorTask
.
getDingUrl
();
String
dingText
=
m
onitorTask
.
getDingText
();
List
<
Map
<
String
,
Object
>>
resultList
=
JdbcUtils
.
queryForList
(
sqlMonitorDataSource
.
getHost
(),
sqlM
onitorDataSource
.
getPort
(),
sqlMonitorDataSource
.
getUsername
(),
sqlMonitorDataSource
.
getPassword
(),
null
,
sqlM
onitorTask
.
getSql
());
String
dingUrl
=
sqlM
onitorTask
.
getDingUrl
();
String
dingText
=
sqlM
onitorTask
.
getDingText
();
dingText
=
replaceDingText
(
dingText
,
resultList
);
String
markdownMsg
=
DingdingUtils
.
buildMarkdownMsg
(
"监控测试"
,
dingText
+
"\n"
+
JSON
.
toJSONString
(
resultList
),
false
);
DingdingUtils
.
sendToDingding
(
markdownMsg
,
dingUrl
);
...
...
src/main/java/cn/qg/holmes/service/monitor/MonitorService.java
deleted
100644 → 0
View file @
c2145f1f
package
cn
.
qg
.
holmes
.
service
.
monitor
;
/**
* 监控Service
*/
public
interface
MonitorService
{
}
src/main/java/cn/qg/holmes/service/monitor/MonitorDataSourceService.java
→
src/main/java/cn/qg/holmes/service/monitor/
Sql
MonitorDataSourceService.java
View file @
0b6b9a2f
package
cn
.
qg
.
holmes
.
service
.
monitor
;
import
cn.qg.holmes.entity.monitor.MonitorDataSource
;
import
cn.qg.holmes.entity.monitor.
Sql
MonitorDataSource
;
import
com.baomidou.mybatisplus.extension.service.IService
;
/**
* 监控数据源Service
*/
public
interface
MonitorDataSourceService
extends
IService
<
MonitorDataSource
>
{
public
interface
SqlMonitorDataSourceService
extends
IService
<
Sql
MonitorDataSource
>
{
}
src/main/java/cn/qg/holmes/service/monitor/MonitorTaskService.java
→
src/main/java/cn/qg/holmes/service/monitor/
Sql
MonitorTaskService.java
View file @
0b6b9a2f
package
cn
.
qg
.
holmes
.
service
.
monitor
;
import
cn.qg.holmes.entity.monitor.MonitorTask
;
import
cn.qg.holmes.entity.monitor.
Sql
MonitorTask
;
import
com.baomidou.mybatisplus.extension.service.IService
;
public
interface
MonitorTaskService
extends
IService
<
MonitorTask
>
{
public
interface
SqlMonitorTaskService
extends
IService
<
Sql
MonitorTask
>
{
}
src/main/java/cn/qg/holmes/service/monitor/impl/MonitorServiceImpl.java
deleted
100644 → 0
View file @
c2145f1f
package
cn
.
qg
.
holmes
.
service
.
monitor
.
impl
;
import
cn.qg.holmes.service.monitor.MonitorService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
@Slf4j
@Service
public
class
MonitorServiceImpl
implements
MonitorService
{
}
src/main/java/cn/qg/holmes/service/monitor/impl/MonitorDataSourceServiceImpl.java
→
src/main/java/cn/qg/holmes/service/monitor/impl/
Sql
MonitorDataSourceServiceImpl.java
View file @
0b6b9a2f
package
cn
.
qg
.
holmes
.
service
.
monitor
.
impl
;
import
cn.qg.holmes.entity.monitor.MonitorDataSource
;
import
cn.qg.holmes.mapper.monitor.MonitorDataSourceMapper
;
import
cn.qg.holmes.service.monitor.MonitorDataSourceService
;
import
cn.qg.holmes.entity.monitor.
Sql
MonitorDataSource
;
import
cn.qg.holmes.mapper.monitor.
Sql
MonitorDataSourceMapper
;
import
cn.qg.holmes.service.monitor.
Sql
MonitorDataSourceService
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.springframework.stereotype.Service
;
@Service
public
class
MonitorDataSourceServiceImpl
extends
ServiceImpl
<
MonitorDataSourceMapper
,
MonitorDataSource
>
implements
MonitorDataSourceService
{
public
class
SqlMonitorDataSourceServiceImpl
extends
ServiceImpl
<
SqlMonitorDataSourceMapper
,
Sql
MonitorDataSource
>
implements
Sql
MonitorDataSourceService
{
}
src/main/java/cn/qg/holmes/service/monitor/impl/MonitorTaskServiceImpl.java
→
src/main/java/cn/qg/holmes/service/monitor/impl/
Sql
MonitorTaskServiceImpl.java
View file @
0b6b9a2f
package
cn
.
qg
.
holmes
.
service
.
monitor
.
impl
;
import
cn.qg.holmes.entity.monitor.MonitorTask
;
import
cn.qg.holmes.mapper.monitor.MonitorTaskMapper
;
import
cn.qg.holmes.service.monitor.MonitorTaskService
;
import
cn.qg.holmes.entity.monitor.
Sql
MonitorTask
;
import
cn.qg.holmes.mapper.monitor.
Sql
MonitorTaskMapper
;
import
cn.qg.holmes.service.monitor.
Sql
MonitorTaskService
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.springframework.stereotype.Service
;
@Service
public
class
MonitorTaskServiceImpl
extends
ServiceImpl
<
MonitorTaskMapper
,
MonitorTask
>
implements
MonitorTaskService
{
public
class
SqlMonitorTaskServiceImpl
extends
ServiceImpl
<
SqlMonitorTaskMapper
,
SqlMonitorTask
>
implements
Sql
MonitorTaskService
{
}
src/main/java/cn/qg/holmes/utils/QuartzUtils.java
View file @
0b6b9a2f
package
cn
.
qg
.
holmes
.
utils
;
import
cn.qg.holmes.entity.monitor.MonitorTask
;
import
cn.qg.holmes.entity.monitor.
Sql
MonitorTask
;
import
lombok.extern.slf4j.Slf4j
;
import
org.quartz.*
;
@Slf4j
public
class
QuartzUtils
{
public
static
void
createS
cheduleJob
(
Scheduler
scheduler
,
MonitorTask
m
onitorTask
)
{
public
static
void
createS
qlScheduleJob
(
Scheduler
scheduler
,
SqlMonitorTask
sqlM
onitorTask
)
{
try
{
Class
<?
extends
Job
>
jobClass
=
(
Class
<?
extends
Job
>)
Class
.
forName
(
"cn.qg.holmes.quartz."
+
m
onitorTask
.
getTaskClass
());
Class
<?
extends
Job
>
jobClass
=
(
Class
<?
extends
Job
>)
Class
.
forName
(
"cn.qg.holmes.quartz."
+
sqlM
onitorTask
.
getTaskClass
());
JobDetail
jobDetail
=
JobBuilder
.
newJob
(
jobClass
)
.
withIdentity
(
m
onitorTask
.
getTaskName
())
.
withIdentity
(
sqlM
onitorTask
.
getTaskName
())
.
build
();
CronScheduleBuilder
scheduleBuilder
=
CronScheduleBuilder
.
cronSchedule
(
m
onitorTask
.
getTaskCron
());
CronScheduleBuilder
scheduleBuilder
=
CronScheduleBuilder
.
cronSchedule
(
sqlM
onitorTask
.
getTaskCron
());
CronTrigger
cronTrigger
=
TriggerBuilder
.
newTrigger
()
.
withIdentity
(
m
onitorTask
.
getTaskName
())
.
withIdentity
(
sqlM
onitorTask
.
getTaskName
())
.
withSchedule
(
scheduleBuilder
)
.
build
();
scheduler
.
scheduleJob
(
jobDetail
,
cronTrigger
);
}
catch
(
ClassNotFoundException
e
)
{
log
.
info
(
"定时任务类: {}路径出错:请输入类的绝对路径"
,
m
onitorTask
.
getTaskClass
());
log
.
info
(
"定时任务类: {}路径出错:请输入类的绝对路径"
,
sqlM
onitorTask
.
getTaskClass
());
}
catch
(
SchedulerException
e
)
{
log
.
info
(
"创建定时任务出错:"
+
e
.
getMessage
());
}
log
.
info
(
"创建定时任务: {}"
,
m
onitorTask
.
getTaskName
());
log
.
info
(
"创建定时任务: {}"
,
sqlM
onitorTask
.
getTaskName
());
}
/**
...
...
@@ -78,15 +78,15 @@ public class QuartzUtils {
* 更新定时任务
*
* @param scheduler 调度器
* @param
m
onitorTask 定时任务信息类
* @param
sqlM
onitorTask 定时任务信息类
* @throws SchedulerException
*/
public
static
void
updateS
cheduleJob
(
Scheduler
scheduler
,
MonitorTask
m
onitorTask
)
{
public
static
void
updateS
qlScheduleJob
(
Scheduler
scheduler
,
SqlMonitorTask
sqlM
onitorTask
)
{
try
{
//获取到对应任务的触发器
TriggerKey
triggerKey
=
TriggerKey
.
triggerKey
(
m
onitorTask
.
getTaskName
());
TriggerKey
triggerKey
=
TriggerKey
.
triggerKey
(
sqlM
onitorTask
.
getTaskName
());
//设置定时任务执行方式
CronScheduleBuilder
scheduleBuilder
=
CronScheduleBuilder
.
cronSchedule
(
m
onitorTask
.
getTaskCron
());
CronScheduleBuilder
scheduleBuilder
=
CronScheduleBuilder
.
cronSchedule
(
sqlM
onitorTask
.
getTaskCron
());
//重新构建任务的触发器trigger
CronTrigger
trigger
=
(
CronTrigger
)
scheduler
.
getTrigger
(
triggerKey
);
trigger
=
trigger
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment