Dashboard 日志查询完成

yun-zuoyi
wei.peng 5 years ago
parent 1da559dd7a
commit 80b7193551

@ -1,5 +1,6 @@
package cn.estsh.i3plus.core.apiservice.controller; package cn.estsh.i3plus.core.apiservice.controller;
import cn.estsh.i3plus.platform.common.tool.HttpClientTool;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords; import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.platform.plugin.elasticsearch.ElasticSearchPack; import cn.estsh.i3plus.platform.plugin.elasticsearch.ElasticSearchPack;
import cn.estsh.i3plus.platform.plugin.elasticsearch.ElasticSearchTool; import cn.estsh.i3plus.platform.plugin.elasticsearch.ElasticSearchTool;
@ -15,6 +16,7 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.List; import java.util.List;
/** /**

@ -13,8 +13,10 @@ import cn.estsh.impp.framework.boot.exception.ImppBusiException;
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
import cn.estsh.impp.framework.boot.util.ImppRedis; import cn.estsh.impp.framework.boot.util.ImppRedis;
import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ResultBean;
import com.google.common.collect.Maps;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.collections.CollectionUtils;
import org.apache.shiro.web.session.mgt.DefaultWebSessionManager; import org.apache.shiro.web.session.mgt.DefaultWebSessionManager;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -24,10 +26,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Calendar; import java.util.*;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/** /**
* @Description : Dashboard * @Description : Dashboard
@ -59,6 +58,8 @@ public class SysDashboardController extends CoreBaseController {
public static final int TIMEOUT = 60 * 60; public static final int TIMEOUT = 60 * 60;
/** /**
* *
* @return * @return
@ -148,6 +149,21 @@ public class SysDashboardController extends CoreBaseController {
redisCore.putHashMap(redisKey, dashboardData, TIMEOUT); redisCore.putHashMap(redisKey, dashboardData, TIMEOUT);
} }
if(dashboardData != null && dashboardData.size() > 0){
Map<Object, Object> mapSortDesc = new TreeMap<>(new TreeMap<>(new Comparator() {
public int compare(Object o1, Object o2) {
//如果有空值直接返回0
if (o1 == null || o2 == null)
return 0;
return String.valueOf(o2).compareTo(String.valueOf(o1));
}
}));
mapSortDesc.putAll(dashboardData);
dashboardData = mapSortDesc;
}
return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode())
.setResultMap(dashboardData); .setResultMap(dashboardData);
} catch (ImppBusiException busExcep) { } catch (ImppBusiException busExcep) {
@ -172,6 +188,7 @@ public class SysDashboardController extends CoreBaseController {
Map<Object, Object> dashboardData = redisCore.getHashMap(redisKey); Map<Object, Object> dashboardData = redisCore.getHashMap(redisKey);
LOGGER.info("getLevelLogNumredisKey:{},dashboardData:{}",redisKey,dashboardData); LOGGER.info("getLevelLogNumredisKey:{},dashboardData:{}",redisKey,dashboardData);
dashboardData = null;
if (dashboardData == null || dashboardData.size() == 0) { if (dashboardData == null || dashboardData.size() == 0) {
// 获取前10分钟时间日志数量 // 获取前10分钟时间日志数量
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

@ -2,14 +2,22 @@ package cn.estsh.i3plus.core.apiservice.serviceimpl.base;
import cn.estsh.i3plus.core.api.iservice.base.ISysLogService; import cn.estsh.i3plus.core.api.iservice.base.ISysLogService;
import cn.estsh.i3plus.core.apiservice.util.NoSqlPack; import cn.estsh.i3plus.core.apiservice.util.NoSqlPack;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.platform.plugin.elasticsearch.ElasticSearchPack;
import cn.estsh.i3plus.platform.plugin.elasticsearch.ElasticSearchTool; import cn.estsh.i3plus.platform.plugin.elasticsearch.ElasticSearchTool;
import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.platform.platbean.SysLogException; import cn.estsh.i3plus.pojo.platform.platbean.SysLogException;
import cn.estsh.i3plus.pojo.platform.platbean.SysLogOperate; import cn.estsh.i3plus.pojo.platform.platbean.SysLogOperate;
import cn.estsh.i3plus.pojo.platform.platbean.SysLogSystem; import cn.estsh.i3plus.pojo.platform.platbean.SysLogSystem;
import cn.estsh.i3plus.pojo.platform.platbean.SysLogTaskTime; import cn.estsh.i3plus.pojo.platform.platbean.SysLogTaskTime;
import cn.estsh.impp.framework.boot.util.ImppLog; import cn.estsh.impp.framework.boot.util.ImppLog;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.search.aggregations.Aggregation;
import org.elasticsearch.search.aggregations.bucket.terms.ParsedTerms;
import org.elasticsearch.search.aggregations.bucket.terms.Terms;
import org.elasticsearch.search.aggregations.metrics.ParsedAvg;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -18,6 +26,7 @@ import org.springframework.stereotype.Service;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
/** /**
* @Description : * @Description :
@ -144,12 +153,48 @@ public class SysLogElasticSearchService implements ISysLogService {
@Override @Override
public Map<String, Object> querySysLogSystemAvgExecuteTime(String startTime, String endTime) { public Map<String, Object> querySysLogSystemAvgExecuteTime(String startTime, String endTime) {
Map resultData = new LinkedHashMap(); Map resultData = new LinkedHashMap();
ElasticSearchPack pack = ElasticSearchPack.imppBuild(SysLogSystem.class);
pack.pager(CommonConstWords.getDefaultPager());
pack.andStringDateTimeBetween("createDatetime",startTime,endTime);
pack.group("createDatetime").avg("executeTime").buildAggregation();
Map<String, Aggregation> aggregationMap = ElasticSearchTool.searchAggregationMap(pack);
ParsedTerms parsedTerms = (ParsedTerms)aggregationMap.get("group_createDatetime");
if(Objects.nonNull(parsedTerms)){
for (Terms.Bucket bucket : parsedTerms.getBuckets()) {
try {
String key = bucket.getKeyAsString();
Double value = ((ParsedAvg) bucket.getAggregations().get("avg_executeTime")).getValue();
resultData.put(key,value.intValue());
}catch (Exception e){
}
}
}
return resultData; return resultData;
} }
@Override @Override
public Map<String, Object> querySysLogSystemByLevel(String startTime, String endTime) { public Map<String, Object> querySysLogSystemByLevel(String startTime, String endTime) {
Map resultData = new LinkedHashMap(); Map resultData = new LinkedHashMap();
ElasticSearchPack pack = ElasticSearchPack.imppBuild(SysLogSystem.class);
pack.pager(CommonConstWords.getDefaultPager());
pack.andStringDateTimeBetween("createDatetime",startTime,endTime);
pack.group("logLevel").count("id").buildAggregation();
Map<String, Aggregation> aggregationMap = ElasticSearchTool.searchAggregationMap(pack);
ParsedTerms parsedTerms = (ParsedTerms)aggregationMap.get("group_logLevel");
if(Objects.nonNull(parsedTerms)){
for (Terms.Bucket bucket : parsedTerms.getBuckets()) {
try {
String key = bucket.getKeyAsString();
resultData.put(ImppEnumUtil.LOG_LEVEL.valueOfName(Integer.parseInt(key)),bucket.getDocCount());
}catch (Exception e){
}
}
}
return resultData; return resultData;
} }

Loading…
Cancel
Save