Authored by simba

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

@@ -39,29 +39,22 @@ public class JavaApiStaticsMapper implements IJavaApiStaticsMapper { @@ -39,29 +39,22 @@ public class JavaApiStaticsMapper implements IJavaApiStaticsMapper {
39 public void insertJavaApiStatics(String influxDBName, JSONObject statics) { 39 public void insertJavaApiStatics(String influxDBName, JSONObject statics) {
40 40
41 41
42 - BatchPoints batchPoints = BatchPoints  
43 - .database(InfluxDBContants.APP_ALARM).retentionPolicy("default")  
44 - .build(); 42 +// BatchPoints batchPoints = BatchPoints
  43 +// .database(InfluxDBContants.APP_ALARM).retentionPolicy("default")
  44 +// .build();
45 Point.Builder pointBuilder = Point.measurement(InfluxDBContants.YOMO_TB_JAVAAPI) 45 Point.Builder pointBuilder = Point.measurement(InfluxDBContants.YOMO_TB_JAVAAPI)
46 - .tag("api_id", "api_id")  
47 - .tag("mobj_id", "mobj_id")  
48 - .tag("api_name", "api_name")  
49 - .tag("api_url", "api_url")  
50 - .tag("mobj_ip", "mobj_ip")  
51 - .tag("is_exception", "is_exception")  
52 - .addField("api_id", statics.getIntValue("api_id"))  
53 - .addField("api_name", statics.getString("api_name"))  
54 - .addField("api_type", statics.getIntValue("api_type")) 46 + .tag("api_id", statics.getString("api_id"))
  47 + .tag("mobj_id", statics.getString("mobj_id"))
  48 + .tag("api_name", statics.getString("api_name"))
55 .addField("api_url", statics.getString("api_url")) 49 .addField("api_url", statics.getString("api_url"))
  50 + .tag("mobj_ip", statics.getString("mobj_ip"))
  51 + .tag("is_exception", statics.getString("is_exception"))
  52 + .addField("api_type", statics.getIntValue("api_type"))
56 .addField("mobj_name", statics.getString("mobj_name")) 53 .addField("mobj_name", statics.getString("mobj_name"))
57 - .addField("mobj_ip", statics.getString("mobj_ip"))  
58 - .addField("mobj_id", statics.getIntValue("mobj_id"))  
59 .addField("mobj_port", statics.getString("mobj_port")) 54 .addField("mobj_port", statics.getString("mobj_port"))
60 .addField("start_time", statics.getLongValue("start")) 55 .addField("start_time", statics.getLongValue("start"))
61 .addField("end_time", statics.getLongValue("end")) 56 .addField("end_time", statics.getLongValue("end"))
62 - .addField("is_exception", statics.getBooleanValue("is_exception"))  
63 .time(System.currentTimeMillis() * 1000000 + random.nextInt(999999), TimeUnit.NANOSECONDS); 57 .time(System.currentTimeMillis() * 1000000 + random.nextInt(999999), TimeUnit.NANOSECONDS);
64 -  
65 if (statics.getBooleanValue("is_exception") == true) { 58 if (statics.getBooleanValue("is_exception") == true) {
66 pointBuilder.addField("exception", statics.getString("exception")); 59 pointBuilder.addField("exception", statics.getString("exception"));
67 } else { 60 } else {
@@ -69,10 +62,10 @@ public class JavaApiStaticsMapper implements IJavaApiStaticsMapper { @@ -69,10 +62,10 @@ public class JavaApiStaticsMapper implements IJavaApiStaticsMapper {
69 } 62 }
70 63
71 Point point = pointBuilder.build(); 64 Point point = pointBuilder.build();
72 - batchPoints.point(point); 65 +// batchPoints.point(point);
73 66
74 inluxDBSingle.getInfluxDBByName(InfluxDBContants.ALARM).getInfluxDB() 67 inluxDBSingle.getInfluxDBByName(InfluxDBContants.ALARM).getInfluxDB()
75 - .write(batchPoints); 68 + .write(InfluxDBContants.APP_ALARM, "default", point);
76 69
77 70
78 } 71 }
@@ -81,14 +74,18 @@ public class JavaApiStaticsMapper implements IJavaApiStaticsMapper { @@ -81,14 +74,18 @@ public class JavaApiStaticsMapper implements IJavaApiStaticsMapper {
81 public JavaApiStaticsModel selectlatestJavaApiStatics(String influxDBName, JavaApiStatusReq param) { 74 public JavaApiStaticsModel selectlatestJavaApiStatics(String influxDBName, JavaApiStatusReq param) {
82 int api_id = param.getServiceId(); 75 int api_id = param.getServiceId();
83 int mobj_id = param.getMObjectId(); 76 int mobj_id = param.getMObjectId();
84 - String sql = "select * from " + InfluxDBContants.YOMO_TB_JAVAAPI + " where time > now() - 1h "; 77 + String sql = "select * from " + InfluxDBContants.YOMO_TB_JAVAAPI + " where time > now() - 10m ";
85 sql += " and api_id=" + api_id; 78 sql += " and api_id=" + api_id;
86 sql += " and mobj_id=" + mobj_id; 79 sql += " and mobj_id=" + mobj_id;
87 sql += " order by time desc limit 1"; 80 sql += " order by time desc limit 1";
88 Query query = new Query(sql, InfluxDBContants.APP_ALARM); 81 Query query = new Query(sql, InfluxDBContants.APP_ALARM);
89 -  
90 - QueryResult result = inluxDBSingle.getInfluxDBByName(InfluxDBContants.ALARM).getInfluxDB().query(query);  
91 - 82 + QueryResult result = null;
  83 + try {
  84 + result = inluxDBSingle.getInfluxDBByName(InfluxDBContants.ALARM).getInfluxDB().query(query);
  85 + } catch (Exception e) {
  86 + log.warn("influxdb query error ", e);
  87 + return null;
  88 + }
92 JavaApiStaticsModel javaApiStaticsModel = new JavaApiStaticsModel(); 89 JavaApiStaticsModel javaApiStaticsModel = new JavaApiStaticsModel();
93 javaApiStaticsModel.setServiceId(api_id); 90 javaApiStaticsModel.setServiceId(api_id);
94 javaApiStaticsModel.setMObjectId(mobj_id); 91 javaApiStaticsModel.setMObjectId(mobj_id);
@@ -136,18 +133,47 @@ public class JavaApiStaticsMapper implements IJavaApiStaticsMapper { @@ -136,18 +133,47 @@ public class JavaApiStaticsMapper implements IJavaApiStaticsMapper {
136 public List<JavaApiStaticsModel> selectlatestJavaApiStaticsList(String influxDBName, List<JavaApiStatusReq> paramList) { 133 public List<JavaApiStaticsModel> selectlatestJavaApiStaticsList(String influxDBName, List<JavaApiStatusReq> paramList) {
137 134
138 List<JavaApiStaticsModel> javaApiStaticsModels = new ArrayList<JavaApiStaticsModel>(); 135 List<JavaApiStaticsModel> javaApiStaticsModels = new ArrayList<JavaApiStaticsModel>();
  136 +
  137 +
  138 +// List<JavaApiStatusReq> splitReqList = new ArrayList<JavaApiStatusReq>();
  139 +// for (JavaApiStatusReq param : paramList) {
  140 +// splitReqList.add(param);
  141 +// if (splitReqList.size() >= 15) {
  142 +// javaApiStaticsModels.addAll(selectlatestJavaApiStaticsList_batch_split(influxDBName, splitReqList));
  143 +// splitReqList.clear();
  144 +// }
  145 +// }
  146 +// if (splitReqList.size() > 0) {
  147 +// javaApiStaticsModels.addAll(selectlatestJavaApiStaticsList_batch_split(influxDBName, splitReqList));
  148 +// }
  149 +
  150 +// return javaApiStaticsModels;
  151 + return selectlatestJavaApiStaticsList_batch_split(influxDBName,paramList);
  152 +
  153 + }
  154 +
  155 +
  156 + private List<JavaApiStaticsModel> selectlatestJavaApiStaticsList_batch_split(String influxDBName, List<JavaApiStatusReq> paramList) {
  157 +
  158 + List<JavaApiStaticsModel> javaApiStaticsModels = new ArrayList<JavaApiStaticsModel>();
139 StringBuilder sb = new StringBuilder(); 159 StringBuilder sb = new StringBuilder();
140 for (JavaApiStatusReq param : paramList) { 160 for (JavaApiStatusReq param : paramList) {
141 int api_id = param.getServiceId(); 161 int api_id = param.getServiceId();
142 int mobj_id = param.getMObjectId(); 162 int mobj_id = param.getMObjectId();
143 - sb.append("select api_id,mobj_id,start_time,end_time,is_exception,exception from " + InfluxDBContants.YOMO_TB_JAVAAPI + " where time > now() - 1h "); 163 + sb.append("select api_id,mobj_id,start_time,end_time,is_exception,exception from " + InfluxDBContants.YOMO_TB_JAVAAPI + " where time > now() - 10m ");
144 sb.append(" and api_id=" + api_id); 164 sb.append(" and api_id=" + api_id);
145 sb.append(" and mobj_id=" + mobj_id); 165 sb.append(" and mobj_id=" + mobj_id);
146 sb.append(" order by time desc limit 1;"); 166 sb.append(" order by time desc limit 1;");
147 } 167 }
  168 + log.info(sb.toString());
148 Query query = new Query(sb.toString(), InfluxDBContants.APP_ALARM); 169 Query query = new Query(sb.toString(), InfluxDBContants.APP_ALARM);
149 -  
150 - QueryResult result = inluxDBSingle.getInfluxDBByName(InfluxDBContants.ALARM).getInfluxDB().query(query); 170 + QueryResult result = null;
  171 + try {
  172 + result = inluxDBSingle.getInfluxDBByName(InfluxDBContants.ALARM).getInfluxDB().query(query);
  173 + } catch (Exception e) {
  174 + log.warn("influx db select error ,", e);
  175 + return javaApiStaticsModels;
  176 + }
151 177
152 for (QueryResult.Result queryResult : result.getResults()) { 178 for (QueryResult.Result queryResult : result.getResults()) {
153 if (queryResult.getSeries() == null) 179 if (queryResult.getSeries() == null)
@@ -189,6 +215,7 @@ public class JavaApiStaticsMapper implements IJavaApiStaticsMapper { @@ -189,6 +215,7 @@ public class JavaApiStaticsMapper implements IJavaApiStaticsMapper {
189 return javaApiStaticsModels; 215 return javaApiStaticsModels;
190 } 216 }
191 217
  218 +
192 @Override 219 @Override
193 public List<JavaApiStaticsModel> selectJavaApiStaticHis(String influxDBName, JavaApiHisReq req) { 220 public List<JavaApiStaticsModel> selectJavaApiStaticHis(String influxDBName, JavaApiHisReq req) {
194 int api_id = req.getApiId(); 221 int api_id = req.getApiId();
@@ -222,9 +249,14 @@ public class JavaApiStaticsMapper implements IJavaApiStaticsMapper { @@ -222,9 +249,14 @@ public class JavaApiStaticsMapper implements IJavaApiStaticsMapper {
222 log.info("sql:{}", sql); 249 log.info("sql:{}", sql);
223 Query query = new Query(sql, InfluxDBContants.APP_ALARM); 250 Query query = new Query(sql, InfluxDBContants.APP_ALARM);
224 251
225 - QueryResult result = inluxDBSingle.getInfluxDBByName(InfluxDBContants.ALARM).getInfluxDB().query(query);  
226 - 252 + QueryResult result = null;
227 List<JavaApiStaticsModel> list = new ArrayList<JavaApiStaticsModel>(); 253 List<JavaApiStaticsModel> list = new ArrayList<JavaApiStaticsModel>();
  254 + try {
  255 + result = inluxDBSingle.getInfluxDBByName(InfluxDBContants.ALARM).getInfluxDB().query(query);
  256 + } catch (Exception e) {
  257 + log.warn("influxdb query error ", e);
  258 + return list;
  259 + }
228 260
229 QueryResult.Result rel = result.getResults().get(0); 261 QueryResult.Result rel = result.getResults().get(0);
230 262
@@ -311,9 +343,13 @@ public class JavaApiStaticsMapper implements IJavaApiStaticsMapper { @@ -311,9 +343,13 @@ public class JavaApiStaticsMapper implements IJavaApiStaticsMapper {
311 343
312 344
313 Query query = new Query(sql, InfluxDBContants.APP_ALARM); 345 Query query = new Query(sql, InfluxDBContants.APP_ALARM);
314 -  
315 - QueryResult result = inluxDBSingle.getInfluxDBByName(InfluxDBContants.ALARM).getInfluxDB().query(query);  
316 - 346 + QueryResult result = null;
  347 + try {
  348 + result = inluxDBSingle.getInfluxDBByName(InfluxDBContants.ALARM).getInfluxDB().query(query);
  349 + } catch (Exception e) {
  350 + log.warn("influxdb query error ", e);
  351 + return 0;
  352 + }
317 return QueryResultUtil.getCount(result); 353 return QueryResultUtil.getCount(result);
318 } 354 }
319 355
@@ -181,7 +181,6 @@ public class JavaApiClient { @@ -181,7 +181,6 @@ public class JavaApiClient {
181 } 181 }
182 } 182 }
183 183
184 -  
185 for (IJavaApiHadnler javaApiHadnler : javaApiHadnlerList) { 184 for (IJavaApiHadnler javaApiHadnler : javaApiHadnlerList) {
186 if (javaApiHadnler instanceof PreProcessJavaApiHandler) 185 if (javaApiHadnler instanceof PreProcessJavaApiHandler)
187 continue; 186 continue;
@@ -52,6 +52,7 @@ public class JavaAppInfoStaticsCtrl { @@ -52,6 +52,7 @@ public class JavaAppInfoStaticsCtrl {
52 @RequestMapping("/query") 52 @RequestMapping("/query")
53 @ResponseBody 53 @ResponseBody
54 public BaseResponse getJavaApiStatus(@RequestBody JavaApiStatusReq[] req) { 54 public BaseResponse getJavaApiStatus(@RequestBody JavaApiStatusReq[] req) {
  55 + log.info("get api status.");
55 BaseResponse rep = new BaseResponse(); 56 BaseResponse rep = new BaseResponse();
56 try { 57 try {
57 List<JavaApiStatusReq> list = Arrays.asList(req); 58 List<JavaApiStatusReq> list = Arrays.asList(req);
@@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
3 influxdb.num=2 3 influxdb.num=2
4 influxdb.name=test;alarm 4 influxdb.name=test;alarm
5 influxdb.ip=http://192.168.102.162:8086;http://123.206.79.151:18086 5 influxdb.ip=http://192.168.102.162:8086;http://123.206.79.151:18086
  6 +#influxdb.ip=http://192.168.102.162:8086;http://192.168.99.100:32768
6 influxdb.user=yoho;root 7 influxdb.user=yoho;root
7 influxdb.pwd=Yoho_9646;root 8 influxdb.pwd=Yoho_9646;root
8 influxdb.connect.timeout=15;15 9 influxdb.connect.timeout=15;15