use of com.alibaba.cobar.manager.dataobject.cobarnode.CommandStatus in project cobar by alibaba.
the class ClusterInstantPerfValueAjax method getClusterInfo.
private AjaxResult getClusterInfo(AjaxParams params) {
JSONArray array = params.getArray();
long clusterId = params.getClusterId();
JSONObject json = null;
if (array.size() > 0) {
json = array.getJSONObject(0);
}
AjaxResult rs = new AjaxResult();
rs.setId(clusterId);
List<CobarDO> nodes = xmlAccesser.getCobarDAO().getCobarList(clusterId);
rs.setTotal(nodes.size());
for (CobarDO cobar : nodes) {
if (ConstantDefine.IN_ACTIVE.equals(cobar.getStatus())) {
continue;
}
CobarAdapterDAO perfAccesser = cobarAccesser.getAccesser(cobar.getId());
if (!perfAccesser.checkConnection()) {
rs.addError(1);
StringBuilder sb = new StringBuilder("getClusterInfo : cobar connect error for [ Name:");
sb.append(cobar.getName()).append(" Host:").append(cobar.getHost()).append(" ]");
logger.error(sb.toString());
continue;
}
rs.addActive(1);
rs.setSchema(perfAccesser.listDataBases().size());
List<ProcessorStatus> list = perfAccesser.listProccessorStatus();
rs.addNetIn(groupByPList(list, NET_IN));
rs.addNetOut(groupByPList(list, NET_OUT));
rs.addConnection(groupByPList(list, CONNECTION));
rs.setTimestamp(list.get(list.size() - 1).getSampleTimeStamp());
List<CommandStatus> commandList = perfAccesser.listCommandStatus();
rs.addRequest(groupByCList(commandList, REQUEST_COUNT));
}
if (json != null && json.getLong("netIn") != -1) {
long o_tiemstamp = json.getLong("timestamp");
rs.setNetIn_deriv(FormatUtil.formatNetwork(Math.round(MathUtil.getDerivate(rs.getNetIn(), json.getLong("netIn"), rs.getTimestamp(), o_tiemstamp, 1000.0))));
rs.setNetOut_deriv(FormatUtil.formatNetwork(Math.round(MathUtil.getDerivate(rs.getNetOut(), json.getLong("netOut"), rs.getTimestamp(), o_tiemstamp, 1000.0))));
rs.setRequest_deriv(FormatUtil.formatNumber(Math.round(MathUtil.getDerivate(rs.getRequest(), json.getLong("reCount"), rs.getTimestamp(), o_tiemstamp, 1000.0))));
}
return rs;
}
use of com.alibaba.cobar.manager.dataobject.cobarnode.CommandStatus in project cobar by alibaba.
the class ClusterInstantPerfValueAjax method getClusterThroughput.
@SuppressWarnings("unchecked")
private List<Map<String, Object>> getClusterThroughput(AjaxParams params) {
List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
JSONArray array = params.getArray();
JSONObject json = null;
Map<Long, JSONObject> cobarRequest = new HashMap<Long, JSONObject>();
for (int i = 0; i < array.size(); i++) {
JSONObject js = array.getJSONObject(i);
if ("cluster".equals(js.getString("flag"))) {
json = js;
} else if ("cobar".equals(js.getString("flag"))) {
cobarRequest.put(js.getLong("id"), js);
}
}
PropertyUtilsBean util = new PropertyUtilsBean();
long clusterId = params.getClusterId();
List<CobarDO> nodes = xmlAccesser.getCobarDAO().getCobarList(clusterId, ConstantDefine.ACTIVE);
AjaxResult cluster = new AjaxResult();
cluster.setId(clusterId);
cluster.setFlag("cluster");
long timestamp = 0;
for (CobarDO node : nodes) {
CobarAdapterDAO perfAccesser = cobarAccesser.getAccesser(node.getId());
if (!perfAccesser.checkConnection()) {
StringBuilder sb = new StringBuilder("getClusterThroughput: cobar connect error for Name:");
sb.append(node.getName()).append(" Host:").append(node.getHost());
logger.error(sb.toString());
continue;
}
AjaxResult re = new AjaxResult();
List<ProcessorStatus> list = perfAccesser.listProccessorStatus();
List<CommandStatus> cmdList = perfAccesser.listCommandStatus();
long cobarNetIn = groupByPList(list, NET_IN);
long cobarNetOut = groupByPList(list, NET_OUT);
long cobarRequestCount = groupByCList(cmdList, REQUEST_COUNT);
cluster.addRequest(cobarRequestCount);
cluster.addNetIn(cobarNetIn);
cluster.addNetOut(cobarNetOut);
re.setId(node.getId());
re.setFlag("cobar");
re.setNetIn(cobarNetIn);
re.setNetOut(cobarNetOut);
re.setConnection(groupByPList(list, CONNECTION));
re.setRequest(cobarRequestCount);
timestamp = list.get(list.size() - 1).getSampleTimeStamp();
re.setTimestamp(timestamp);
JSONObject jsonTmp = cobarRequest.get(node.getId());
if (jsonTmp != null) {
re.setNetIn_deriv(FormatUtil.formatNetwork(Math.round(MathUtil.getDerivate(cobarNetIn, jsonTmp.getLong("netIn"), timestamp, jsonTmp.getLong("timestamp"), 1000.0))));
re.setNetOut_deriv(FormatUtil.formatNetwork(Math.round(MathUtil.getDerivate(cobarNetOut, jsonTmp.getLong("netOut"), timestamp, jsonTmp.getLong("timestamp"), 1000.0))));
re.setRequest_deriv(FormatUtil.formatNumber(Math.round(MathUtil.getDerivate(cobarRequestCount, jsonTmp.getLong("reCount"), timestamp, jsonTmp.getLong("timestamp"), 1000.0))));
}
Map<String, Object> map = null;
try {
map = util.describe(re);
} catch (Exception e) {
logger.error(e);
throw new RuntimeException(e);
}
if (null != map) {
result.add(map);
}
}
cluster.setTimestamp(timestamp);
if (null != json && json.getLong("netIn") != -1) {
long o_tiemstamp = json.getLong("timestamp");
cluster.setNetIn_deriv(FormatUtil.formatNetwork(Math.round(MathUtil.getDerivate(cluster.getNetIn(), json.getLong("netIn"), timestamp, o_tiemstamp, 1000.0))));
cluster.setNetOut_deriv(FormatUtil.formatNetwork(Math.round(MathUtil.getDerivate(cluster.getNetOut(), json.getLong("netOut"), timestamp, o_tiemstamp, 1000.0))));
cluster.setRequest_deriv(FormatUtil.formatNumber(Math.round(MathUtil.getDerivate(cluster.getRequest(), json.getLong("reCount"), timestamp, o_tiemstamp, 1000.0))));
}
Map<String, Object> m = null;
try {
m = util.describe(cluster);
} catch (Exception e) {
logger.error(e);
throw new RuntimeException(e);
}
if (null != m) {
result.add(m);
}
return result;
}
use of com.alibaba.cobar.manager.dataobject.cobarnode.CommandStatus in project cobar by alibaba.
the class CobarNodeInstantPerfValueAjax method getServerStatus.
private Map<String, Object> getServerStatus(AjaxParams params) {
JSONArray array = params.getArray();
JSONObject jobject = array.getJSONObject(0);
CobarAdapterDAO perfAccesser = cobarAccesser.getAccesser(params.getCobarNodeId());
if (!perfAccesser.checkConnection()) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("uptime", 0);
map.put("usedMemory", 0);
map.put("maxMemory", 0);
map.put("totalMemory", 0);
map.put("connectionCount", 0);
map.put("status", "ERROR");
map.put("version", "UNKNOWN");
map.put("starttime", 0);
map.put("netInC", 0);
map.put("netOutC", 0);
map.put("requestCountC", 0);
map.put("sampleTimeStamp", System.currentTimeMillis());
map.put("netIn_deriv", 0);
map.put("netOut_deriv", 0);
map.put("reCount_deriv", 0);
return map;
}
ServerStatus ss = perfAccesser.getServerStatus();
Map<String, Object> map = new HashMap<String, Object>();
map.put("uptime", ss.getUptime());
map.put("usedMemory", FormatUtil.formatStore(ss.getUsedMemory()));
map.put("maxMemory", FormatUtil.formatStore(ss.getMaxMemory()));
map.put("totalMemory", FormatUtil.formatStore(ss.getTotalMemory()));
List<ProcessorStatus> list = perfAccesser.listProccessorStatus();
List<CommandStatus> cmdList = perfAccesser.listCommandStatus();
long netIn = groupBy(list, NET_IN);
long netOut = groupBy(list, NET_OUT);
long requestCount = groupByCList(cmdList, REQUEST_COUNT);
long connectionCount = groupBy(list, CONNECTION);
long timestamp = list.get(list.size() - 1).getSampleTimeStamp();
long o_netIn = jobject.getLong("netIn");
long o_netOut = jobject.getLong("netOut");
long o_requestCount = jobject.getLong("requestCount");
long o_timestamp = jobject.getLong("sampleTimeStamp");
map.put("netInC", netIn);
map.put("netOutC", netOut);
map.put("requestCountC", requestCount);
map.put("sampleTimeStamp", timestamp);
map.put("netIn_deriv", FormatUtil.formatNetwork((long) MathUtil.getDerivate(netIn, o_netIn, timestamp, o_timestamp, 1000.0)));
map.put("netOut_deriv", FormatUtil.formatNetwork((long) MathUtil.getDerivate(netOut, o_netOut, timestamp, o_timestamp, 1000.0)));
map.put("reCount_deriv", FormatUtil.formatNumber((long) MathUtil.getDerivate(requestCount, o_requestCount, timestamp, o_timestamp, 1000.0)));
map.put("version", FormatUtil.formatVersion(perfAccesser.getVersion()));
map.put("starttime", perfAccesser.getStartUpTime().getFormatTime());
map.put("connectionCount", connectionCount);
map.put("status", ss.getStatus());
return map;
}
use of com.alibaba.cobar.manager.dataobject.cobarnode.CommandStatus in project cobar by alibaba.
the class CobarNodeInstantPerfValueAjax method listCommand.
/**
* Command Tab
*
* @param params
* @return
*/
private List<Map<String, Object>> listCommand(AjaxParams params) {
CobarAdapterDAO perfAccesser = cobarAccesser.getAccesser(params.getCobarNodeId());
if (!perfAccesser.checkConnection()) {
return null;
}
List<CommandStatus> list = perfAccesser.listCommandStatus();
List<Map<String, Object>> returnList = new ArrayList<Map<String, Object>>();
// the last element is total count
long[] a = new long[] { 0, 0, 0, 0, 0, 0, 0, 0, 0 };
for (CommandStatus l : list) {
a[0] += l.getQuery();
a[1] += l.getStmtPrepared();
a[2] += l.getStmtExecute();
a[3] += l.getStmtClose();
a[4] += l.getPing();
a[5] += l.getQuit();
a[6] += l.getOther();
a[7] += l.getInitDB();
a[8] += l.getKill();
Map<String, Object> map = new HashMap<String, Object>();
map.put("processorId", l.getProcessorId());
map.put("stmtPrepared", FormatUtil.formatNumber(l.getStmtPrepared()));
map.put("stmtExecute", FormatUtil.formatNumber(l.getStmtExecute()));
map.put("query", FormatUtil.formatNumber(l.getQuery()));
map.put("stmtClose", FormatUtil.formatNumber(l.getStmtClose()));
map.put("ping", FormatUtil.formatNumber(l.getPing()));
map.put("quit", FormatUtil.formatNumber(l.getQuit()));
map.put("other", FormatUtil.formatNumber(l.getOther()));
map.put("kill", FormatUtil.formatNumber(l.getKill()));
map.put("initDB", FormatUtil.formatNumber(l.getInitDB()));
returnList.add(map);
}
Map<String, Object> map = new HashMap<String, Object>();
map.put("processorId", "Total");
map.put("stmtPrepared", FormatUtil.formatNumber(a[1]));
map.put("stmtExecute", FormatUtil.formatNumber(a[2]));
map.put("query", FormatUtil.formatNumber(a[0]));
map.put("stmtClose", FormatUtil.formatNumber(a[3]));
map.put("ping", FormatUtil.formatNumber(a[4]));
map.put("quit", FormatUtil.formatNumber(a[5]));
map.put("other", FormatUtil.formatNumber(a[6]));
map.put("kill", FormatUtil.formatNumber(a[8]));
map.put("initDB", FormatUtil.formatNumber(a[7]));
returnList.add(map);
return returnList;
}
use of com.alibaba.cobar.manager.dataobject.cobarnode.CommandStatus in project cobar by alibaba.
the class TestCommands method statistic.
/*
* statistic sum count of each column
*/
public void statistic() {
initDBNum = 0;
queryNum = 0;
stmtPrepareNum = 0;
stmtExcuteNum = 0;
stmtClosed = 0;
pingNum = 0;
killNum = 0;
quitNum = 0;
otherNum = 0;
commandList = cobarAdapter.listCommandStatus();
for (CommandStatus command : commandList) {
initDBNum += command.getInitDB();
queryNum += command.getQuery();
stmtPrepareNum += command.getStmtPrepared();
stmtExcuteNum += command.getStmtExecute();
stmtClosed += command.getStmtClose();
pingNum += command.getPing();
killNum += command.getKill();
quitNum += command.getQuit();
otherNum += command.getOther();
}
}
Aggregations