CollHostSeparatedKpi.java
2.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package com.sitech.ismp.coll.tivoli;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Vector;
import java.util.HashMap;
import org.apache.log4j.Logger;
import com.sitech.util.Formater;
/**
* 2012-1-28
* CollHost类采集,是对多个指标采集的,此处针对单个指标进行采集。
*
* @author zhurz
*
*/
public class CollHostSeparatedKpi {
private boolean debug = false;
private SoapClient soapClient = null;
private Logger logger = Logger.getLogger("COLL");
/**
* 构造函数,初始化soap连接对象
*/
public CollHostSeparatedKpi()
{
String url = SoapParam.getString("SOAP_URL");
soapClient = new SoapClient(url);
}
/**
* 获取cpu使用律
* @param params
* @return
*/
public Vector getCpuUtilizationRaste(HashMap params,String pre_unitid)
{
String host_name = (String) params.get("HOST_NAME");
String neat_host_name = Formater.neatenunitid(host_name);
String soap_host_name = SOAPITCMNameHelper.getSoapHostName(host_name);
com.sitech.ismp.coll.CollBase collResult = new com.sitech.ismp.coll.CollBase();
String Used_Real_Mem_Pct = "";
try {
// 采集PM-00-01-01-01/02/03/04/05
// object=SMP_CPU
System.out.println(new Date());
String soap_cpu_SMPCPU = CollHostSoapHelperSeparatedKpi.getSoap_cpu_Busy(soap_host_name); // soap消息
System.out.println("soap_cpu_SMPCPU:"+soap_cpu_SMPCPU);
String soap_cpu_SMPCPU_res = soapClient.getSoapStringResponse(soap_cpu_SMPCPU);
System.out.println("soap_cpu_SMPCPU_res:"+soap_cpu_SMPCPU_res);
System.out.println(new Date());
if (debug)
System.out.println(new Date() + soap_cpu_SMPCPU_res);
if (soap_cpu_SMPCPU_res.indexOf("faultstring") != -1) {
collResult.addKPI("10-10-991:" + neat_host_name + "-kux",
"FM-10-10-991-01", "DOWN");
} else {
collResult.addKPI("10-10-991:" + neat_host_name + "-kux",
"FM-10-10-991-01", "UP");
}
List cpu_results = CollHostXmlHelper
.parseSoapResponse(soap_cpu_SMPCPU_res);
System.out.println("cpu_results:"+cpu_results);
Map cpu_aggregate = null;
// 得到 CPU_ID=aggregate 的那个 aggregate
for (int i = 0; i < cpu_results.size(); i++) {
Map cpu = (Map) cpu_results.get(i);
System.out.println("Map cpu:"+cpu);
String cpu_id = (String) cpu.get("CPU_ID");
if (cpu_id.equals("aggregate")) {
cpu_aggregate = cpu;
break;
}
}
if (cpu_aggregate == null) {
System.out.println("@tivoli , no cpu info got by tivoli in collCpu "+ new Date());
} else {
System.out.println("cpu_aggregate:"+cpu_aggregate);
collResult.addKPI(
pre_unitid + "-11:" + neat_host_name + "-cpu",
"PM-00-01-001-052", (String) cpu_aggregate
.get("CPU_Busy"));
}
} catch (Exception e) {
logger.error("collhost cpu error");
e.printStackTrace();
}
return collResult.getKPISet();
}
}