Authored by simba

Merge branch 'master' of http://git.yoho.cn/ops/monitor-service

package com.monitor.common.contants;
/**
* Created by yoho on 2016/5/23.
*/
public class PaginationContants {
public static final int ALARM_MSG_OFFSET_PERIOD = 10;
public static final int DB_EXCEPTION_OFFSET_PERIOD = 10;
public static final int PAGE_COMMON_OFFSET_PERIOD = 15;
public static final int NGINX_API_ERROR = 10;
public static final int NGINX_SERVICE_ERROR = 10;
}
... ...
... ... @@ -110,4 +110,9 @@ public class DateFormatUtil {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(YYYYMMDDHHMMSS);
return simpleDateFormat.format(new Date(time));
}
public static String parseLongToTimeStr(long time){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS);
return simpleDateFormat.format(new Date(time));
}
}
... ...
... ... @@ -18,4 +18,8 @@ public interface IJavaApiStaticsMapper {
public List<JavaApiStaticsModel> selectlatestJavaApiStaticsList(String influxDBName, List<JavaApiStatusReq> query);
public List<JavaApiStaticsModel> selectJavaApiStaticHis(String influxDBName, int api_id,int mobj_id, String timeStart, String timeEnd, int limitCount, int offsetCount);
}
... ...
... ... @@ -98,8 +98,8 @@ public class JavaApiStaticsMapper implements IJavaApiStaticsMapper {
String exception = (String) series.getValues().get(0).get(series.getColumns().indexOf("exception"));
javaApiStaticsModel.setStartTime(DateFormatUtil.parseLongTo14(startTime));
javaApiStaticsModel.setEndTime(DateFormatUtil.parseLongTo14(endTime));
javaApiStaticsModel.setStartTime(DateFormatUtil.parseLongToTimeStr(startTime));
javaApiStaticsModel.setEndTime(DateFormatUtil.parseLongToTimeStr(endTime));
javaApiStaticsModel.setCostTime((int) costTime);
... ... @@ -132,5 +132,49 @@ public class JavaApiStaticsMapper implements IJavaApiStaticsMapper {
return javaApiStaticsModels;
}
@Override
public List<JavaApiStaticsModel> selectJavaApiStaticHis(String influxDBName, int api_id, int mobj_id, String timeStart, String timeEnd, int limitCount, int offsetCount) {
String sql = "select * from " + InfluxDBContants.YOMO_TB_JAVAAPI;
sql += " where time >= '" + timeStart + "' and time<= '" + timeEnd + "' ";
if (api_id > 0)
sql += " and api_id= " + api_id;
if (mobj_id > 0)
sql += " and mobj_id= " + mobj_id;
sql += " order by time desc LIMIT " + limitCount + " OFFSET " + offsetCount;
Query query = new Query(sql, InfluxDBContants.APP_ALARM);
QueryResult result = inluxDBSingle.getInfluxDBByName(InfluxDBContants.AWS).getInfluxDB().query(query);
List<JavaApiStaticsModel> list = new ArrayList<JavaApiStaticsModel>();
QueryResult.Result rel = result.getResults().get(0);
QueryResult.Series series = rel.getSeries().get(0);
int size = series.getValues().size();
for (int i = 0; i < size; i++) {
JavaApiStaticsModel javaApiStaticsModel = new JavaApiStaticsModel();
Boolean is_exception = (Boolean) series.getValues().get(0).get(series.getColumns().indexOf("is_exception"));
long startTime = Math.round((Double) series.getValues().get(0).get(series.getColumns().indexOf("start")));
long endTime = Math.round((Double) series.getValues().get(0).get(series.getColumns().indexOf("end")));
long costTime = (endTime - startTime);
String exception = (String) series.getValues().get(0).get(series.getColumns().indexOf("exception"));
javaApiStaticsModel.setStartTime(DateFormatUtil.parseLongToTimeStr(startTime));
javaApiStaticsModel.setEndTime(DateFormatUtil.parseLongToTimeStr(endTime));
javaApiStaticsModel.setCostTime((int) costTime);
if (is_exception == true) {
javaApiStaticsModel.setStatus(0);
javaApiStaticsModel.setException(exception);
} else
javaApiStaticsModel.setStatus(1);
list.add(javaApiStaticsModel);
}
return list;
}
}
... ...
... ... @@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.Arrays;
... ... @@ -71,5 +72,27 @@ public class JavaAppInfoCtrl {
return "cost : " + (end - start) / 1000 + "s";
}
@RequestMapping("/querylatesthis")
@ResponseBody
public BaseResponse getJavaApiStatusHisLatest(@RequestParam(required = false, defaultValue = "0") int api_id,
@RequestParam(required = false, defaultValue = "0") int mobj_id) {
BaseResponse rep = new BaseResponse();
try {
List<JavaApiStatusRep> javaApiStatusRepList = javaApiStatusService.getJavaApiStatusHisLatest(api_id, mobj_id);
rep.setData(javaApiStatusRepList);
} catch (Exception e) {
rep.setCode(400);
rep.setMessage(e.getMessage());
}
return rep;
}
@RequestMapping("/queryhis")
@ResponseBody
public BaseResponse getJavaApiStatusHis() {
BaseResponse rep = new BaseResponse();
return rep;
}
}
... ...
... ... @@ -11,9 +11,12 @@ import java.util.List;
public interface IJavaApiStatusService {
public JavaApiStatusRep getJavaApiStatus(JavaApiStatusReq req) ;
public List<JavaApiStatusRep> getJavaApiStatusList(List<JavaApiStatusReq> reqList) ;
public JavaApiStatusRep getJavaApiStatus(JavaApiStatusReq req);
public List<JavaApiStatusRep> getJavaApiStatusList(List<JavaApiStatusReq> reqList);
public List<JavaApiStatusRep> getJavaApiStatusHisLatest(int api_id, int mobj_id);
public List<JavaApiStatusRep> getJavaApiStatusHisByTime(int api_id, int mobj_id, long start, long end, int page);
}
... ...
package com.monitor.javaserver.service.impl;
import com.monitor.common.contants.PaginationContants;
import com.monitor.common.util.DateFormatUtil;
import com.monitor.influxdb.mapper.impl.JavaApiStaticsMapper;
import com.monitor.javaserver.service.IJavaApiStatusService;
import com.monitor.model.domain.JavaApiStaticsModel;
... ... @@ -74,5 +76,44 @@ public class JavaAppiStatusServiceImpl implements IJavaApiStatusService {
return repList;
}
@Override
public List<JavaApiStatusRep> getJavaApiStatusHisLatest(int api_id, int mobj_id) {
long start = System.currentTimeMillis();
long end = start;
start = start - 1000 * 60 * 60; //一小时之内
return this.getJavaApiStatusHisByTime(api_id, mobj_id, start, end, 0);
}
@Override
public List<JavaApiStatusRep> getJavaApiStatusHisByTime(int api_id, int mobj_id, long start, long end, int page) {
String startTime = DateFormatUtil.influxDBTimeFormat(start);
String endTime = DateFormatUtil.influxDBTimeFormat(end);
List<JavaApiStaticsModel> modelList = javaApiStaticsMapper.selectJavaApiStaticHis(null, api_id, mobj_id,
startTime, endTime, PaginationContants.PAGE_COMMON_OFFSET_PERIOD,
page * PaginationContants.PAGE_COMMON_OFFSET_PERIOD);
List<JavaApiStatusRep> repList = new ArrayList<JavaApiStatusRep>();
for (JavaApiStaticsModel req : modelList) {
JavaApiStatusRep rep = new JavaApiStatusRep();
rep.setServiceId(req.getServiceId());
rep.setMObjectId(req.getMObjectId());
rep.setStatus(req.getStatus());
rep.setEndTime(req.getEndTime());
rep.setStartTime(req.getStartTime());
rep.setCostTime(req.getCostTime());
rep.setException(req.getException());
repList.add(rep);
}
return repList;
}
}
... ...