package com.dzh.bean;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.dzh.utils.ConfigUtils;
import com.dzh.utils.DateUtils;
import com.dzh.utils.LongUtils;
import com.dzh.utils.StringUtils;
public class NginxBean {
private static final Log LOG = LogFactory.getLog(NginxBean.class);
private String updateTime;
private String cpuUsage;
private String memUsage;
private String receiveTraffic;
private String transmitTraffic;
public void getDataFromDB(String updateTime) {
StringBuilder cpuUsageSb = new StringBuilder();
StringBuilder memUsageSb = new StringBuilder();
StringBuilder updateTimeSb = new StringBuilder();
cpuUsageSb.append("[");
memUsageSb.append("[");
updateTimeSb.append("[");
String configFilePath = "/Users/gaochuanjun/Workspaces/MyEclipse 10/monitor/infoconfig.properties";
ConfigUtils config = new ConfigUtils(configFilePath);
String mysql_IPAddress = config.getValue("mysql_IPAddress");
String mysql_user = config.getValue("mysql_user");
String mysql_password = config.getValue("mysql_password");
String mysql_databaseName = config.getValue("mysql_databaseName");
String url = "jdbc:mysql://" + mysql_IPAddress + ":3306/" + mysql_databaseName;
String driver = "com.mysql.jdbc.Driver";
String select_elasticsearch = "select cpuusage,memusage,updatetime from elasticsearch where updatetime >= '" + updateTime + "'";
LOG.info(select_elasticsearch);
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, mysql_user, mysql_password);
stmt = conn.createStatement();
rs = stmt.executeQuery(select_elasticsearch);
while (rs.next()) {
cpuUsageSb.append(rs.getFloat(1)).append(",");
memUsageSb.append(rs.getInt(2) / 1024).append(",");
updateTimeSb.append(DateUtils.getTime(DateUtils.stringToCalendar(rs.getString(3)))).append(",");
}
updateTimeSb = StringUtils.canTheLsatChar(updateTimeSb);
cpuUsageSb = StringUtils.canTheLsatChar(cpuUsageSb);
memUsageSb = StringUtils.canTheLsatChar(memUsageSb);
updateTimeSb.append("]");
cpuUsageSb.append("]");
memUsageSb.append("]");
setUpdateTime(updateTimeSb.toString());
setCpuUsage(cpuUsageSb.toString());
setMemUsage(memUsageSb.toString());
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
if (rs != null)
rs.close();
if (stmt != null)
stmt.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public String getInfoFromDB(String begin, String end, String ip, String processId) {
String returnInfo = "[ [ 1274457600000, 1200 ], [ 1274544000000, 1300 ],[ 1274630400000, 1250 ], [ 1274803200000, 1350 ] ]";
StringBuilder cpuUsageSb = new StringBuilder();
StringBuilder memUsageSb = new StringBuilder();
StringBuilder receiveTrafficSb = new StringBuilder();
StringBuilder transmitTrafficSb = new StringBuilder();
cpuUsageSb.append("[");
memUsageSb.append("[");
receiveTrafficSb.append("[");
transmitTrafficSb.append("[");
String configFilePath = "/opt/resource_monitor/conf/infoconfig.properties";
//String configFilePath = "D:\\Download\\monitor\\infoconfig.properties";
ConfigUtils config = new ConfigUtils(configFilePath);
String mysql_IPAddress = config.getValue("mysql_IPAddress");
String mysql_user = config.getValue("mysql_user");
String mysql_password = config.getValue("mysql_password");
String mysql_databaseName = config.getValue("mysql_databaseName");
String url = "jdbc:mysql://" + mysql_IPAddress + ":3306/" + mysql_databaseName;
String driver = "com.mysql.jdbc.Driver";
String select_elasticsearch = "select cpuusage,memusage,updatetime from process_monitor where updatetime >= '" + begin + "' and updatetime < '" + end + "' and IP = '" + ip + "' and ProcessId = '" + processId + "'";
String select_traffic_monitor = "select UpdateTime,ReceiveTraffic,TransmitTraffic from traffic_monitor where UpdateTime >= '" + begin + "' and UpdateTime < '" + end + "' and IP = '" + ip + "'";
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, mysql_user, mysql_password);
stmt = conn.createStatement();
rs = stmt.executeQuery(select_elasticsearch);
while (rs.next()) {
String time = rs.getString(3);
cpuUsageSb.append("[").append(DateUtils.getCurrentTimeMillis(time)).append(",").append(rs.getFloat(1)).append("]").append(",");
memUsageSb.append("[").append(DateUtils.getCurrentTimeMillis(time)).append(",").append(rs.getInt(2)).append("]").append(",");
}
cpuUsageSb = StringUtils.canTheLsatChar(cpuUsageSb);
memUsageSb = StringUtils.canTheLsatChar(memUsageSb);
cpuUsageSb.append("]");
memUsageSb.append("]");
setCpuUsage(cpuUsageSb.toString());
setMemUsage(memUsageSb.toString());
rs = stmt.executeQuery(select_traffic_monitor);
while (rs.next()) {
String time = rs.getString(1);
float receiveTraffic = rs.getFloat(2);
float transmitTraffic = rs.getFloat(3);
receiveTraffic *= 8;
transmitTraffic *= 8;
receiveTraffic /= 1048576;
transmitTraffic /= 1048576;
receiveTraffic = round(receiveTraffic);
transmitTraffic = round(transmitTraffic);
receiveTrafficSb.append("[").append(DateUtils.getCurrentTimeMillis(time)).append(",").append(receiveTraffic).append("]").append(",");
transmitTrafficSb.append("[").append(DateUtils.getCurrentTimeMillis(time)).append(",").append(transmitTraffic).append("]").append(",");
}
receiveTrafficSb = StringUtils.canTheLsatChar(receiveTrafficSb);
transmitTrafficSb = StringUtils.canTheLsatChar(transmitTrafficSb);
receiveTrafficSb.append("]");
transmitTrafficSb.append("]");
setReceiveTraffic(receiveTrafficSb.toString());
setTransmitTraffic(transmitTrafficSb.toString());
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
if (rs != null)
rs.close();
if (stmt != null)
stmt.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return returnInfo;
}
private float round(float value) {
return (float) ((Math.round(value * 100)) / 100.0);
}
public String getCurrentTime() {
long currentTime = System.currentTimeMillis();
long beforeTime = currentTime - 5 * 60 * 1000;
return LongUtils.longToString(beforeTime);
}
public String getUpdateTime() {
return updateTime;
}
public void setUpdateTime(String updateTime) {
this.updateTime = updateTime;
}
public String getCpuUsage() {
return cpuUsage;
}
public void setCpuUsage(String cpuUsage) {
this.cpuUsage = cpuUsage;
}
public String getMemUsage() {
return memUsage;
}
public void setMemUsage(String memUsage) {
this.memUsage = memUsage;
}
public String getReceiveTraffic() {
return receiveTraffic;
}
public void setReceiveTraffic(String receiveTraffic) {
this.receiveTraffic = receiveTraffic;
}
public String getTransmitTraffic() {
return transmitTraffic;
}
public void setTransmitTraffic(String transmitTraffic) {
this.transmitTraffic = transmitTraffic;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}