use of com.cubrid.cubridmanager.core.monitoring.model.BrokerDiagData in project cubrid-manager by CUBRID.
the class BrokerStatusHistoryViewPart method createPartControl.
/**
* Creates the SWT controls for this workbench part.
*
* @param parent the parent control
* @see IWorkbenchPart
*/
public void createPartControl(Composite parent) {
final Composite composite = new Composite(parent, SWT.RESIZE);
composite.setLayout(new GridLayout());
composite.setLayoutData(new GridData(GridData.FILL_BOTH));
final HistoryComposite historyComposite = new HistoryComposite();
historyComposite.loadTimeSelection(composite);
Label sepWithResult = new Label(composite, SWT.SEPARATOR | SWT.HORIZONTAL | SWT.SHADOW_OUT);
sepWithResult.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
BrokerDiagData brokerDiagData = new BrokerDiagData();
ICubridNode selection = getCubridNode();
ServerInfo serverInfo = selection.getServer().getServerInfo();
isNewBrokerDiag = CompatibleUtil.isNewBrokerDiag(serverInfo);
TreeMap<String, String> map = convertMapKey(brokerDiagData.getDiagStatusResultMap());
chartPart = new ChartCompositePart(composite, map);
for (Map.Entry<String, String> entry : map.entrySet()) {
String key = entry.getKey();
ShowSetting showSetting = chartPart.getSettingMap().get(key);
ShowSettingMatching.match(key, showSetting, MonitorType.BROKER, isNewBrokerDiag);
}
chartPart.setChartTitle(Messages.brokerHistoryChartTtl);
String hostAddress = serverInfo.getHostAddress();
int monPort = serverInfo.getHostMonPort();
String historyFileName = HistoryComposite.BROKER_HISTORY_FILE_PREFIX + hostAddress + "_" + monPort + HistoryComposite.HISTORY_SUFFIX;
chartPart.setHistoryFileName(historyFileName);
IPath historyPath = CubridManagerCorePlugin.getDefault().getStateLocation();
String sHistoryPath = historyPath.toOSString() + File.separator + historyFileName;
chartPart.setHistoryPath(sHistoryPath);
chartPart.loadContent();
chartPart.addChartMouseListener();
makeActions();
historyComposite.getQueryBtn().addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent ex) {
String date = historyComposite.getDate();
String fromTime = historyComposite.getFromTime();
String toTime = historyComposite.getToTime();
// check date/fromTime/toTime
boolean timeOrder = historyComposite.checkTime(date, fromTime, toTime);
if (!timeOrder) {
CommonUITool.openErrorBox(Messages.errBrokerHistorySettingTime);
return;
}
String[] ymd = date.split("-");
int year = Integer.valueOf(ymd[0]);
int month = Integer.valueOf(ymd[1]);
int day = Integer.valueOf(ymd[2]);
String[] fromHms = fromTime.split(":");
int fromHour = Integer.valueOf(fromHms[0]);
int fromMinute = Integer.valueOf(fromHms[1]);
int fromSecond = Integer.valueOf(fromHms[2]);
Calendar calFrom = Calendar.getInstance();
calFrom.set(year, month, day, fromHour, fromMinute, fromSecond);
final long millisFrom = calFrom.getTimeInMillis();
String[] toHms = toTime.split(":");
int toHour = Integer.valueOf(toHms[0]);
int toMinute = Integer.valueOf(toHms[1]);
int toSecond = Integer.valueOf(toHms[2]);
Calendar calTo = Calendar.getInstance();
calTo.set(year, month, day, toHour, toMinute, toSecond);
final long millisTo = calTo.getTimeInMillis();
XYPlot plot = (XYPlot) chartPart.getChart().getPlot();
plot.getDomainAxis().setRange(millisFrom, millisTo);
final CounterFile countFile = chartPart.openHistoryFile();
if (countFile == null) {
return;
}
final List<String> types = new ArrayList<String>();
for (BrokerDiagEnum enumeration : BrokerDiagEnum.values()) {
String type = enumeration.getName();
types.add(type);
}
chartPart.executeQueryWithBusyCursor(countFile, types, millisFrom, millisTo);
try {
countFile.close();
} catch (IOException e1) {
LOGGER.error(e1.getMessage());
}
}
public void widgetSelected(SelectionEvent ex) {
widgetDefaultSelected(ex);
}
});
}
use of com.cubrid.cubridmanager.core.monitoring.model.BrokerDiagData in project cubrid-manager by CUBRID.
the class BrokerStatusMonitorViewPart method createPartControl.
/**
* Creates the SWT controls for this workbench part.
*
* @param parent the parent control
*/
public void createPartControl(Composite parent) {
composite = new Composite(parent, SWT.RESIZE);
composite.setLayout(new FillLayout());
ICubridNode selection = getCubridNode();
ServerInfo serverInfo = selection.getServer().getServerInfo();
isNewBrokerDiag = CompatibleUtil.isNewBrokerDiag(serverInfo);
BrokerDiagData brokerDiagData = new BrokerDiagData();
TreeMap<String, String> map = convertMapKey(brokerDiagData.getDiagStatusResultMap());
chartPart = new ChartCompositePart(composite, map);
String hostAddress = serverInfo.getHostAddress();
int monPort = serverInfo.getHostMonPort();
String historyFileName = HistoryComposite.BROKER_HISTORY_FILE_PREFIX + hostAddress + "_" + monPort + HistoryComposite.HISTORY_SUFFIX;
chartPart.setHistoryFileName(historyFileName);
if (null == monInstaceData) {
for (Map.Entry<String, String> entry : map.entrySet()) {
String key = entry.getKey();
ShowSetting showSetting = chartPart.getSettingMap().get(key);
ShowSettingMatching.match(key, showSetting, MonitorType.BROKER, isNewBrokerDiag);
}
chartPart.setChartTitle(Messages.brokerMonitorChartTtl);
IPath historyPath = CubridManagerCorePlugin.getDefault().getStateLocation();
String sHistoryPath = historyPath.toOSString() + File.separator + historyFileName;
chartPart.setHistoryPath(sHistoryPath);
} else {
String titleName = monInstaceData.getTitleName();
chartPart.setChartTitle(titleName);
chartPart.setSettingData(monInstaceData);
}
chartPart.loadContent();
makeActions();
new DataGenerator().start();
}
use of com.cubrid.cubridmanager.core.monitoring.model.BrokerDiagData in project cubrid-manager by CUBRID.
the class BrokerStatusMonitorViewPart method getUpdateValue.
/**
* Get update value
*
* @param startRun int
* @return Map<String, String>
*/
private TreeMap<String, String> getUpdateValue(int startRun) {
ServerInfo site = cubridNode.getServer().getServerInfo();
final CommonQueryTask<BrokerDiagData> task = new CommonQueryTask<BrokerDiagData>(site, CommonSendMsg.getGetBrokerStatusItems(), diagStatusResult);
task.execute();
TreeMap<String, String> resultMap = null;
float inter = 0.0f;
if (startRun == 0) {
diagStatusResult = task.getResultModel();
if (!diagStatusResult.getStatus()) {
if (interruptReq) {
return convertMapKey(diagStatusResult.getDiagStatusResultMap());
} else {
showErrorMsg(diagStatusResult);
}
}
return convertMapKey(diagStatusResult.getDiagStatusResultMap());
} else if (startRun == 1) {
lastSec = Calendar.getInstance();
diagOldOneStatusResult.copyFrom(diagStatusResult);
BrokerDiagData brokerDiagDataDelta = new BrokerDiagData();
diagStatusResult = task.getResultModel();
if (!diagStatusResult.getStatus()) {
if (interruptReq) {
return convertMapKey(diagStatusResult.getDiagStatusResultMap());
} else {
showErrorMsg(diagStatusResult);
}
}
brokerDiagDataDelta.getDelta(diagStatusResult, diagOldOneStatusResult);
return convertMapKey(brokerDiagDataDelta.getDiagStatusResultMap());
} else {
nowSec = Calendar.getInstance();
double interval = (double) (nowSec.getTimeInMillis() - lastSec.getTimeInMillis()) / 1000;
NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(3);
inter = Float.parseFloat(nf.format(interval));
lastSec = nowSec;
diagOldTwoStatusResult.copyFrom(diagOldOneStatusResult);
diagOldOneStatusResult.copyFrom(diagStatusResult);
diagStatusResult = task.getResultModel();
if (!diagStatusResult.getStatus()) {
if (interruptReq) {
return convertMapKey(diagStatusResult.getDiagStatusResultMap());
} else {
showErrorMsg(diagStatusResult);
}
}
BrokerDiagData diagStatusResultDelta = new BrokerDiagData();
diagStatusResultDelta.getDelta(diagStatusResult, diagOldOneStatusResult, diagOldTwoStatusResult, inter);
resultMap = convertMapKey(diagStatusResultDelta.getDiagStatusResultMap());
}
return resultMap;
}
use of com.cubrid.cubridmanager.core.monitoring.model.BrokerDiagData in project cubrid-manager by CUBRID.
the class BrokerDashboardViewPart method performUpdate.
/**
* Perform update UI when data change event happen
*
* @param dataChangedEvent the instance of DataChangedEvent
*/
public void performUpdate(DataChangedEvent dataChangedEvent) {
if (composite == null || composite.isDisposed()) {
return;
}
if (dataChangedEvent != null) {
String brokerName = brokerNode.getBrokerName();
BrokerInfos brokerInfos = dataChangedEvent.getBrokerInfosMap().get(brokerName);
BrokerStatusInfos brokerStatusInfos = dataChangedEvent.getBrokerStatusInfosMap().get(brokerName);
BrokerDiagData brokerDiagData = dataChangedEvent.getBrokerDiagDataMap().get(brokerName);
List<String> basicTableLst = new ArrayList<String>();
if (brokerInfos == null) {
for (int i = 0; i < 10; i++) {
basicTableLst.add("");
}
} else {
BrokerInfoList brokerInfoList = brokerInfos.getBorkerInfoList();
if (brokerInfoList.getBrokerInfoList().isEmpty()) {
for (int i = 0; i < 10; i++) {
basicTableLst.add("");
}
}
for (BrokerInfo bi : brokerInfoList.getBrokerInfoList()) {
if (brokerName.equals(bi.getName())) {
basicTableLst.add(bi.getPid());
basicTableLst.add(bi.getPort());
basicTableLst.add(bi.getJq());
basicTableLst.add(bi.getAuto());
basicTableLst.add(bi.getSqll());
basicTableLst.add(bi.getLong_tran_time());
basicTableLst.add(bi.getLong_query_time());
basicTableLst.add(bi.getSes());
basicTableLst.add(bi.getKeep_conn());
basicTableLst.add(bi.getAccess_mode());
}
}
}
if (brokerDiagData == null) {
for (int i = 0; i < 3; i++) {
basicTableLst.add("");
}
} else {
basicTableLst.add(brokerDiagData.getCas_mon_active());
basicTableLst.add(brokerDiagData.getCas_mon_session());
basicTableLst.add(brokerDiagData.getCas_mon_tran());
}
//test
List<List<String>> basicColumnLst = new ArrayList<List<String>>();
basicColumnLst.add(basicTableLst);
basicTableViewer.setInput(basicColumnLst);
basicTableViewer.refresh();
List<ApplyServerInfo> asinfoLst = null;
List<JobInfo> jobinfoLst = null;
if (brokerStatusInfos == null) {
asinfoLst = new ArrayList<ApplyServerInfo>();
jobinfoLst = new ArrayList<JobInfo>();
} else {
asinfoLst = brokerStatusInfos.getAsinfo();
jobinfoLst = brokerStatusInfos.getJobinfo();
if (asinfoLst == null) {
asinfoLst = new ArrayList<ApplyServerInfo>();
}
if (jobinfoLst == null) {
jobinfoLst = new ArrayList<JobInfo>();
}
}
asTableViewer.setInput(asinfoLst);
asTableViewer.refresh();
jqTableViewer.setInput(jobinfoLst);
jqTableViewer.refresh();
}
}
use of com.cubrid.cubridmanager.core.monitoring.model.BrokerDiagData in project cubrid-manager by CUBRID.
the class DataProvider method executeInThread.
/**
*
* Execute task by multi-thread
*
* @throws InterruptedException the exception
*/
public void executeInThread() throws InterruptedException {
//multi thread execution
List<Runnable> runnableList = new ArrayList<Runnable>();
if (isExecuteHostStatTask) {
hostStatTask = new CommonQueryTask<HostStatData>(serverInfo, CommonSendMsg.getCommonSimpleSendMsg(), new HostStatData());
hostStatTask.setTimeout(TIME_OUT_MILL);
runnableList.add(hostStatTask);
}
if (isExecuteBrokerStatTask) {
brokerDiagTask = new CommonQueryTask<BrokerDiagData>(serverInfo, CommonSendMsg.getGetBrokerStatusItems(), new BrokerDiagData());
brokerDiagTask.setTimeout(TIME_OUT_MILL);
runnableList.add(brokerDiagTask);
}
List<String> dbList = new ArrayList<String>();
for (DatabaseNode dbNode : uniqueDbNodeList) {
dbList.add(dbNode.getDbName());
}
if (isExecuteHeartbeatTask) {
getHeartbeatNodeInfoTask = new GetHeartbeatNodeInfoTask(serverInfo);
getHeartbeatNodeInfoTask.setAllDb(false);
getHeartbeatNodeInfoTask.setDbList(dbList);
getHeartbeatNodeInfoTask.setTimeout(TIME_OUT_MILL);
runnableList.add(getHeartbeatNodeInfoTask);
}
if (isExecuteDbModeTask) {
getDbModeTask = new GetDbModeTask(serverInfo);
getDbModeTask.setDbList(dbList);
getDbModeTask.setTimeout(TIME_OUT_MILL);
runnableList.add(getDbModeTask);
}
//execute broker related task
if (!uniqueBrokerNodeList.isEmpty()) {
runnableList.addAll(brokerDataProvider.getExecRunnableList());
}
if (IS_MULTI_THREAD && !runnableList.isEmpty()) {
try {
generator.getThreadPoolManager().execute(runnableList, true);
} catch (ThreadCountOutOfBoundsException e) {
LOGGER.error("", e);
}
join(runnableList, 350);
runnableList.clear();
}
//get database status information
List<HADatabaseStatusInfo> dbStatusInfoList = null;
if (isExecuteDbModeTask) {
dbStatusInfoList = getDbModeTask.getDbModes();
}
//execute database related task
for (int i = 0; i < dbDataProviderList.size(); i++) {
DatabaseNode dbNode = dbDataProviderList.get(i).getDatabaseNode();
HADatabaseStatusInfo dbStatusInfo = HAUtil.getDatabaseStatusInfo(dbStatusInfoList, dbNode.getDbName());
dbDataProviderList.get(i).setDbStatusInfo(dbStatusInfo);
runnableList.addAll(dbDataProviderList.get(i).getExecRunnableList());
}
if (IS_MULTI_THREAD && !runnableList.isEmpty()) {
try {
generator.getThreadPoolManager().execute(runnableList, true);
} catch (ThreadCountOutOfBoundsException e) {
LOGGER.error("", e);
}
join(runnableList, 20);
} else {
execute(runnableList);
}
}
Aggregations