Authored by FengRuwei

influxdb 批量查询

... ... @@ -119,7 +119,7 @@ public class JavaApiStaticsMapper implements IJavaApiStaticsMapper {
javaApiStaticsModel.setStatus(1);
} catch (Exception e) {
e.printStackTrace();
log.warn("select latest java api info failed ", e);
}
return javaApiStaticsModel;
... ... @@ -131,13 +131,64 @@ public class JavaApiStaticsMapper implements IJavaApiStaticsMapper {
//TODO 后期改批量查询
List<JavaApiStaticsModel> javaApiStaticsModels = new ArrayList<>();
List<JavaApiStaticsModel> javaApiStaticsModels = new ArrayList<JavaApiStaticsModel>();
StringBuilder sb = new StringBuilder();
for (JavaApiStatusReq param : paramList) {
JavaApiStaticsModel model = selectlatestJavaApiStatics(influxDBName, param);
javaApiStaticsModels.add(model);
int api_id = param.getServiceId();
int mobj_id = param.getMObjectId();
sb.append("select * from " + InfluxDBContants.YOMO_TB_JAVAAPI + " where time > now() - 1h ");
sb.append(" and api_id=" + api_id);
sb.append(" and mobj_id=" + mobj_id);
sb.append(" order by time desc limit 1;");
}
Query query = new Query(sb.toString(), InfluxDBContants.APP_ALARM);
QueryResult result = inluxDBSingle.getInfluxDBByName(InfluxDBContants.ALARM).getInfluxDB().query(query);
for (QueryResult.Result queryResult : result.getResults()) {
try {
QueryResult.Series series = queryResult.getSeries().get(0);
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);
int api_id = ((Double) series.getValues().get(0).get(series.getColumns().indexOf("api_id"))).intValue();
int mobj_id = ((Double) series.getValues().get(0).get(series.getColumns().indexOf("mobj_id"))).intValue();
String exception = (String) series.getValues().get(0).get(series.getColumns().indexOf("exception"));
JavaApiStaticsModel javaApiStaticsModel = new JavaApiStaticsModel();
javaApiStaticsModel.setServiceId(api_id);
javaApiStaticsModel.setMObjectId(mobj_id);
javaApiStaticsModel.setStatus(0);
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);
javaApiStaticsModels.add(javaApiStaticsModel);
} catch (Exception e) {
log.warn("batch select latest java api info failed ", e);
}
}
return javaApiStaticsModels;
}
... ...
... ... @@ -163,7 +163,7 @@ public class JavaApiClient {
public void handleResult(JavaApiStatics rep) {
//TODO 加开关 控制gateway的检测条件
//TODO 后期可以加开关 控制gateway的检测条件
//先做预处理,主要对返回结果格式为{code:200,message:".."}的响应做处理,对code非200的设置异常标志
for (IJavaApiHadnler javaApiHadnler : javaApiHadnlerList) {
if (javaApiHadnler instanceof PreProcessJavaApiHandler) {
... ...