feat: MonitorsController Chinese and English support #huacheng (#85)
This commit is contained in:
@@ -15,6 +15,7 @@ import java.util.concurrent.TimeUnit;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 采集job管理提供api接口
|
* 采集job管理提供api接口
|
||||||
|
*
|
||||||
* @author tomsun28
|
* @author tomsun28
|
||||||
* @date 2021/11/6 13:58
|
* @date 2021/11/6 13:58
|
||||||
*/
|
*/
|
||||||
@@ -27,6 +28,7 @@ public class CollectJobService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 执行一次性采集任务,获取采集数据响应
|
* 执行一次性采集任务,获取采集数据响应
|
||||||
|
*
|
||||||
* @param job 采集任务详情
|
* @param job 采集任务详情
|
||||||
* @return 采集结果
|
* @return 采集结果
|
||||||
*/
|
*/
|
||||||
@@ -52,9 +54,11 @@ public class CollectJobService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Issue periodic asynchronous collection tasks
|
||||||
* 下发周期性异步采集任务
|
* 下发周期性异步采集任务
|
||||||
* @param job 采集任务详情
|
*
|
||||||
* @return long 任务ID
|
* @param job Collect task details 采集任务详情
|
||||||
|
* @return long Job ID 任务ID
|
||||||
*/
|
*/
|
||||||
public long addAsyncCollectJob(Job job) {
|
public long addAsyncCollectJob(Job job) {
|
||||||
if (job.getId() == 0L) {
|
if (job.getId() == 0L) {
|
||||||
@@ -66,8 +70,10 @@ public class CollectJobService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Update the periodic asynchronous collection tasks that have been delivered
|
||||||
* 更新已经下发的周期性异步采集任务
|
* 更新已经下发的周期性异步采集任务
|
||||||
* @param modifyJob 采集任务详情
|
*
|
||||||
|
* @param modifyJob Collect task details 采集任务详情
|
||||||
*/
|
*/
|
||||||
public void updateAsyncCollectJob(Job modifyJob) {
|
public void updateAsyncCollectJob(Job modifyJob) {
|
||||||
timerDispatch.deleteJob(modifyJob.getId(), true);
|
timerDispatch.deleteJob(modifyJob.getId(), true);
|
||||||
@@ -75,8 +81,10 @@ public class CollectJobService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Cancel periodic asynchronous collection tasks
|
||||||
* 取消周期性异步采集任务
|
* 取消周期性异步采集任务
|
||||||
* @param jobId 任务ID
|
*
|
||||||
|
* @param jobId Job ID 任务ID
|
||||||
*/
|
*/
|
||||||
public void cancelAsyncCollectJob(Long jobId) {
|
public void cancelAsyncCollectJob(Long jobId) {
|
||||||
timerDispatch.deleteJob(jobId, true);
|
timerDispatch.deleteJob(jobId, true);
|
||||||
|
|||||||
@@ -10,20 +10,24 @@ import java.util.concurrent.TimeUnit;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 时间轮调度接口
|
* 时间轮调度接口
|
||||||
|
*
|
||||||
* @author tomsun28
|
* @author tomsun28
|
||||||
* @date 2021/10/17 22:14
|
* @date 2021/10/17 22:14
|
||||||
*/
|
*/
|
||||||
public interface TimerDispatch {
|
public interface TimerDispatch {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Add new job
|
||||||
* 增加新的job
|
* 增加新的job
|
||||||
|
*
|
||||||
* @param addJob job
|
* @param addJob job
|
||||||
* @param eventListener 一次性同步任务监听器,异步任务不需要listener
|
* @param eventListener One-time synchronous task listener, asynchronous task does not need listener一次性同步任务监听器,异步任务不需要listener
|
||||||
*/
|
*/
|
||||||
void addJob(Job addJob, CollectResponseEventListener eventListener);
|
void addJob(Job addJob, CollectResponseEventListener eventListener);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 调度循环周期性job
|
* 调度循环周期性job
|
||||||
|
*
|
||||||
* @param timerTask timerTask
|
* @param timerTask timerTask
|
||||||
* @param interval 开始调度的间隔时间
|
* @param interval 开始调度的间隔时间
|
||||||
* @param timeUnit 时间单位
|
* @param timeUnit 时间单位
|
||||||
@@ -32,6 +36,7 @@ public interface TimerDispatch {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除存在的job
|
* 删除存在的job
|
||||||
|
*
|
||||||
* @param jobId jobId
|
* @param jobId jobId
|
||||||
* @param isCyclic 是否是周期性任务,true是, false为临时性任务
|
* @param isCyclic 是否是周期性任务,true是, false为临时性任务
|
||||||
*/
|
*/
|
||||||
@@ -39,6 +44,7 @@ public interface TimerDispatch {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 一次性同步采集任务采集结果通知监听器
|
* 一次性同步采集任务采集结果通知监听器
|
||||||
|
*
|
||||||
* @param jobId jobId
|
* @param jobId jobId
|
||||||
* @param metricsDataTemps 采集结果数据
|
* @param metricsDataTemps 采集结果数据
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -22,7 +22,9 @@ import static io.swagger.annotations.ApiModelProperty.AccessMode.READ_ONLY;
|
|||||||
import static io.swagger.annotations.ApiModelProperty.AccessMode.READ_WRITE;
|
import static io.swagger.annotations.ApiModelProperty.AccessMode.READ_WRITE;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Monitor Entity
|
||||||
* 监控实体
|
* 监控实体
|
||||||
|
*
|
||||||
* @author tomsun28
|
* @author tomsun28
|
||||||
* @date 2021/11/14 9:53
|
* @date 2021/11/14 9:53
|
||||||
*/
|
*/
|
||||||
@@ -32,10 +34,11 @@ import static io.swagger.annotations.ApiModelProperty.AccessMode.READ_WRITE;
|
|||||||
@Builder
|
@Builder
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@ApiModel(description = "监控实体")
|
@ApiModel(description = "en: Monitor Entity,zh: 监控实体")
|
||||||
public class Monitor {
|
public class Monitor {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Monitor ID
|
||||||
* 主键ID
|
* 主键ID
|
||||||
*/
|
*/
|
||||||
@Id
|
@Id
|
||||||
@@ -43,12 +46,14 @@ public class Monitor {
|
|||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Job ID
|
||||||
* 监控对应下发的任务ID
|
* 监控对应下发的任务ID
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "任务ID", example = "43243543543", accessMode = READ_ONLY, position = 1)
|
@ApiModelProperty(value = "任务ID", example = "43243543543", accessMode = READ_ONLY, position = 1)
|
||||||
private Long jobId;
|
private Long jobId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Monitor Name
|
||||||
* 监控的名称
|
* 监控的名称
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "监控名称", example = "Api-TanCloud.cn", accessMode = READ_WRITE, position = 2)
|
@ApiModelProperty(value = "监控名称", example = "Api-TanCloud.cn", accessMode = READ_WRITE, position = 2)
|
||||||
@@ -56,6 +61,7 @@ public class Monitor {
|
|||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Type of monitoring: linux, mysql, jvm...
|
||||||
* 监控的类型:linux,mysql,jvm...
|
* 监控的类型:linux,mysql,jvm...
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "监控类型", example = "TanCloud", accessMode = READ_WRITE, position = 3)
|
@ApiModelProperty(value = "监控类型", example = "TanCloud", accessMode = READ_WRITE, position = 3)
|
||||||
@@ -63,6 +69,7 @@ public class Monitor {
|
|||||||
private String app;
|
private String app;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Monitored peer host: ipv4, ipv6, domain name
|
||||||
* 监控的对端host:ipv4,ipv6,域名
|
* 监控的对端host:ipv4,ipv6,域名
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "监控的对端host", example = "192.167.25.11", accessMode = READ_WRITE, position = 4)
|
@ApiModelProperty(value = "监控的对端host", example = "192.167.25.11", accessMode = READ_WRITE, position = 4)
|
||||||
@@ -71,6 +78,7 @@ public class Monitor {
|
|||||||
private String host;
|
private String host;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Monitoring collection interval time, in seconds
|
||||||
* 监控的采集间隔时间,单位秒
|
* 监控的采集间隔时间,单位秒
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "监控的采集间隔时间,单位秒", example = "600", accessMode = READ_WRITE, position = 5)
|
@ApiModelProperty(value = "监控的采集间隔时间,单位秒", example = "600", accessMode = READ_WRITE, position = 5)
|
||||||
@@ -78,6 +86,7 @@ public class Monitor {
|
|||||||
private Integer intervals;
|
private Integer intervals;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Monitoring status 0: Unmonitored, 1: Available, 2: Unavailable, 3: Unreachable, 4: Suspended
|
||||||
* 监控状态 0:未监控,1:可用,2:不可用,3:不可达,4:挂起
|
* 监控状态 0:未监控,1:可用,2:不可用,3:不可达,4:挂起
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "监控状态 0:未监控,1:可用,2:不可用,3:不可达,4:挂起", accessMode = READ_WRITE, position = 6)
|
@ApiModelProperty(value = "监控状态 0:未监控,1:可用,2:不可用,3:不可达,4:挂起", accessMode = READ_WRITE, position = 6)
|
||||||
@@ -86,6 +95,7 @@ public class Monitor {
|
|||||||
private byte status;
|
private byte status;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Monitoring note description
|
||||||
* 监控备注描述
|
* 监控备注描述
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "监控备注描述", example = "对SAAS网站TanCloud的可用性监控", accessMode = READ_WRITE, position = 7)
|
@ApiModelProperty(value = "监控备注描述", example = "对SAAS网站TanCloud的可用性监控", accessMode = READ_WRITE, position = 7)
|
||||||
@@ -93,18 +103,21 @@ public class Monitor {
|
|||||||
private String description;
|
private String description;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* The creator of this record
|
||||||
* 此条记录创建者
|
* 此条记录创建者
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "此条记录创建者", example = "tom", accessMode = READ_ONLY, position = 8)
|
@ApiModelProperty(value = "此条记录创建者", example = "tom", accessMode = READ_ONLY, position = 8)
|
||||||
private String creator;
|
private String creator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* This record was last modified by
|
||||||
* 此条记录最新修改者
|
* 此条记录最新修改者
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "此条记录最新修改者", example = "tom", accessMode = READ_ONLY, position = 9)
|
@ApiModelProperty(value = "此条记录最新修改者", example = "tom", accessMode = READ_ONLY, position = 9)
|
||||||
private String modifier;
|
private String modifier;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* record creation time (millisecond timestamp)
|
||||||
* 记录创建时间
|
* 记录创建时间
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "记录创建时间(毫秒时间戳)", example = "1612198922000", accessMode = READ_ONLY, position = 10)
|
@ApiModelProperty(value = "记录创建时间(毫秒时间戳)", example = "1612198922000", accessMode = READ_ONLY, position = 10)
|
||||||
@@ -112,6 +125,7 @@ public class Monitor {
|
|||||||
private LocalDateTime gmtCreate;
|
private LocalDateTime gmtCreate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Record the latest modification time (timestamp in milliseconds)
|
||||||
* 记录最新修改时间
|
* 记录最新修改时间
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "记录最新修改时间(毫秒时间戳)", example = "1612198444000", accessMode = READ_ONLY, position = 11)
|
@ApiModelProperty(value = "记录最新修改时间(毫秒时间戳)", example = "1612198444000", accessMode = READ_ONLY, position = 11)
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
package com.usthe.common.util;
|
package com.usthe.common.util;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Snowflake Algorithm Generator Tool
|
||||||
* 雪花算法生成器工具
|
* 雪花算法生成器工具
|
||||||
|
*
|
||||||
* @author tomsun28
|
* @author tomsun28
|
||||||
* @date 2021/11/10 11:04
|
* @date 2021/11/10 11:04
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -29,11 +29,13 @@ import java.util.List;
|
|||||||
import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
|
import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Monitor and manage batch API
|
||||||
* 监控管理批量API
|
* 监控管理批量API
|
||||||
|
*
|
||||||
* @author tom
|
* @author tom
|
||||||
* @date 2021/12/1 20:43
|
* @date 2021/12/1 20:43
|
||||||
*/
|
*/
|
||||||
@Api(tags = "监控列表API")
|
@Api(tags = "en: Monitor and manage batch API,zh: 监控列表API")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping(path = "/monitors", produces = {APPLICATION_JSON_VALUE})
|
@RequestMapping(path = "/monitors", produces = {APPLICATION_JSON_VALUE})
|
||||||
public class MonitorsController {
|
public class MonitorsController {
|
||||||
@@ -44,17 +46,18 @@ public class MonitorsController {
|
|||||||
private MonitorService monitorService;
|
private MonitorService monitorService;
|
||||||
|
|
||||||
@GetMapping
|
@GetMapping
|
||||||
@ApiOperation(value = "查询监控列表", notes = "根据查询过滤项获取监控信息列表")
|
@ApiOperation(value = "Obtain a list of monitoring information based on query filter items",
|
||||||
|
notes = "根据查询过滤项获取监控信息列表")
|
||||||
public ResponseEntity<Message<Page<Monitor>>> getMonitors(
|
public ResponseEntity<Message<Page<Monitor>>> getMonitors(
|
||||||
@ApiParam(value = "监控ID", example = "6565463543") @RequestParam(required = false) final List<Long> ids,
|
@ApiParam(value = "en: Monitor ID,zh: 监控ID", example = "6565463543") @RequestParam(required = false) final List<Long> ids,
|
||||||
@ApiParam(value = "监控类型", example = "linux") @RequestParam(required = false) final String app,
|
@ApiParam(value = "en: Monitor Type,zh: 监控类型", example = "linux") @RequestParam(required = false) final String app,
|
||||||
@ApiParam(value = "监控名称,模糊查询", example = "linux-127.0.0.1") @RequestParam(required = false) final String name,
|
@ApiParam(value = "en: Monitor Name,zh: 监控名称,模糊查询", example = "linux-127.0.0.1") @RequestParam(required = false) final String name,
|
||||||
@ApiParam(value = "监控Host,模糊查询", example = "127.0.0.1") @RequestParam(required = false) final String host,
|
@ApiParam(value = "en: Monitor Host,zh: 监控Host,模糊查询", example = "127.0.0.1") @RequestParam(required = false) final String host,
|
||||||
@ApiParam(value = "监控状态 0:未监控,1:可用,2:不可用,3:不可达,4:挂起,9:全部状态", example = "1") @RequestParam(required = false) final Byte status,
|
@ApiParam(value = "en: Monitor Status,zh: 监控状态 0:未监控,1:可用,2:不可用,3:不可达,4:挂起,9:全部状态", example = "1") @RequestParam(required = false) final Byte status,
|
||||||
@ApiParam(value = "排序字段,默认id", example = "name") @RequestParam(defaultValue = "id") final String sort,
|
@ApiParam(value = "en: Sort Field,default id,zh: 排序字段,默认id", example = "name") @RequestParam(defaultValue = "id") final String sort,
|
||||||
@ApiParam(value = "排序方式,asc:升序,desc:降序", example = "desc") @RequestParam(defaultValue = "desc") final String order,
|
@ApiParam(value = "en: Sort by,zh: 排序方式,asc:升序,desc:降序", example = "desc") @RequestParam(defaultValue = "desc") final String order,
|
||||||
@ApiParam(value = "列表当前分页", example = "0") @RequestParam(defaultValue = "0") int pageIndex,
|
@ApiParam(value = "en: List current page,zh: 列表当前分页", example = "0") @RequestParam(defaultValue = "0") int pageIndex,
|
||||||
@ApiParam(value = "列表分页数量", example = "8") @RequestParam(defaultValue = "8") int pageSize) {
|
@ApiParam(value = "en: Number of list pagination,zh: 列表分页数量", example = "8") @RequestParam(defaultValue = "8") int pageSize) {
|
||||||
|
|
||||||
Specification<Monitor> specification = (root, query, criteriaBuilder) -> {
|
Specification<Monitor> specification = (root, query, criteriaBuilder) -> {
|
||||||
List<Predicate> andList = new ArrayList<>();
|
List<Predicate> andList = new ArrayList<>();
|
||||||
@@ -98,7 +101,7 @@ public class MonitorsController {
|
|||||||
return query.where(andPredicate, orPredicate).getRestriction();
|
return query.where(andPredicate, orPredicate).getRestriction();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
// 分页是必须的
|
// Pagination is a must 分页是必须的
|
||||||
Sort sortExp = Sort.by(new Sort.Order(Sort.Direction.fromString(order), sort));
|
Sort sortExp = Sort.by(new Sort.Order(Sort.Direction.fromString(order), sort));
|
||||||
PageRequest pageRequest = PageRequest.of(pageIndex, pageSize, sortExp);
|
PageRequest pageRequest = PageRequest.of(pageIndex, pageSize, sortExp);
|
||||||
Page<Monitor> monitorPage = monitorService.getMonitors(specification, pageRequest);
|
Page<Monitor> monitorPage = monitorService.getMonitors(specification, pageRequest);
|
||||||
@@ -107,18 +110,20 @@ public class MonitorsController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(path = "/{app}")
|
@GetMapping(path = "/{app}")
|
||||||
@ApiOperation(value = "查询指定监控类型的监控列表", notes = "根据查询过滤指定监控类型的所有获取监控信息列表")
|
@ApiOperation(value = "Filter all acquired monitoring information lists of the specified monitoring type according to the query",
|
||||||
|
notes = "根据查询过滤指定监控类型的所有获取监控信息列表")
|
||||||
public ResponseEntity<Message<List<Monitor>>> getAppMonitors(
|
public ResponseEntity<Message<List<Monitor>>> getAppMonitors(
|
||||||
@ApiParam(value = "监控类型", example = "linux") @PathVariable(required = false) final String app) {
|
@ApiParam(value = "en: Monitoring type,zh: 监控类型", example = "linux") @PathVariable(required = false) final String app) {
|
||||||
List<Monitor> monitors = monitorService.getAppMonitors(app);
|
List<Monitor> monitors = monitorService.getAppMonitors(app);
|
||||||
Message<List<Monitor>> message = new Message<>(monitors);
|
Message<List<Monitor>> message = new Message<>(monitors);
|
||||||
return ResponseEntity.ok(message);
|
return ResponseEntity.ok(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
@DeleteMapping
|
@DeleteMapping
|
||||||
@ApiOperation(value = "批量删除监控", notes = "根据监控ID列表批量删除监控项")
|
@ApiOperation(value = "Delete monitoring items in batches according to the monitoring ID list",
|
||||||
|
notes = "根据监控ID列表批量删除监控项")
|
||||||
public ResponseEntity<Message<Void>> deleteMonitors(
|
public ResponseEntity<Message<Void>> deleteMonitors(
|
||||||
@ApiParam(value = "监控IDs", example = "6565463543") @RequestParam(required = false) List<Long> ids
|
@ApiParam(value = "en: Monitoring ID List,zh: 监控ID列表", example = "6565463543") @RequestParam(required = false) List<Long> ids
|
||||||
) {
|
) {
|
||||||
if (ids != null && !ids.isEmpty()) {
|
if (ids != null && !ids.isEmpty()) {
|
||||||
monitorService.deleteMonitors(new HashSet<>(ids));
|
monitorService.deleteMonitors(new HashSet<>(ids));
|
||||||
@@ -128,9 +133,10 @@ public class MonitorsController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@DeleteMapping("manage")
|
@DeleteMapping("manage")
|
||||||
@ApiOperation(value = "批量取消纳管监控", notes = "根据监控ID列表批量取消纳管监控项")
|
@ApiOperation(value = "Unmanaged monitoring items in batches according to the monitoring ID list",
|
||||||
|
notes = "根据监控ID列表批量取消纳管监控项")
|
||||||
public ResponseEntity<Message<Void>> cancelManageMonitors(
|
public ResponseEntity<Message<Void>> cancelManageMonitors(
|
||||||
@ApiParam(value = "监控IDs", example = "6565463543") @RequestParam(required = false) List<Long> ids
|
@ApiParam(value = "en: Monitoring ID List,zh: 监控ID列表", example = "6565463543") @RequestParam(required = false) List<Long> ids
|
||||||
) {
|
) {
|
||||||
if (ids != null && !ids.isEmpty()) {
|
if (ids != null && !ids.isEmpty()) {
|
||||||
monitorService.cancelManageMonitors(new HashSet<>(ids));
|
monitorService.cancelManageMonitors(new HashSet<>(ids));
|
||||||
@@ -140,9 +146,10 @@ public class MonitorsController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("manage")
|
@GetMapping("manage")
|
||||||
@ApiOperation(value = "批量启动纳管监控", notes = "根据监控ID列表批量启动纳管监控项")
|
@ApiOperation(value = "Start the managed monitoring items in batches according to the monitoring ID list",
|
||||||
|
notes = "根据监控ID列表批量启动纳管监控项")
|
||||||
public ResponseEntity<Message<Void>> enableManageMonitors(
|
public ResponseEntity<Message<Void>> enableManageMonitors(
|
||||||
@ApiParam(value = "监控IDs", example = "6565463543") @RequestParam(required = false) List<Long> ids
|
@ApiParam(value = "en: Monitor ID List,zh: 监控ID列表", example = "6565463543") @RequestParam(required = false) List<Long> ids
|
||||||
) {
|
) {
|
||||||
if (ids != null && !ids.isEmpty()) {
|
if (ids != null && !ids.isEmpty()) {
|
||||||
monitorService.enableManageMonitors(new HashSet<>(ids));
|
monitorService.enableManageMonitors(new HashSet<>(ids));
|
||||||
|
|||||||
@@ -22,33 +22,37 @@ public interface MonitorDao extends JpaRepository<Monitor, Long>, JpaSpecificati
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Delete monitor based on monitor ID list
|
||||||
* 根据监控ID列表删除监控
|
* 根据监控ID列表删除监控
|
||||||
*
|
*
|
||||||
* @param monitorIds 监控ID列表
|
* @param monitorIds Monitoring ID List 监控ID列表
|
||||||
*/
|
*/
|
||||||
void deleteAllByIdIn(Set<Long> monitorIds);
|
void deleteAllByIdIn(Set<Long> monitorIds);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Query monitoring based on monitoring ID list
|
||||||
* 根据监控ID列表查询监控
|
* 根据监控ID列表查询监控
|
||||||
*
|
*
|
||||||
* @param monitorIds 监控ID列表
|
* @param monitorIds Monitoring ID List 监控ID列表
|
||||||
* @return 监控列表
|
* @return Monitor List 监控列表
|
||||||
*/
|
*/
|
||||||
List<Monitor> findMonitorsByIdIn(Set<Long> monitorIds);
|
List<Monitor> findMonitorsByIdIn(Set<Long> monitorIds);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Query monitoring by monitoring type
|
||||||
* 根据监控类型查询监控
|
* 根据监控类型查询监控
|
||||||
*
|
*
|
||||||
* @param app 监控类型
|
* @param app Monitor Type 监控类型
|
||||||
* @return 监控列表
|
* @return Monitor List 监控列表
|
||||||
*/
|
*/
|
||||||
List<Monitor> findMonitorsByAppEquals(String app);
|
List<Monitor> findMonitorsByAppEquals(String app);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Querying Monitoring of Sent Collection Tasks
|
||||||
* 查询已下发采集任务的监控
|
* 查询已下发采集任务的监控
|
||||||
*
|
*
|
||||||
* @param status 监控状态
|
* @param status Monitor Status 监控状态
|
||||||
* @return 监控列表
|
* @return Monitor List 监控列表
|
||||||
*/
|
*/
|
||||||
List<Monitor> findMonitorsByStatusNotInAndAndJobIdNotNull(List<Byte> status);
|
List<Monitor> findMonitorsByStatusNotInAndAndJobIdNotNull(List<Byte> status);
|
||||||
|
|
||||||
|
|||||||
@@ -67,49 +67,55 @@ public interface MonitorService {
|
|||||||
void deleteMonitor(long id) throws RuntimeException;
|
void deleteMonitor(long id) throws RuntimeException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Batch delete monitoring
|
||||||
* 批量删除监控
|
* 批量删除监控
|
||||||
*
|
*
|
||||||
* @param ids 监控ID
|
* @param ids Monitoring ID List 监控ID列表
|
||||||
* @throws RuntimeException 删除过程中异常抛出
|
* @throws RuntimeException Exception thrown during deletion 删除过程中异常抛出
|
||||||
*/
|
*/
|
||||||
void deleteMonitors(Set<Long> ids) throws RuntimeException;
|
void deleteMonitors(Set<Long> ids) throws RuntimeException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Get monitoring information
|
||||||
* 获取监控信息
|
* 获取监控信息
|
||||||
*
|
*
|
||||||
* @param id 监控ID
|
* @param id Monitor ID 监控ID
|
||||||
* @return MonitorDto
|
* @return MonitorDto Monitor Entity 監控实体
|
||||||
* @throws RuntimeException 查询过程中异常抛出
|
* @throws RuntimeException Exception thrown during query 查询过程中异常抛出
|
||||||
*/
|
*/
|
||||||
MonitorDto getMonitorDto(long id) throws RuntimeException;
|
MonitorDto getMonitorDto(long id) throws RuntimeException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Dynamic conditional query
|
||||||
* 动态条件查询
|
* 动态条件查询
|
||||||
*
|
*
|
||||||
* @param specification 查询条件
|
* @param specification Query conditions 查询条件
|
||||||
* @param pageRequest 分页参数
|
* @param pageRequest Pagination parameters 分页参数
|
||||||
* @return 查询结果
|
* @return Search Result 查询结果
|
||||||
*/
|
*/
|
||||||
Page<Monitor> getMonitors(Specification<Monitor> specification, PageRequest pageRequest);
|
Page<Monitor> getMonitors(Specification<Monitor> specification, PageRequest pageRequest);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Unmanaged monitoring items in batches according to the monitoring ID list
|
||||||
* 根据监控ID列表批量取消纳管监控项
|
* 根据监控ID列表批量取消纳管监控项
|
||||||
*
|
*
|
||||||
* @param ids 监控IDs
|
* @param ids Monitoring ID List 监控ID列表
|
||||||
*/
|
*/
|
||||||
void cancelManageMonitors(HashSet<Long> ids);
|
void cancelManageMonitors(HashSet<Long> ids);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Start the managed monitoring items in batches according to the monitoring ID list
|
||||||
* 根据监控ID列表批量启动纳管监控项
|
* 根据监控ID列表批量启动纳管监控项
|
||||||
*
|
*
|
||||||
* @param ids 监控IDs
|
* @param ids Monitoring ID List 监控ID列表
|
||||||
*/
|
*/
|
||||||
void enableManageMonitors(HashSet<Long> ids);
|
void enableManageMonitors(HashSet<Long> ids);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Query the monitoring category and its corresponding monitoring quantity
|
||||||
* 查询监控类别及其对应的监控数量
|
* 查询监控类别及其对应的监控数量
|
||||||
*
|
*
|
||||||
* @return 监控类别与监控数量映射
|
* @return Monitoring Category and Monitoring Quantity Mapping 监控类别与监控数量映射
|
||||||
*/
|
*/
|
||||||
List<AppCount> getAllAppMonitorsCount();
|
List<AppCount> getAllAppMonitorsCount();
|
||||||
|
|
||||||
@@ -132,10 +138,11 @@ public interface MonitorService {
|
|||||||
void updateMonitorStatus(Long monitorId, byte status);
|
void updateMonitorStatus(Long monitorId, byte status);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Query the list of all monitoring information under the specified monitoring type
|
||||||
* 查询指定监控类型下的所有监控信息列表
|
* 查询指定监控类型下的所有监控信息列表
|
||||||
*
|
*
|
||||||
* @param app 监控类型
|
* @param app Monitor Type 监控类型
|
||||||
* @return 监控列表
|
* @return Monitor Entity List 监控列表
|
||||||
*/
|
*/
|
||||||
List<Monitor> getAppMonitors(String app);
|
List<Monitor> getAppMonitors(String app);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -345,7 +345,9 @@ public class MonitorServiceImpl implements MonitorService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void cancelManageMonitors(HashSet<Long> ids) {
|
public void cancelManageMonitors(HashSet<Long> ids) {
|
||||||
|
// Update monitoring status Delete corresponding monitoring periodic task
|
||||||
// 更新监控状态 删除对应的监控周期性任务
|
// 更新监控状态 删除对应的监控周期性任务
|
||||||
|
// The jobId is not deleted, and the jobId is reused again after the management is started.
|
||||||
// jobId不删除 待启动纳管之后再次复用jobId
|
// jobId不删除 待启动纳管之后再次复用jobId
|
||||||
List<Monitor> managedMonitors = monitorDao.findMonitorsByIdIn(ids)
|
List<Monitor> managedMonitors = monitorDao.findMonitorsByIdIn(ids)
|
||||||
.stream().filter(monitor ->
|
.stream().filter(monitor ->
|
||||||
@@ -362,6 +364,7 @@ public class MonitorServiceImpl implements MonitorService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void enableManageMonitors(HashSet<Long> ids) {
|
public void enableManageMonitors(HashSet<Long> ids) {
|
||||||
|
// Update monitoring status Add corresponding monitoring periodic task
|
||||||
// 更新监控状态 新增对应的监控周期性任务
|
// 更新监控状态 新增对应的监控周期性任务
|
||||||
List<Monitor> unManagedMonitors = monitorDao.findMonitorsByIdIn(ids)
|
List<Monitor> unManagedMonitors = monitorDao.findMonitorsByIdIn(ids)
|
||||||
.stream().filter(monitor ->
|
.stream().filter(monitor ->
|
||||||
@@ -371,6 +374,7 @@ public class MonitorServiceImpl implements MonitorService {
|
|||||||
if (!unManagedMonitors.isEmpty()) {
|
if (!unManagedMonitors.isEmpty()) {
|
||||||
monitorDao.saveAll(unManagedMonitors);
|
monitorDao.saveAll(unManagedMonitors);
|
||||||
for (Monitor monitor : unManagedMonitors) {
|
for (Monitor monitor : unManagedMonitors) {
|
||||||
|
// Construct the collection task Job entity
|
||||||
// 构造采集任务Job实体
|
// 构造采集任务Job实体
|
||||||
Job appDefine = appService.getAppDefine(monitor.getApp());
|
Job appDefine = appService.getAppDefine(monitor.getApp());
|
||||||
appDefine.setMonitorId(monitor.getId());
|
appDefine.setMonitorId(monitor.getId());
|
||||||
@@ -381,7 +385,7 @@ public class MonitorServiceImpl implements MonitorService {
|
|||||||
List<Configmap> configmaps = params.stream().map(param ->
|
List<Configmap> configmaps = params.stream().map(param ->
|
||||||
new Configmap(param.getField(), param.getValue(), param.getType())).collect(Collectors.toList());
|
new Configmap(param.getField(), param.getValue(), param.getType())).collect(Collectors.toList());
|
||||||
appDefine.setConfigmap(configmaps);
|
appDefine.setConfigmap(configmaps);
|
||||||
// 下发采集任务
|
// Issue collection tasks 下发采集任务
|
||||||
collectJobService.addAsyncCollectJob(appDefine);
|
collectJobService.addAsyncCollectJob(appDefine);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user