|
|
package com.sitech.ismp.coll.centercoll.ServerConnectivity;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.Vector;
|
|
|
import java.util.regex.Matcher;
|
|
|
import java.util.regex.Pattern;
|
|
|
|
|
|
public class CollServerConnexityBySsh {
|
|
|
private com.sitech.ismp.coll.CollBase collBase = null; //获取封装四元组的Vector
|
|
|
private com.sitech.ismp.app.coll.RPCTarget rpcTarget = new com.sitech.ismp.app.coll.RPCTarget(); //像被采集机器发送脚本
|
|
|
ArrayList<String> connexityResult = null; //保存返回并已解析好的指标
|
|
|
|
|
|
private String resourceId = null; //指标resourceId
|
|
|
private String baseMQServerKbp = "10-12-51-12"; //MQ服务器KBP
|
|
|
private String Connexity = null; //连通性所有指标
|
|
|
private String IP = null; //需要检查连通性的ip
|
|
|
|
|
|
//获取MQ服务器的联通性指标
|
|
|
private void getRMANColAndContent(HashMap<String, String> params) {
|
|
|
IP = params.get("IP");
|
|
|
Connexity = rpcTarget.getKPIValue("sh linux/getNetConnexity.sh "+IP);
|
|
|
resourceId = params.get("resourceId");
|
|
|
}
|
|
|
|
|
|
public Vector<com.sitech.ismp.coll.basic.TblATO_KPIDETAIL> getRMANLogReportCol(HashMap<String, String> params) {
|
|
|
collBase = new com.sitech.ismp.coll.CollBase(); //获取封装四元组的Vector
|
|
|
|
|
|
//如果新生成的容器不为空,则将其清空
|
|
|
if(!collBase.getKPISet().isEmpty()) {
|
|
|
collBase.getKPISet().clear();
|
|
|
}
|
|
|
|
|
|
connexityResult = new ArrayList<String>();
|
|
|
|
|
|
getRMANColAndContent(params);
|
|
|
|
|
|
connexityResult = getConnexity(Connexity);
|
|
|
|
|
|
String UNIT_ID = baseMQServerKbp+":"+resourceId+"-"+IP;
|
|
|
|
|
|
collBase.addKPI(UNIT_ID, "CM-58-01-001-01", connexityResult.get(0)); //发包数
|
|
|
collBase.addKPI(UNIT_ID, "PM-58-01-001-02", connexityResult.get(1)); //收包数
|
|
|
collBase.addKPI(UNIT_ID, "FM-58-01-001-03", connexityResult.get(2)); //丢包率
|
|
|
collBase.addKPI(UNIT_ID, "PM-58-01-001-04", connexityResult.get(3)); //发包耗时
|
|
|
collBase.addKPI(UNIT_ID, "CM-58-01-001-05", IP); //ip
|
|
|
|
|
|
return collBase.getKPISet();
|
|
|
}
|
|
|
|
|
|
public ArrayList<String> getConnexity(String Connexity) {
|
|
|
ArrayList<String> connexityIndex = new ArrayList<String>();
|
|
|
|
|
|
String regEx = "\\d+"; //用于提取指标值的正则表达式
|
|
|
Pattern pattern = Pattern.compile(regEx);
|
|
|
Matcher matcher = pattern.matcher(Connexity); //将需要解析的字串与正则关联
|
|
|
|
|
|
while(matcher.find()) {
|
|
|
connexityIndex.add(matcher.group());
|
|
|
}
|
|
|
|
|
|
if(connexityIndex.size()!=4) {
|
|
|
int i=3;
|
|
|
|
|
|
for(; i<connexityIndex.size(); i++) {
|
|
|
connexityIndex.set(i-1,connexityIndex.get(i));
|
|
|
|
|
|
}
|
|
|
connexityIndex.remove(i-1);
|
|
|
}
|
|
|
|
|
|
return connexityIndex;
|
|
|
}
|
|
|
} |
|
|
\ No newline at end of file |
...
|
...
|
|