|
|
1
|
+package com.sitech.ismp.coll.centercoll.ServerConnectivity;
|
|
|
2
|
+
|
|
|
3
|
+import java.util.ArrayList;
|
|
|
4
|
+import java.util.HashMap;
|
|
|
5
|
+import java.util.Vector;
|
|
|
6
|
+import java.util.regex.Matcher;
|
|
|
7
|
+import java.util.regex.Pattern;
|
|
|
8
|
+
|
|
|
9
|
+public class CollServerConnexityBySsh {
|
|
|
10
|
+ private com.sitech.ismp.coll.CollBase collBase = null; //获取封装四元组的Vector
|
|
|
11
|
+ private com.sitech.ismp.app.coll.RPCTarget rpcTarget = new com.sitech.ismp.app.coll.RPCTarget(); //像被采集机器发送脚本
|
|
|
12
|
+ ArrayList<String> connexityResult = null; //保存返回并已解析好的指标
|
|
|
13
|
+
|
|
|
14
|
+ private String resourceId = null; //指标resourceId
|
|
|
15
|
+ private String baseMQServerKbp = "10-12-51-12"; //MQ服务器KBP
|
|
|
16
|
+ private String Connexity = null; //连通性所有指标
|
|
|
17
|
+ private String IP = null; //需要检查连通性的ip
|
|
|
18
|
+
|
|
|
19
|
+ //获取MQ服务器的联通性指标
|
|
|
20
|
+ private void getRMANColAndContent(HashMap<String, String> params) {
|
|
|
21
|
+ IP = params.get("IP");
|
|
|
22
|
+ Connexity = rpcTarget.getKPIValue("sh linux/getNetConnexity.sh "+IP);
|
|
|
23
|
+ resourceId = params.get("resourceId");
|
|
|
24
|
+ }
|
|
|
25
|
+
|
|
|
26
|
+ public Vector<com.sitech.ismp.coll.basic.TblATO_KPIDETAIL> getRMANLogReportCol(HashMap<String, String> params) {
|
|
|
27
|
+ collBase = new com.sitech.ismp.coll.CollBase(); //获取封装四元组的Vector
|
|
|
28
|
+
|
|
|
29
|
+ //如果新生成的容器不为空,则将其清空
|
|
|
30
|
+ if(!collBase.getKPISet().isEmpty()) {
|
|
|
31
|
+ collBase.getKPISet().clear();
|
|
|
32
|
+ }
|
|
|
33
|
+
|
|
|
34
|
+ connexityResult = new ArrayList<String>();
|
|
|
35
|
+
|
|
|
36
|
+ getRMANColAndContent(params);
|
|
|
37
|
+
|
|
|
38
|
+ connexityResult = getConnexity(Connexity);
|
|
|
39
|
+
|
|
|
40
|
+ String UNIT_ID = baseMQServerKbp+":"+resourceId+"-"+IP;
|
|
|
41
|
+
|
|
|
42
|
+ collBase.addKPI(UNIT_ID, "CM-58-01-001-01", connexityResult.get(0)); //发包数
|
|
|
43
|
+ collBase.addKPI(UNIT_ID, "PM-58-01-001-02", connexityResult.get(1)); //收包数
|
|
|
44
|
+ collBase.addKPI(UNIT_ID, "FM-58-01-001-03", connexityResult.get(2)); //丢包率
|
|
|
45
|
+ collBase.addKPI(UNIT_ID, "PM-58-01-001-04", connexityResult.get(3)); //发包耗时
|
|
|
46
|
+ collBase.addKPI(UNIT_ID, "CM-58-01-001-05", IP); //ip
|
|
|
47
|
+
|
|
|
48
|
+ return collBase.getKPISet();
|
|
|
49
|
+ }
|
|
|
50
|
+
|
|
|
51
|
+ public ArrayList<String> getConnexity(String Connexity) {
|
|
|
52
|
+ ArrayList<String> connexityIndex = new ArrayList<String>();
|
|
|
53
|
+
|
|
|
54
|
+ String regEx = "\\d+"; //用于提取指标值的正则表达式
|
|
|
55
|
+ Pattern pattern = Pattern.compile(regEx);
|
|
|
56
|
+ Matcher matcher = pattern.matcher(Connexity); //将需要解析的字串与正则关联
|
|
|
57
|
+
|
|
|
58
|
+ while(matcher.find()) {
|
|
|
59
|
+ connexityIndex.add(matcher.group());
|
|
|
60
|
+ }
|
|
|
61
|
+
|
|
|
62
|
+ if(connexityIndex.size()!=4) {
|
|
|
63
|
+ int i=3;
|
|
|
64
|
+
|
|
|
65
|
+ for(; i<connexityIndex.size(); i++) {
|
|
|
66
|
+ connexityIndex.set(i-1,connexityIndex.get(i));
|
|
|
67
|
+
|
|
|
68
|
+ }
|
|
|
69
|
+ connexityIndex.remove(i-1);
|
|
|
70
|
+ }
|
|
|
71
|
+
|
|
|
72
|
+ return connexityIndex;
|
|
|
73
|
+ }
|
|
|
74
|
+} |