diff --git a/orion-visor-framework/orion-visor-spring-boot-starter-redis/src/main/java/org/dromara/visor/framework/redis/core/utils/RedisMaps.java b/orion-visor-framework/orion-visor-spring-boot-starter-redis/src/main/java/org/dromara/visor/framework/redis/core/utils/RedisMaps.java index ba8a8934..d3c9f58d 100644 --- a/orion-visor-framework/orion-visor-spring-boot-starter-redis/src/main/java/org/dromara/visor/framework/redis/core/utils/RedisMaps.java +++ b/orion-visor-framework/orion-visor-spring-boot-starter-redis/src/main/java/org/dromara/visor/framework/redis/core/utils/RedisMaps.java @@ -312,6 +312,19 @@ public class RedisMaps extends RedisUtils { return getJson(key.getKey(), hashKey, (Class) key.getType()); } + /** + * 获取值 json + * + * @param define define + * @param key key + * @param hashKey hashKey + * @param V + * @return value + */ + public static V getJson(String key, CacheKeyDefine define, Object hashKey) { + return getJson(key, hashKey, (Class) define.getType()); + } + /** * 获取值 json * @@ -355,9 +368,9 @@ public class RedisMaps extends RedisUtils { /** * 获取值 json * - * @param key key - * @param hashKeys hashKeys - * @param V + * @param key key + * @param hashKeys hashKeys + * @param V * @return values */ public static List multiGetJson(CacheKeyDefine key, List hashKeys) { @@ -367,10 +380,10 @@ public class RedisMaps extends RedisUtils { /** * 获取值 json * - * @param key key - * @param hashKeys hashKeys - * @param clazz clazz - * @param V + * @param key key + * @param hashKeys hashKeys + * @param clazz clazz + * @param V * @return values */ public static List multiGetJson(String key, List hashKeys, Class clazz) { diff --git a/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-provider/src/main/java/org/dromara/visor/module/asset/api/HostAgentApi.java b/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-provider/src/main/java/org/dromara/visor/module/asset/api/HostAgentApi.java index b9a3c15d..ac68616e 100644 --- a/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-provider/src/main/java/org/dromara/visor/module/asset/api/HostAgentApi.java +++ b/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-provider/src/main/java/org/dromara/visor/module/asset/api/HostAgentApi.java @@ -48,10 +48,10 @@ public interface HostAgentApi { /** * 获取缓存名称 * - * @param agentKeyList agentKeyList + * @param agentKeys agentKeys * @return nameMap */ - Map getNameCacheByAgentKey(List agentKeyList); + Map getNameCacheByAgentKey(List agentKeys); /** * 获取缓存名称 diff --git a/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/api/impl/HostAgentApiImpl.java b/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/api/impl/HostAgentApiImpl.java index d9831604..57074e0c 100644 --- a/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/api/impl/HostAgentApiImpl.java +++ b/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/api/impl/HostAgentApiImpl.java @@ -103,11 +103,11 @@ public class HostAgentApiImpl implements HostAgentApi { } @Override - public Map getNameCacheByAgentKey(List agentKeyList) { + public Map getNameCacheByAgentKey(List agentKeys) { Map result = new HashMap<>(); List queryList = new ArrayList<>(); // 查询缓存 - for (String agentKey : agentKeyList) { + for (String agentKey : agentKeys) { HostBaseDTO host = AGENT_HOST_CACHE.get(agentKey); if (host != null) { result.put(agentKey, host.getName()); diff --git a/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/dao/HostDAO.java b/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/dao/HostDAO.java index 80842317..ef1c87ef 100644 --- a/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/dao/HostDAO.java +++ b/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/dao/HostDAO.java @@ -92,14 +92,14 @@ public interface HostDAO extends IMapper { /** * 更新探针信息 * - * @param keys agentKeyList - * @param update update + * @param agentKeys agentKeys + * @param update update * @return effect */ - default int updateByAgentKeys(List keys, HostDO update) { + default int updateByAgentKeys(List agentKeys, HostDO update) { update.setUpdateTime(new Date()); // 更新 - return this.update(update, Conditions.in(HostDO::getAgentKey, keys)); + return this.update(update, Conditions.in(HostDO::getAgentKey, agentKeys)); } } diff --git a/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/HostAgentEndpointServiceImpl.java b/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/HostAgentEndpointServiceImpl.java index 9cfc2f36..00307521 100644 --- a/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/HostAgentEndpointServiceImpl.java +++ b/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/service/impl/HostAgentEndpointServiceImpl.java @@ -212,25 +212,25 @@ public class HostAgentEndpointServiceImpl implements HostAgentEndpointService { /** * 标记在线状态 * - * @param agentKeyList agentKeyList - * @param status status + * @param agentKeys agentKeys + * @param status status */ - private void markOnlineStatus(List agentKeyList, AgentOnlineStatusEnum status) { - if (Lists.isEmpty(agentKeyList)) { + private void markOnlineStatus(List agentKeys, AgentOnlineStatusEnum status) { + if (Lists.isEmpty(agentKeys)) { return; } - log.info("HostAgentEndpointService mark {}. count: {}, keys: {}", status, agentKeyList.size(), agentKeyList); + log.info("HostAgentEndpointService mark {}. count: {}, keys: {}", status, agentKeys.size(), agentKeys); // 更新数据 HostDO update = HostDO.builder() .agentOnlineStatus(status.getValue()) .agentOnlineChangeTime(new Date()) .build(); - int effect = hostDAO.updateByAgentKeys(agentKeyList, update); + int effect = hostDAO.updateByAgentKeys(agentKeys, update); // 更新缓存 - agentKeyList.forEach(s -> ONLINE_STATUS_CACHE.put(s, status.getValue())); + agentKeys.forEach(s -> ONLINE_STATUS_CACHE.put(s, status.getValue())); log.info("HostAgentEndpointService mark {}. effect: {}", status, effect); // 插入日志 - List logList = hostDAO.selectIdByAgentKeys(agentKeyList) + List logList = hostDAO.selectIdByAgentKeys(agentKeys) .stream() .map(s -> { HostAgentLogDO agentLog = HostAgentLogDO.builder() @@ -250,7 +250,7 @@ public class HostAgentEndpointServiceImpl implements HostAgentEndpointService { } // 发送已下线事件 if (AgentOnlineStatusEnum.OFFLINE.equals(status)) { - SpringHolder.publishEvent(new AgentOfflineEvent(agentKeyList)); + SpringHolder.publishEvent(new AgentOfflineEvent(agentKeys)); } } diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/controller/AlarmEventController.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/controller/AlarmEventController.java index c6666655..4977a0f7 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/controller/AlarmEventController.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/controller/AlarmEventController.java @@ -48,13 +48,13 @@ import javax.annotation.Resource; import java.util.List; /** - * 告警记录 api + * 告警事件 api * * @author Jiahang Li * @version 1.0.0 * @since 2025-9-17 21:31 */ -@Tag(name = "monitor - 告警记录服务") +@Tag(name = "monitor - 告警事件服务") @Slf4j @Validated @RestWrapper @@ -67,7 +67,7 @@ public class AlarmEventController { @IgnoreLog(IgnoreLogMode.RET) @PostMapping("/query") - @Operation(summary = "分页查询告警记录") + @Operation(summary = "分页查询告警事件") @PreAuthorize("@ss.hasPermission('monitor:alarm-event:query')") public DataGrid getAlarmEventPage(@Validated(Page.class) @RequestBody AlarmEventQueryRequest request) { return alarmEventService.getAlarmEventPage(request); @@ -76,7 +76,7 @@ public class AlarmEventController { @IgnoreLog(IgnoreLogMode.RET) @OperatorLog(AlarmEventOperatorType.HANDLE) @PostMapping("/handle") - @Operation(summary = "处理告警记录") + @Operation(summary = "处理告警事件") @PreAuthorize("@ss.hasPermission('monitor:alarm-event:handle')") public Integer handleAlarmEvent(@Validated @RequestBody AlarmEventHandleRequest request) { return alarmEventService.handleAlarmEvent(request); @@ -92,7 +92,7 @@ public class AlarmEventController { } @PostMapping("/count") - @Operation(summary = "查询告警记录数量") + @Operation(summary = "查询告警事件数量") @PreAuthorize("@ss.hasPermission('monitor:alarm-event:query')") public Long getAlarmEventCount(@Validated @RequestBody AlarmEventQueryRequest request) { return alarmEventService.getAlarmEventCount(request); @@ -101,7 +101,7 @@ public class AlarmEventController { @DemoDisableApi @OperatorLog(AlarmEventOperatorType.DELETE) @DeleteMapping("/delete") - @Operation(summary = "删除告警记录") + @Operation(summary = "删除告警事件") @Parameter(name = "id", description = "id", required = true) @PreAuthorize("@ss.hasPermission('monitor:alarm-event:delete')") public Integer deleteAlarmEvent(@RequestParam("id") Long id) { @@ -111,7 +111,7 @@ public class AlarmEventController { @DemoDisableApi @OperatorLog(AlarmEventOperatorType.DELETE) @DeleteMapping("/batch-delete") - @Operation(summary = "批量删除告警记录") + @Operation(summary = "批量删除告警事件") @Parameter(name = "idList", description = "idList", required = true) @PreAuthorize("@ss.hasPermission('monitor:alarm-event:delete')") public Integer batchDeleteAlarmEvent(@RequestParam("idList") List idList) { @@ -121,7 +121,7 @@ public class AlarmEventController { @DemoDisableApi @OperatorLog(AlarmEventOperatorType.CLEAR) @PostMapping("/clear") - @Operation(summary = "清理告警记录") + @Operation(summary = "清理告警事件") @PreAuthorize("@ss.hasPermission('monitor:alarm-event:management:clear')") public Integer clearAlarmEvent(@Validated @RequestBody AlarmEventClearRequest request) { return alarmEventService.clearAlarmEvent(request); diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/controller/AlarmPolicyRuleController.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/controller/AlarmPolicyRuleController.java index 8edb642f..d82eaf9e 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/controller/AlarmPolicyRuleController.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/controller/AlarmPolicyRuleController.java @@ -93,11 +93,11 @@ public class AlarmPolicyRuleController { @GetMapping("/list") @Operation(summary = "查询全部监控告警规则") @Parameter(name = "policyId", description = "policyId", required = true) - @Parameter(name = "metricsMeasurement", description = "metricsMeasurement") + @Parameter(name = "measurement", description = "measurement") @PreAuthorize("@ss.hasPermission('monitor:alarm-policy:query')") public List getAlarmPolicyRuleList(@RequestParam("policyId") Long policyId, - @RequestParam(value = "metricsMeasurement", required = false) String metricsMeasurement) { - return alarmPolicyRuleService.getAlarmPolicyRuleList(policyId, metricsMeasurement); + @RequestParam(value = "measurement", required = false) String measurement) { + return alarmPolicyRuleService.getAlarmPolicyRuleList(policyId, measurement); } @DemoDisableApi diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/controller/MonitorHostController.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/controller/MonitorHostController.java index 53544890..bc976a8c 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/controller/MonitorHostController.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/controller/MonitorHostController.java @@ -38,10 +38,7 @@ import org.dromara.visor.framework.web.core.annotation.RestWrapper; import org.dromara.visor.module.monitor.define.operator.MonitorHostOperatorType; import org.dromara.visor.module.monitor.engine.MonitorContext; import org.dromara.visor.module.monitor.entity.dto.AgentMetricsDataDTO; -import org.dromara.visor.module.monitor.entity.request.host.MonitorHostChartRequest; -import org.dromara.visor.module.monitor.entity.request.host.MonitorHostQueryRequest; -import org.dromara.visor.module.monitor.entity.request.host.MonitorHostSwitchUpdateRequest; -import org.dromara.visor.module.monitor.entity.request.host.MonitorHostUpdateRequest; +import org.dromara.visor.module.monitor.entity.request.host.*; import org.dromara.visor.module.monitor.entity.vo.MonitorHostMetricsDataVO; import org.dromara.visor.module.monitor.entity.vo.MonitorHostVO; import org.dromara.visor.module.monitor.service.MonitorHostService; @@ -95,7 +92,7 @@ public class MonitorHostController { @Operation(summary = "查询监控指标") @PreAuthorize("@ss.hasPermission('monitor:monitor-host:query')") public List getMonitorHostMetrics(@Validated(Key.class) @RequestBody MonitorHostQueryRequest request) { - return monitorHostService.getMonitorHostMetrics(request.getAgentKeyList()); + return monitorHostService.getMonitorHostMetrics(request.getAgentKeys()); } @IgnoreLog(IgnoreLogMode.RET) @@ -106,6 +103,14 @@ public class MonitorHostController { return monitorHostService.getMonitorHostChart(request); } + @IgnoreLog(IgnoreLogMode.RET) + @PostMapping("/host-tags") + @Operation(summary = "查询监控告警标签") + @PreAuthorize("@ss.hasPermission('monitor:monitor-host:query')") + public List getMonitorHostTags(@RequestBody MonitorHostQueryTagRequest request) { + return monitorHostService.getMonitorHostTags(request); + } + @DemoDisableApi @OperatorLog(MonitorHostOperatorType.UPDATE) @PutMapping("/update") diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/convert/AlarmEventConvert.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/convert/AlarmEventConvert.java index 02ff51e9..37fbc756 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/convert/AlarmEventConvert.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/convert/AlarmEventConvert.java @@ -34,7 +34,7 @@ import org.mapstruct.factory.Mappers; import java.util.List; /** - * 监控告警记录 内部对象转换器 + * 监控告警事件 内部对象转换器 * * @author Jiahang Li * @version 1.0.0 diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/dao/AlarmEventDAO.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/dao/AlarmEventDAO.java index 723e56ce..bca1dda3 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/dao/AlarmEventDAO.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/dao/AlarmEventDAO.java @@ -32,7 +32,7 @@ import java.util.Date; import java.util.List; /** - * 监控告警记录 Mapper 接口 + * 监控告警事件 Mapper 接口 * * @author Jiahang Li * @version 1.0.0 diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/dao/MonitorHostDAO.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/dao/MonitorHostDAO.java index be453484..2a44f28d 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/dao/MonitorHostDAO.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/dao/MonitorHostDAO.java @@ -95,6 +95,20 @@ public interface MonitorHostDAO extends IMapper { return this.delete(Conditions.in(MonitorHostDO::getHostId, hostIdList)); } + /** + * 通过 policyId 查询 + * + * @param policyId policyId + * @return row + */ + default List selectByPolicyId(Long policyId) { + return this.of() + .createWrapper() + .eq(MonitorHostDO::getPolicyId, policyId) + .then() + .list(); + } + /** * 设置 policyId 为 null * diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/define/cache/AlarmPolicyCacheKeyDefine.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/define/cache/AlarmPolicyCacheKeyDefine.java index 20ae552d..ca4fac0f 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/define/cache/AlarmPolicyCacheKeyDefine.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/define/cache/AlarmPolicyCacheKeyDefine.java @@ -38,7 +38,7 @@ import java.util.concurrent.TimeUnit; */ public interface AlarmPolicyCacheKeyDefine { - CacheKeyDefine MONITOR_ALARM_POLICY = new CacheKeyBuilder() + CacheKeyDefine ALARM_POLICY = new CacheKeyBuilder() .key("alarm:policy:list") .desc("告警策略") .type(AlarmPolicyCacheDTO.class) @@ -49,6 +49,7 @@ public interface AlarmPolicyCacheKeyDefine { CacheKeyDefine ALARM_RULE_SILENCE = new CacheKeyBuilder() .key("alarm:silence:{}:{}") .desc("告警规则沉默标志 ${agentKey} ${ruleId}") + .type(Long.class) .struct(RedisCacheStruct.STRING) .build(); diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/define/operator/AlarmEventOperatorType.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/define/operator/AlarmEventOperatorType.java index e81fbb6a..c52a625b 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/define/operator/AlarmEventOperatorType.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/define/operator/AlarmEventOperatorType.java @@ -30,7 +30,7 @@ import static org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRi import static org.dromara.visor.framework.biz.operator.log.core.enums.OperatorRiskLevel.L; /** - * 监控告警记录 操作日志类型 + * 监控告警事件 操作日志类型 * * @author Jiahang Li * @version 1.0.0 @@ -51,9 +51,9 @@ public class AlarmEventOperatorType extends InitializingOperatorTypes { public OperatorType[] types() { return new OperatorType[]{ new OperatorType(L, HANDLE, "设置告警状态为 ${status} ${count} 条"), - new OperatorType(L, SET_FALSE, "设置告警记录为误报 ${count} 条"), - new OperatorType(H, DELETE, "删除告警记录 ${count} 条"), - new OperatorType(H, CLEAR, "清理告警记录 ${count} 条"), + new OperatorType(L, SET_FALSE, "设置告警事件为误报 ${count} 条"), + new OperatorType(H, DELETE, "删除告警事件 ${count} 条"), + new OperatorType(H, CLEAR, "清理告警事件 ${count} 条"), }; } diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/domain/AlarmEventDO.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/domain/AlarmEventDO.java index d8119157..a9c0fab4 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/domain/AlarmEventDO.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/domain/AlarmEventDO.java @@ -36,7 +36,7 @@ import java.math.BigDecimal; import java.util.Date; /** - * 监控告警记录 实体对象 + * 监控告警事件 实体对象 * * @author Jiahang Li * @version 1.0.0 @@ -48,7 +48,7 @@ import java.util.Date; @AllArgsConstructor @EqualsAndHashCode(callSuper = true) @TableName(value = "monitor_alarm_event", autoResultMap = true) -@Schema(name = "AlarmEventDO", description = "监控告警记录 实体对象") +@Schema(name = "AlarmEventDO", description = "监控告警事件 实体对象") public class AlarmEventDO extends BaseDO { private static final long serialVersionUID = 1L; diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/alarm/AlarmEventClearRequest.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/alarm/AlarmEventClearRequest.java index b3e9ebc0..dcb7811d 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/alarm/AlarmEventClearRequest.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/alarm/AlarmEventClearRequest.java @@ -32,7 +32,7 @@ import javax.validation.constraints.Min; import javax.validation.constraints.NotNull; /** - * 监控告警记录 清理请求对象 + * 监控告警事件 清理请求对象 * * @author Jiahang Li * @version 1.0.0 @@ -40,7 +40,7 @@ import javax.validation.constraints.NotNull; */ @Data @EqualsAndHashCode(callSuper = true) -@Schema(name = "AlarmEventClearRequest", description = "监控告警记录 清理请求对象") +@Schema(name = "AlarmEventClearRequest", description = "监控告警事件 清理请求对象") public class AlarmEventClearRequest extends AlarmEventQueryRequest implements DataClearRequest { @NotNull diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/alarm/AlarmEventHandleRequest.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/alarm/AlarmEventHandleRequest.java index 2387b5b2..d0af6772 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/alarm/AlarmEventHandleRequest.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/alarm/AlarmEventHandleRequest.java @@ -38,7 +38,7 @@ import java.util.Date; import java.util.List; /** - * 监控告警记录 更新请求对象 + * 监控告警事件 更新请求对象 * * @author Jiahang Li * @version 1.0.0 @@ -48,7 +48,7 @@ import java.util.List; @Builder @NoArgsConstructor @AllArgsConstructor -@Schema(name = "AlarmEventUpdateRequest", description = "监控告警记录 更新请求对象") +@Schema(name = "AlarmEventUpdateRequest", description = "监控告警事件 更新请求对象") public class AlarmEventHandleRequest implements Serializable { private static final long serialVersionUID = 1L; diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/alarm/AlarmEventQueryRequest.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/alarm/AlarmEventQueryRequest.java index caa8bcf5..5ea96e89 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/alarm/AlarmEventQueryRequest.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/alarm/AlarmEventQueryRequest.java @@ -31,7 +31,7 @@ import javax.validation.constraints.Size; import java.util.Date; /** - * 监控告警记录 查询请求对象 + * 监控告警事件 查询请求对象 * * @author Jiahang Li * @version 1.0.0 @@ -42,7 +42,7 @@ import java.util.Date; @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode(callSuper = true) -@Schema(name = "AlarmEventQueryRequest", description = "监控告警记录 查询请求对象") +@Schema(name = "AlarmEventQueryRequest", description = "监控告警事件 查询请求对象") public class AlarmEventQueryRequest extends BaseQueryRequest { @Schema(description = "id") diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/alarm/AlarmEventSetFalseRequest.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/alarm/AlarmEventSetFalseRequest.java index 29e44080..df8bf435 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/alarm/AlarmEventSetFalseRequest.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/alarm/AlarmEventSetFalseRequest.java @@ -33,7 +33,7 @@ import java.io.Serializable; import java.util.List; /** - * 监控告警记录 设置误报请求对象 + * 监控告警事件 设置误报请求对象 * * @author Jiahang Li * @version 1.0.0 @@ -43,7 +43,7 @@ import java.util.List; @Builder @NoArgsConstructor @AllArgsConstructor -@Schema(name = "AlarmEventSetFalseRequest", description = "监控告警记录 设置误报请求对象") +@Schema(name = "AlarmEventSetFalseRequest", description = "监控告警事件 设置误报请求对象") public class AlarmEventSetFalseRequest implements Serializable { private static final long serialVersionUID = 1L; diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/host/MonitorHostQueryRequest.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/host/MonitorHostQueryRequest.java index d920e405..ed2d6606 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/host/MonitorHostQueryRequest.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/host/MonitorHostQueryRequest.java @@ -46,7 +46,7 @@ public class MonitorHostQueryRequest extends BaseQueryRequest { @NotEmpty(groups = Key.class) @Schema(description = "agentKey") - private List agentKeyList; + private List agentKeys; @Schema(description = "搜索") private String searchValue; diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/host/MonitorHostQueryTagRequest.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/host/MonitorHostQueryTagRequest.java new file mode 100644 index 00000000..436bb0e0 --- /dev/null +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/request/host/MonitorHostQueryTagRequest.java @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2023 - present Dromara, All rights reserved. + * + * https://visor.dromara.org + * https://visor.dromara.org.cn + * https://visor.orionsec.cn + * + * Members: + * Jiahang Li - ljh1553488six@139.com - author + * + * Licensed 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. + */ +package org.dromara.visor.module.monitor.entity.request.host; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.visor.common.entity.BaseQueryRequest; + +import java.util.List; + +/** + * 监控主机标签 查询请求对象 + * + * @author Jiahang Li + * @version 1.0.0 + * @since 2025-8-14 16:27 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Schema(name = "MonitorHostQueryTagRequest", description = "监控主机标签 查询请求对象") +public class MonitorHostQueryTagRequest extends BaseQueryRequest { + + @Schema(description = "数据集") + private String measurement; + + @Schema(description = "策略id") + private Long policyId; + + @Schema(description = "agentKey") + private List agentKeys; + +} diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/vo/AlarmEventVO.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/vo/AlarmEventVO.java index b496a310..a5316e5b 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/vo/AlarmEventVO.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/entity/vo/AlarmEventVO.java @@ -33,7 +33,7 @@ import java.math.BigDecimal; import java.util.Date; /** - * 监控告警记录 视图响应对象 + * 监控告警事件 视图响应对象 * * @author Jiahang Li * @version 1.0.0 @@ -43,7 +43,7 @@ import java.util.Date; @Builder @NoArgsConstructor @AllArgsConstructor -@Schema(name = "AlarmEventVO", description = "监控告警记录 视图响应对象") +@Schema(name = "AlarmEventVO", description = "监控告警事件 视图响应对象") public class AlarmEventVO implements Serializable { private static final long serialVersionUID = 1L; diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/enums/AlarmHandleStatusEnum.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/enums/AlarmHandleStatusEnum.java index d15e369d..c255c2d2 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/enums/AlarmHandleStatusEnum.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/enums/AlarmHandleStatusEnum.java @@ -23,7 +23,7 @@ package org.dromara.visor.module.monitor.enums; /** - * 告警记录处理状态 + * 告警事件处理状态 * * @author Jiahang Li * @version 1.0.0 diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/enums/MeasurementEnum.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/enums/MeasurementEnum.java index 937c26d1..2e8cc706 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/enums/MeasurementEnum.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/enums/MeasurementEnum.java @@ -43,7 +43,7 @@ public enum MeasurementEnum { /** * cpu */ - CPU("cpu", (s) -> { + CPU("cpu", true, (s) -> { s.accept(MetricsConst.CPU_USER_SECONDS_TOTAL, double.class); s.accept(MetricsConst.CPU_SYSTEM_SECONDS_TOTAL, double.class); s.accept(MetricsConst.CPU_TOTAL_SECONDS_TOTAL, double.class); @@ -52,7 +52,7 @@ public enum MeasurementEnum { /** * 内存 */ - MEMORY("memory", s -> { + MEMORY("memory", false, s -> { s.accept(MetricsConst.MEM_USED_BYTES_TOTAL, long.class); s.accept(MetricsConst.MEM_USED_PERCENT, double.class); s.accept(MetricsConst.MEM_SWAP_USED_BYTES_TOTAL, long.class); @@ -62,7 +62,7 @@ public enum MeasurementEnum { /** * 负载 */ - LOAD("load", s -> { + LOAD("load", false, s -> { s.accept(MetricsConst.LOAD1, double.class); s.accept(MetricsConst.LOAD5, double.class); s.accept(MetricsConst.LOAD15, double.class); @@ -74,7 +74,7 @@ public enum MeasurementEnum { /** * 磁盘 */ - DISK("disk", s -> { + DISK("disk", true, s -> { s.accept(MetricsConst.DISK_FS_USED_BYTES_TOTAL, long.class); s.accept(MetricsConst.DISK_FS_USED_PERCENT, double.class); s.accept(MetricsConst.DISK_FS_INODES_USED_PERCENT, double.class); @@ -83,7 +83,7 @@ public enum MeasurementEnum { /** * io */ - IO("io", s -> { + IO("io", false, s -> { s.accept(MetricsConst.DISK_IO_READ_BYTES_TOTAL, long.class); s.accept(MetricsConst.DISK_IO_WRITE_BYTES_TOTAL, long.class); s.accept(MetricsConst.DISK_IO_READS_TOTAL, long.class); @@ -97,7 +97,7 @@ public enum MeasurementEnum { /** * 网络 */ - NETWORK("network", s -> { + NETWORK("network", true, s -> { s.accept(MetricsConst.NET_SENT_BYTES_TOTAL, long.class); s.accept(MetricsConst.NET_RECV_BYTES_TOTAL, long.class); s.accept(MetricsConst.NET_SENT_PACKETS_TOTAL, long.class); @@ -111,7 +111,7 @@ public enum MeasurementEnum { /** * 连接数 */ - CONNECTIONS("connections", s -> { + CONNECTIONS("connections", false, s -> { s.accept(MetricsConst.NET_TCP_CONNECTIONS, int.class); s.accept(MetricsConst.NET_UDP_CONNECTIONS, int.class); s.accept(MetricsConst.NET_INET_CONNECTIONS, int.class); @@ -121,10 +121,14 @@ public enum MeasurementEnum { ; private final String measurement; + + private final boolean hasTags; + private final Map> fields; - MeasurementEnum(String measurement, Consumer>> register) { + MeasurementEnum(String measurement, boolean hasTags, Consumer>> register) { this.measurement = measurement; + this.hasTags = hasTags; this.fields = new HashedMap<>(); register.accept(this.fields::put); } diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/enums/MeasurementFieldEnum.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/enums/MeasurementFieldEnum.java deleted file mode 100644 index c8936655..00000000 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/enums/MeasurementFieldEnum.java +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Copyright (c) 2023 - present Dromara, All rights reserved. - * - * https://visor.dromara.org - * https://visor.dromara.org.cn - * https://visor.orionsec.cn - * - * Members: - * Jiahang Li - ljh1553488six@139.com - author - * - * Licensed 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. - */ -package org.dromara.visor.module.monitor.enums; - -import lombok.Getter; -import org.apache.commons.collections4.map.HashedMap; -import org.dromara.visor.module.monitor.constant.MetricsConst; - -import java.util.Map; -import java.util.function.BiConsumer; -import java.util.function.Consumer; - -/** - * 指标度量类型 - * - * @author Jiahang Li - * @version 1.0.0 - * @since 2025/8/14 10:27 - */ -@Getter -public enum MeasurementFieldEnum { - - /** - * cpu - */ - CPU("cpu", (s) -> { - s.accept(MetricsConst.CPU_USER_SECONDS_TOTAL, double.class); - s.accept(MetricsConst.CPU_SYSTEM_SECONDS_TOTAL, double.class); - s.accept(MetricsConst.CPU_TOTAL_SECONDS_TOTAL, double.class); - }), - - /** - * 内存 - */ - MEMORY("memory", s -> { - s.accept(MetricsConst.MEM_USED_BYTES_TOTAL, long.class); - s.accept(MetricsConst.MEM_USED_PERCENT, double.class); - s.accept(MetricsConst.MEM_SWAP_USED_BYTES_TOTAL, long.class); - s.accept(MetricsConst.MEM_SWAP_USED_PERCENT, double.class); - }), - - /** - * 负载 - */ - LOAD("load", s -> { - s.accept(MetricsConst.LOAD1, double.class); - s.accept(MetricsConst.LOAD5, double.class); - s.accept(MetricsConst.LOAD15, double.class); - s.accept(MetricsConst.LOAD1_CORE_RATIO, double.class); - s.accept(MetricsConst.LOAD5_CORE_RATIO, double.class); - s.accept(MetricsConst.LOAD15_CORE_RATIO, double.class); - }), - - /** - * 磁盘 - */ - DISK("disk", s -> { - s.accept(MetricsConst.DISK_FS_USED_BYTES_TOTAL, long.class); - s.accept(MetricsConst.DISK_FS_USED_PERCENT, double.class); - s.accept(MetricsConst.DISK_FS_INODES_USED_PERCENT, double.class); - }), - - /** - * io - */ - IO("io", s -> { - s.accept(MetricsConst.DISK_IO_READ_BYTES_TOTAL, long.class); - s.accept(MetricsConst.DISK_IO_WRITE_BYTES_TOTAL, long.class); - s.accept(MetricsConst.DISK_IO_READS_TOTAL, long.class); - s.accept(MetricsConst.DISK_IO_WRITES_TOTAL, long.class); - s.accept(MetricsConst.DISK_IO_READ_BYTES_PER_SECOND, double.class); - s.accept(MetricsConst.DISK_IO_WRITE_BYTES_PER_SECOND, double.class); - s.accept(MetricsConst.DISK_IO_READS_PER_SECOND, double.class); - s.accept(MetricsConst.DISK_IO_WRITES_PER_SECOND, double.class); - }), - - /** - * 网络 - */ - NETWORK("network", s -> { - s.accept(MetricsConst.NET_SENT_BYTES_TOTAL, long.class); - s.accept(MetricsConst.NET_RECV_BYTES_TOTAL, long.class); - s.accept(MetricsConst.NET_SENT_PACKETS_TOTAL, long.class); - s.accept(MetricsConst.NET_RECV_PACKETS_TOTAL, long.class); - s.accept(MetricsConst.NET_SENT_BYTES_PER_SECOND, double.class); - s.accept(MetricsConst.NET_RECV_BYTES_PER_SECOND, double.class); - s.accept(MetricsConst.NET_SENT_PACKETS_PER_SECOND, double.class); - s.accept(MetricsConst.NET_RECV_PACKETS_PER_SECOND, double.class); - }), - - /** - * 连接数 - */ - CONNECTIONS("connections", s -> { - s.accept(MetricsConst.NET_TCP_CONNECTIONS, int.class); - s.accept(MetricsConst.NET_UDP_CONNECTIONS, int.class); - s.accept(MetricsConst.NET_INET_CONNECTIONS, int.class); - s.accept(MetricsConst.NET_ALL_CONNECTIONS, int.class); - }), - - ; - - private final String measurement; - private final Map> fields; - - MeasurementFieldEnum(String measurement, Consumer>> register) { - this.measurement = measurement; - this.fields = new HashedMap<>(); - register.accept(this.fields::put); - } - - public static MeasurementFieldEnum of(String measurement) { - if (measurement == null) { - return null; - } - for (MeasurementFieldEnum e : values()) { - if (e.measurement.equals(measurement)) { - return e; - } - } - return null; - } - - /** - * 获取度量值类型 - * - * @param measurement measurement - * @param field field - * @return type - */ - public static Class getMetricsValueType(String measurement, String field) { - MeasurementFieldEnum m = of(measurement); - if (m == null) { - return null; - } - return m.getFields().get(field); - } - -} diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/AlarmEventService.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/AlarmEventService.java index 952ab763..9cbff4d6 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/AlarmEventService.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/AlarmEventService.java @@ -35,7 +35,7 @@ import org.dromara.visor.module.monitor.entity.vo.AlarmEventVO; import java.util.List; /** - * 监控告警记录 服务类 + * 监控告警事件 服务类 * * @author Jiahang Li * @version 1.0.0 @@ -44,14 +44,14 @@ import java.util.List; public interface AlarmEventService { /** - * 创建监控告警记录 + * 创建监控告警事件 * * @param record record */ void createAlarmEvent(AlarmEventDO record); /** - * 处理告警记录 + * 处理告警事件 * * @param request request * @return effect @@ -67,7 +67,7 @@ public interface AlarmEventService { Integer setAlarmEventFalse(AlarmEventSetFalseRequest request); /** - * 分页查询监控告警记录 + * 分页查询监控告警事件 * * @param request request * @return rows @@ -75,7 +75,7 @@ public interface AlarmEventService { DataGrid getAlarmEventPage(AlarmEventQueryRequest request); /** - * 查询监控告警记录数量 + * 查询监控告警事件数量 * * @param request request * @return count @@ -83,7 +83,7 @@ public interface AlarmEventService { Long getAlarmEventCount(AlarmEventQueryRequest request); /** - * 删除监控告警记录 + * 删除监控告警事件 * * @param id id * @return effect @@ -91,7 +91,7 @@ public interface AlarmEventService { Integer deleteAlarmEventById(Long id); /** - * 批量删除监控告警记录 + * 批量删除监控告警事件 * * @param idList idList * @return effect @@ -99,7 +99,7 @@ public interface AlarmEventService { Integer deleteAlarmEventByIdList(List idList); /** - * 清理监控告警记录 + * 清理监控告警事件 * * @param request request * @return effect @@ -107,7 +107,7 @@ public interface AlarmEventService { Integer clearAlarmEvent(AlarmEventClearRequest request); /** - * 获取策略告警记录数量 + * 获取策略告警事件数量 * * @param policyIdList policyIdList * @param startDay startDay diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/AlarmPolicyRuleService.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/AlarmPolicyRuleService.java index c9da8d9a..a7de8b5a 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/AlarmPolicyRuleService.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/AlarmPolicyRuleService.java @@ -73,11 +73,11 @@ public interface AlarmPolicyRuleService { /** * 查询全部监控告警规则 * - * @param policyId policyId - * @param metricsMeasurement metricsMeasurement + * @param policyId policyId + * @param measurement measurement * @return rows */ - List getAlarmPolicyRuleList(Long policyId, String metricsMeasurement); + List getAlarmPolicyRuleList(Long policyId, String measurement); /** * 通过 metricsId 删除监控告警规则 diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/MonitorHostService.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/MonitorHostService.java index c5fc3e5c..61238697 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/MonitorHostService.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/MonitorHostService.java @@ -24,10 +24,7 @@ package org.dromara.visor.module.monitor.service; import cn.orionsec.kit.lang.define.wrapper.DataGrid; import org.dromara.visor.common.entity.chart.TimeChartSeries; -import org.dromara.visor.module.monitor.entity.request.host.MonitorHostChartRequest; -import org.dromara.visor.module.monitor.entity.request.host.MonitorHostQueryRequest; -import org.dromara.visor.module.monitor.entity.request.host.MonitorHostSwitchUpdateRequest; -import org.dromara.visor.module.monitor.entity.request.host.MonitorHostUpdateRequest; +import org.dromara.visor.module.monitor.entity.request.host.*; import org.dromara.visor.module.monitor.entity.vo.MonitorHostMetricsDataVO; import org.dromara.visor.module.monitor.entity.vo.MonitorHostVO; @@ -53,10 +50,10 @@ public interface MonitorHostService { /** * 获取监控主机指标数据 * - * @param agentKeyList agentKeyList + * @param agentKeys agentKeys * @return metrics */ - List getMonitorHostMetrics(List agentKeyList); + List getMonitorHostMetrics(List agentKeys); /** * 获取监控主机图表数据 @@ -66,6 +63,14 @@ public interface MonitorHostService { */ List getMonitorHostChart(MonitorHostChartRequest request); + /** + * 查询监控告警标签 + * + * @param request request + * @return tags + */ + List getMonitorHostTags(MonitorHostQueryTagRequest request); + /** * 更新监控主机 * diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/impl/AlarmEventServiceImpl.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/impl/AlarmEventServiceImpl.java index 612ac92d..0838c56d 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/impl/AlarmEventServiceImpl.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/impl/AlarmEventServiceImpl.java @@ -62,7 +62,7 @@ import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; /** - * 监控告警记录 服务实现类 + * 监控告警事件 服务实现类 * * @author Jiahang Li * @version 1.0.0 diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/impl/AlarmPolicyRuleServiceImpl.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/impl/AlarmPolicyRuleServiceImpl.java index 7946347f..94786850 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/impl/AlarmPolicyRuleServiceImpl.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/impl/AlarmPolicyRuleServiceImpl.java @@ -160,13 +160,13 @@ public class AlarmPolicyRuleServiceImpl implements AlarmPolicyRuleService { } @Override - public List getAlarmPolicyRuleList(Long policyId, String metricsMeasurement) { + public List getAlarmPolicyRuleList(Long policyId, String measurement) { // 查询 return alarmPolicyRuleDAO.of() .createWrapper() .eq(AlarmPolicyRuleDO::getPolicyId, policyId) - .eq(Strings.isNotBlank(metricsMeasurement), AlarmPolicyRuleDO::getMetricsMeasurement, metricsMeasurement) - // 想同的指标在一起 + .eq(Strings.isNotBlank(measurement), AlarmPolicyRuleDO::getMetricsMeasurement, measurement) + // 相同的指标在一起 .orderByAsc(AlarmPolicyRuleDO::getMetricsId) // 通过 p0 > p1 排序 .orderByAsc(AlarmPolicyRuleDO::getLevel) diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/impl/AlarmPolicyServiceImpl.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/impl/AlarmPolicyServiceImpl.java index a0b98134..ca415b4b 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/impl/AlarmPolicyServiceImpl.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/impl/AlarmPolicyServiceImpl.java @@ -173,14 +173,14 @@ public class AlarmPolicyServiceImpl implements AlarmPolicyService { @Override public List getAlarmPolicyListByCache() { // 查询缓存 - List list = RedisMaps.valuesJson(AlarmPolicyCacheKeyDefine.MONITOR_ALARM_POLICY); + List list = RedisMaps.valuesJson(AlarmPolicyCacheKeyDefine.ALARM_POLICY); if (list.isEmpty()) { // 查询数据库 list = alarmPolicyDAO.of().list(AlarmPolicyConvert.MAPPER::toCache); // 设置屏障 防止穿透 CacheBarriers.checkBarrier(list, AlarmPolicyCacheDTO::new); // 设置缓存 - RedisMaps.putAllJson(AlarmPolicyCacheKeyDefine.MONITOR_ALARM_POLICY, s -> s.getId().toString(), list); + RedisMaps.putAllJson(AlarmPolicyCacheKeyDefine.ALARM_POLICY, s -> s.getId().toString(), list); } // 删除屏障 CacheBarriers.removeBarrier(list); diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/impl/MonitorAgentEndpointServiceImpl.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/impl/MonitorAgentEndpointServiceImpl.java index 0c445078..a3777cac 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/impl/MonitorAgentEndpointServiceImpl.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/impl/MonitorAgentEndpointServiceImpl.java @@ -147,7 +147,7 @@ public class MonitorAgentEndpointServiceImpl implements MonitorAgentEndpointServ } monitorHostDAO.updateById(update); } - // 设置配置缓存 + // 重新加载监控主机上下文 if (newConfig != null) { monitorContext.reloadMonitorHost(agentKey); } diff --git a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/impl/MonitorHostServiceImpl.java b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/impl/MonitorHostServiceImpl.java index 84623030..5d343e43 100644 --- a/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/impl/MonitorHostServiceImpl.java +++ b/orion-visor-modules/orion-visor-module-monitor/orion-visor-module-monitor-service/src/main/java/org/dromara/visor/module/monitor/service/impl/MonitorHostServiceImpl.java @@ -55,10 +55,7 @@ import org.dromara.visor.module.monitor.engine.MonitorContext; import org.dromara.visor.module.monitor.entity.domain.AlarmPolicyDO; import org.dromara.visor.module.monitor.entity.domain.MonitorHostDO; import org.dromara.visor.module.monitor.entity.dto.*; -import org.dromara.visor.module.monitor.entity.request.host.MonitorHostChartRequest; -import org.dromara.visor.module.monitor.entity.request.host.MonitorHostQueryRequest; -import org.dromara.visor.module.monitor.entity.request.host.MonitorHostSwitchUpdateRequest; -import org.dromara.visor.module.monitor.entity.request.host.MonitorHostUpdateRequest; +import org.dromara.visor.module.monitor.entity.request.host.*; import org.dromara.visor.module.monitor.entity.vo.MonitorHostMetricsDataVO; import org.dromara.visor.module.monitor.entity.vo.MonitorHostVO; import org.dromara.visor.module.monitor.enums.AlarmSwitchEnum; @@ -188,8 +185,8 @@ public class MonitorHostServiceImpl implements MonitorHostService { } @Override - public List getMonitorHostMetrics(List agentKeyList) { - return agentKeyList.stream() + public List getMonitorHostMetrics(List agentKeys) { + return agentKeys.stream() .map(s -> this.getHostMetricsData(s, null)) .collect(Collectors.toList()); } @@ -235,6 +232,44 @@ public class MonitorHostServiceImpl implements MonitorHostService { return seriesList; } + @Override + public List getMonitorHostTags(MonitorHostQueryTagRequest request) { + MeasurementEnum measurementEnum = MeasurementEnum.of(request.getMeasurement()); + if (measurementEnum == null) { + return Collections.emptyList(); + } + // 映射数据 + Function> tagsGetter; + if (MeasurementEnum.CPU.equals(measurementEnum)) { + tagsGetter = MonitorHostMetaDTO::getCpus; + } else if (MeasurementEnum.DISK.equals(measurementEnum)) { + tagsGetter = MonitorHostMetaDTO::getDisks; + } else if (MeasurementEnum.NETWORK.equals(measurementEnum)) { + tagsGetter = MonitorHostMetaDTO::getNets; + } else { + return Collections.emptyList(); + } + // 查询监控主机元数据 + List metas = monitorHostDAO.of() + .createValidateWrapper() + .eq(MonitorHostDO::getPolicyId, request.getPolicyId()) + .in(MonitorHostDO::getAgentKey, request.getAgentKeys()) + .then() + .stream() + .map(MonitorHostDO::getMonitorMeta) + .filter(Objects::nonNull) + .map(s -> JSON.parseObject(s, MonitorHostMetaDTO.class)) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + // 获取 tag + return metas.stream() + .map(tagsGetter) + .flatMap(Collection::stream) + .filter(Objects::nonNull) + .distinct() + .collect(Collectors.toList()); + } + @Override @Transactional(rollbackFor = Exception.class) public Integer updateMonitorHostById(MonitorHostUpdateRequest request) { @@ -272,7 +307,7 @@ public class MonitorHostServiceImpl implements MonitorHostService { if (policyId == null) { monitorHostDAO.setPolicyIdWithNullById(id); } - // 更新缓存 + // 重新加载监控主机上下文 monitorContext.reloadMonitorHost(host.getAgentKey()); log.info("MonitorHostService-updateMonitorHostById effect: {}", effect); return effect; diff --git a/orion-visor-ui/src/api/monitor/alarm-event.ts b/orion-visor-ui/src/api/monitor/alarm-event.ts index 28eff525..9c3f8d65 100644 --- a/orion-visor-ui/src/api/monitor/alarm-event.ts +++ b/orion-visor-ui/src/api/monitor/alarm-event.ts @@ -4,7 +4,7 @@ import axios from 'axios'; import qs from 'query-string'; /** - * 告警记录处理请求 + * 告警事件处理请求 */ export interface AlarmEventHandleRequest { idList?: Array; @@ -14,14 +14,14 @@ export interface AlarmEventHandleRequest { } /** - * 告警记录误报请求 + * 告警事件误报请求 */ export interface AlarmEventFalseAlarmRequest { idList?: Array; } /** - * 告警记录查询请求 + * 告警事件查询请求 */ export interface AlarmEventQueryRequest extends Pagination, OrderDirection { id?: number; @@ -39,13 +39,13 @@ export interface AlarmEventQueryRequest extends Pagination, OrderDirection { } /** - * 告警记录清理请求 + * 告警事件清理请求 */ export interface AlarmEventClearRequest extends AlarmEventQueryRequest, ClearRequest { } /** - * 告警记录查询响应 + * 告警事件查询响应 */ export interface AlarmEventQueryResponse extends TableData { id: number; @@ -75,7 +75,7 @@ export interface AlarmEventQueryResponse extends TableData { } /** - * 处理告警记录 + * 处理告警事件 */ export function handleAlarmEvent(request: AlarmEventHandleRequest) { return axios.post('/monitor/alarm-event/handle', request); @@ -89,28 +89,28 @@ export function setAlarmEventFalse(request: AlarmEventFalseAlarmRequest) { } /** - * 分页查询告警记录 + * 分页查询告警事件 */ export function getAlarmEventPage(request: AlarmEventQueryRequest) { return axios.post>('/monitor/alarm-event/query', request); } /** - * 查询告警记录数量 + * 查询告警事件数量 */ export function getAlarmEventCount(request: AlarmEventQueryRequest) { return axios.post('/monitor/alarm-event/count', request); } /** - * 删除告警记录 + * 删除告警事件 */ export function deleteAlarmEvent(id: number) { return axios.delete('/monitor/alarm-event/delete', { params: { id } }); } /** - * 批量删除告警记录 + * 批量删除告警事件 */ export function batchDeleteAlarmEvent(idList: Array) { return axios.delete('/monitor/alarm-event/batch-delete', { @@ -122,7 +122,7 @@ export function batchDeleteAlarmEvent(idList: Array) { } /** - * 清理告警记录 + * 清理告警事件 */ export function clearMonitorAlarmEvent(request: AlarmEventClearRequest) { return axios.post('/monitor/alarm-event/clear', request); diff --git a/orion-visor-ui/src/api/monitor/alarm-rule.ts b/orion-visor-ui/src/api/monitor/alarm-rule.ts index 21563a8b..28d38701 100644 --- a/orion-visor-ui/src/api/monitor/alarm-rule.ts +++ b/orion-visor-ui/src/api/monitor/alarm-rule.ts @@ -72,8 +72,8 @@ export function updateAlarmRuleSwitch(request: AlarmRuleUpdateRequest) { /** * 查询全部监控告警规则 */ -export function getAlarmRuleList(policyId: number, metricsMeasurement: string = '') { - return axios.get>('/monitor/alarm-policy-rule/list', { params: { policyId, metricsMeasurement } }); +export function getAlarmRuleList(policyId: number, measurement: string = '') { + return axios.get>('/monitor/alarm-policy-rule/list', { params: { policyId, measurement } }); } /** diff --git a/orion-visor-ui/src/api/monitor/monitor-host.ts b/orion-visor-ui/src/api/monitor/monitor-host.ts index a2fbc1ae..1d8cd69b 100644 --- a/orion-visor-ui/src/api/monitor/monitor-host.ts +++ b/orion-visor-ui/src/api/monitor/monitor-host.ts @@ -28,7 +28,7 @@ export interface MonitorHostSwitchUpdateRequest { * 监控主机查询请求 */ export interface MonitorHostQueryRequest extends Pagination { - agentKeyList?: Array; + agentKeys?: Array; searchValue?: string; alarmSwitch?: number; policyId?: number; @@ -43,6 +43,15 @@ export interface MonitorHostQueryRequest extends Pagination { tags?: Array; } +/** + * 监控主机标签查询请求 + */ +export interface MonitorHostQueryTagRequest { + measurement?: string; + policyId?: number; + agentKeys?: Array; +} + /** * 监控主机图表查询请求 */ @@ -147,12 +156,12 @@ export interface MonitorHostMetricsData { /** * 查询监控主机指标 */ -export function getMonitorHostMetrics(agentKeyList: Array) { +export function getMonitorHostMetrics(agentKeys: Array) { return axios.post>('/monitor/monitor-host/metrics', { - agentKeyList + agentKeys }, { promptBizErrorMessage: false, - promptRequestErrorMessage: false, + promptRequestErrorMessage: false }); } @@ -179,6 +188,13 @@ export function getMonitorHostPage(request: MonitorHostQueryRequest) { return axios.post>('/monitor/monitor-host/query', request); } +/** + * 查询监控主机标签 + */ +export function getMonitorHostTags(request: MonitorHostQueryTagRequest) { + return axios.post>('/monitor/monitor-host/host-tags', request); +} + /** * 更新监控主机 */ diff --git a/orion-visor-ui/src/assets/style/arco-extends.less b/orion-visor-ui/src/assets/style/arco-extends.less index aeab168a..36723ab8 100644 --- a/orion-visor-ui/src/assets/style/arco-extends.less +++ b/orion-visor-ui/src/assets/style/arco-extends.less @@ -95,7 +95,7 @@ // 标准卡片 .general-card { - border-radius: 4px; + border-radius: 8px; border: none; & > .arco-card-header { diff --git a/orion-visor-ui/src/assets/style/global.less b/orion-visor-ui/src/assets/style/global.less index 3d82980c..f0156776 100644 --- a/orion-visor-ui/src/assets/style/global.less +++ b/orion-visor-ui/src/assets/style/global.less @@ -14,58 +14,6 @@ body { -webkit-font-smoothing: antialiased; } -// -- echarts -.echarts-tooltip-diy { - background: linear-gradient(304.17deg, - rgba(253, 254, 255, 0.6) -6.04%, - rgba(244, 247, 252, 0.6) 85.2%) !important; - border: none !important; - backdrop-filter: blur(10px) !important; - /* Note: backdrop-filter has minimal browser support */ - - border-radius: 6px !important; - - .content-panel { - display: flex; - justify-content: space-between; - padding: 0 9px; - background: rgba(255, 255, 255, 0.8); - width: 164px; - height: 32px; - line-height: 32px; - box-shadow: 6px 0 20px rgba(34, 87, 188, 0.1); - border-radius: 4px; - margin-bottom: 4px; - } - - .tooltip-title { - margin: 0 0 10px 0; - } - - p { - margin: 0; - } - - .tooltip-title, - .tooltip-value { - font-size: 13px; - line-height: 15px; - display: flex; - align-items: center; - text-align: right; - color: #1D2129; - font-weight: bold; - } - - .tooltip-item-icon { - display: inline-block; - margin-right: 8px; - width: 10px; - height: 10px; - border-radius: 50%; - } -} - // flex .flex-center { display: flex; diff --git a/orion-visor-ui/src/assets/style/layout.less b/orion-visor-ui/src/assets/style/layout.less index 68f23ab8..3b695b13 100644 --- a/orion-visor-ui/src/assets/style/layout.less +++ b/orion-visor-ui/src/assets/style/layout.less @@ -162,8 +162,8 @@ height: 100%; display: flex; flex-direction: column; - border-radius: 4px; - border: 1px solid var(--color-neutral-3); + border-radius: 8px; + //border: 1px solid var(--color-neutral-3); transition-property: all; & > .arco-card-header { @@ -230,7 +230,7 @@ // -- card .simple-card { background: var(--color-bg-2); - border-radius: 4px; + border-radius: 8px; } // -- doption diff --git a/orion-visor-ui/src/components/exec/log/panel/exec-host.vue b/orion-visor-ui/src/components/exec/log/panel/exec-host.vue index 48877527..1dcab835 100644 --- a/orion-visor-ui/src/components/exec/log/panel/exec-host.vue +++ b/orion-visor-ui/src/components/exec/log/panel/exec-host.vue @@ -27,7 +27,19 @@
- + + + + {{ item.exitCode }} + + + {{ getDictValue(execHostStatusKey, item.status) }}
@@ -141,8 +153,16 @@ &-status { display: flex; justify-content: flex-end; - } + gap: 8px; + :deep(.exit-code-tag .arco-tag-icon) { + color: #FFFFFF; + } + + .exit-code-value { + font-weight: 600; + } + } } diff --git a/orion-visor-ui/src/components/exec/log/panel/log-item.vue b/orion-visor-ui/src/components/exec/log/panel/log-item.vue index d6b29d8d..2d8fa5b4 100644 --- a/orion-visor-ui/src/components/exec/log/panel/log-item.vue +++ b/orion-visor-ui/src/components/exec/log/panel/log-item.vue @@ -15,7 +15,7 @@ + title="exitCode">