Commit fb2418b9 authored by Gianluca Filippone's avatar Gianluca Filippone
Browse files

Improved monitoring detail showing

parent 690c2e12
......@@ -20,9 +20,10 @@ import com.pingunaut.wicket.chartjs.chart.impl.Doughnut;
import com.pingunaut.wicket.chartjs.core.panel.BarChartPanel;
import com.pingunaut.wicket.chartjs.core.panel.DoughnutChartPanel;
import com.pingunaut.wicket.chartjs.data.sets.BarDataSet;
import eu.chorevolution.idm.common.to.CoordinationDelegateTO;
import eu.chorevolution.idm.common.to.OperationDataTO;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import org.apache.syncope.client.console.panels.OperationPanel;
import org.apache.syncope.client.console.rest.ChoreographyRestClient;
......@@ -42,7 +43,7 @@ public class CDDetailPage extends BaseExtPage {
private final ChoreographyRestClient restClient;
private final Long instanceId;
private final Long choreographyInstancePK;
private final String cdName;
......@@ -53,12 +54,14 @@ public class CDDetailPage extends BaseExtPage {
restClient = new ChoreographyRestClient();
instanceId = parameters.get("instance").toLong();
choreographyInstancePK = parameters.get("instance").toLong();
cdName = parameters.get("cd").toString();
body.add(new Label("header", getString("header_title") + " " + cdName));
CoordinationDelegateTO cd = restClient.getCD(choreographyInstancePK, cdName);
List<OperationDataTO> operations = restClient.operationList(instanceId, cdName);
body.add(new Label("header", getString("header_title") + " " + cd.getName()));
List<OperationDataTO> operations = restClient.operationList(choreographyInstancePK, cdName);
bundle = new CDStatisticsBundle(operations);
WebMarkupContainer content = new WebMarkupContainer("content");
......@@ -75,20 +78,42 @@ public class CDDetailPage extends BaseExtPage {
Bar bar = new Bar();
bar.getData().getLabels().addAll(bundle.labels);
BarDataSet overheadDataSet = new BarDataSet(bundle.overheads);
overheadDataSet.setFillColor("rgba(227,20,20,0.6)");
overheadDataSet.setStrokeColor("rgba(227,20,20,0.8)");
bar.getData().getDatasets().add(overheadDataSet);
BarDataSet sleepDataSet = new BarDataSet(bundle.sleepTimes);
sleepDataSet.setFillColor("rgba(20,227,20,0.6)");
sleepDataSet.setStrokeColor("rgba(20,227,20,0.8)");
bar.getData().getDatasets().add(sleepDataSet);
BarDataSet serviceDataSet = new BarDataSet(bundle.serviceExecTimes);
serviceDataSet.setFillColor("rgba(20,20,227,0.6)");
serviceDataSet.setStrokeColor("rgba(20,20,227,0.8)");
bar.getData().getDatasets().add(serviceDataSet);
//Coordination Algorithm Reasoning Time (Red)
BarDataSet algorithmReasoningDataSet = new BarDataSet(bundle.coordinationAlgorithmReasoningTimes);
algorithmReasoningDataSet.setFillColor("rgba(227,20,20,0.6)");
algorithmReasoningDataSet.setStrokeColor("rgba(227,20,20,0.8)");
bar.getData().getDatasets().add(algorithmReasoningDataSet);
//Network Overhead For Coordination Messages (Red)
BarDataSet networkCoordinationOverheadDataSet =
new BarDataSet(bundle.networkOverheadForCoordinationMessagesExchangeTimes);
networkCoordinationOverheadDataSet.setFillColor("rgba(227,20,20,0.6)");
networkCoordinationOverheadDataSet.setStrokeColor("rgba(227,20,20,0.8)");
bar.getData().getDatasets().add(networkCoordinationOverheadDataSet);
//Wait Times (Green)
BarDataSet waitScheduleTimeDataSet = new BarDataSet(bundle.waitTimesForSchedulingOperation);
waitScheduleTimeDataSet.setFillColor("rgba(20,227,20,0.6)");
waitScheduleTimeDataSet.setStrokeColor("rgba(20,227,20,0.8)");
bar.getData().getDatasets().add(waitScheduleTimeDataSet);
BarDataSet waitSyncrhoTimeDataSet = new BarDataSet(bundle.waitTimesForSynchronizing);
waitSyncrhoTimeDataSet.setFillColor("rgba(20,227,20,0.6)");
waitSyncrhoTimeDataSet.setStrokeColor("rgba(20,227,20,0.8)");
bar.getData().getDatasets().add(waitSyncrhoTimeDataSet);
//Service Execution Time (Blue)
BarDataSet serviceExecutionTimeDataSet = new BarDataSet(bundle.serviceExecutionTimes);
serviceExecutionTimeDataSet.setFillColor("rgba(20,20,227,0.6)");
serviceExecutionTimeDataSet.setStrokeColor("rgba(20,20,227,0.8)");
bar.getData().getDatasets().add(serviceExecutionTimeDataSet);
//Network Overhead For Business Messages (Blue)
BarDataSet networkBusinessOverheadDataSet =
new BarDataSet(bundle.networkOverheadForBusinessMessagesExchangeTimes);
networkBusinessOverheadDataSet.setFillColor("rgba(20,20,227,0.6)");
networkBusinessOverheadDataSet.setStrokeColor("rgba(20,20,227,0.8)");
bar.getData().getDatasets().add(networkBusinessOverheadDataSet);
add(new BarChartPanel("chart", Model.of(bar)));
add(new Label("title", getString("overhead_sleep_execution_title")));
......@@ -105,21 +130,54 @@ public class CDDetailPage extends BaseExtPage {
doughnut.getOptions().setResponsive(true);
doughnut.getOptions().setMaintainAspectRatio(true);
doughnut.getOptions().setTooltipTemplate("<%= label %>");
long execution = bundle.totalServiceExecTime;
long overhead = bundle.totalOverhead;
long sleep = bundle.totalSleepTime;
long serviceExecutionTime = cd.getServiceExecutionTime();
long networkOverheadForBusinessMessagesExchangeTime
= cd.getNetworkOverheadForBusinessMessagesExchangeTime();
long coordinationAlgorithmReasoningTime = cd.getCoordinationAlgorithmReasoningTime();
long networkOverheadForCoordinationMessagesExchangeTime
= cd.getNetworkOverheadForCoordinationMessagesExchangeTime();
long waitTimeForSchedulingOperation = cd.getWaitTimeForSchedulingOperation();
long waitTimeForSynchronizing = cd.getWaitTimeForSynchronizing();
// Service Execution and Network Business Overhead (Blue)
doughnut.getData().add(
new LabeledDoughnutChartData(
(int) serviceExecutionTime, "rgb(20,20,227)",
"serviceExecutionTime" + ": " + serviceExecutionTime + " ms"
));
doughnut.getData().add(
new LabeledDoughnutChartData(
(int) networkOverheadForBusinessMessagesExchangeTime, "rgb(20,20,227)",
"networkOverheadForBusinessMessagesExchangeTime" + ": "
+ networkOverheadForBusinessMessagesExchangeTime + " ms"
));
// Coordination Algorithm Reasoning Time and Network Coordination Overhead (Red)
doughnut.getData().add(
new LabeledDoughnutChartData(
(int) execution, "rgb(20,20,227)",
getString("service_execution_time") + ": " + execution + " ms"
(int) coordinationAlgorithmReasoningTime, "rgb(227,20,20)",
"coordinationAlgorithmReasoningTime" + ": "
+ coordinationAlgorithmReasoningTime + " ms"
));
doughnut.getData().add(
new LabeledDoughnutChartData(
(int) overhead, "rgb(227,20,20)", getString("overhead") + ": " + overhead + " ms"
(int) networkOverheadForCoordinationMessagesExchangeTime, "rgb(227,20,20)",
"networkOverheadForCoordinationMessagesExchangeTime" + ": "
+ networkOverheadForCoordinationMessagesExchangeTime + " ms"
));
// Wait times (Green)
doughnut.getData().add(
new LabeledDoughnutChartData(
(int) waitTimeForSchedulingOperation, "rgb(20,227,20)",
"waitTimeForSchedulingOperation" + ": "
+ waitTimeForSchedulingOperation + " ms"
));
doughnut.getData().add(
new LabeledDoughnutChartData(
(int) sleep, "rgb(20,227,20)", getString("sleep_time") + ": " + sleep + " ms"
(int) waitTimeForSynchronizing, "rgb(20,227,20)",
"waitTimeForSynchronizing" + ": "
+ waitTimeForSynchronizing + " ms"
));
add(new DoughnutChartPanel("chart", Model.of(doughnut)));
add(new Label("title", getString("total_operation_overhead_title")));
......@@ -128,7 +186,7 @@ public class CDDetailPage extends BaseExtPage {
});
content.add(chartList);
content.add(new OperationPanel("operations", getPageReference(), instanceId, cdName));
content.add(new OperationPanel("operations", getPageReference(), choreographyInstancePK, cdName));
body.add(content);
}
......@@ -138,44 +196,42 @@ public class CDDetailPage extends BaseExtPage {
private List<String> labels;
private List<Long> overheads;
private List<Long> coordinationAlgorithmReasoningTimes;
private List<Long> sleepTimes;
private List<Long> networkOverheadForCoordinationMessagesExchangeTimes;
private List<Long> serviceExecTimes;
private List<Long> waitTimesForSchedulingOperation;
private List<Integer> sentMessages;
private long totalOverhead;
private List<Long> waitTimesForSynchronizing;
private long totalSleepTime;
private List<Long> serviceExecutionTimes;
private long totalServiceExecTime;
private List<Long> networkOverheadForBusinessMessagesExchangeTimes;
private int totalSentMessages;
private List<Integer> sentMessages;
CDStatisticsBundle(final List<OperationDataTO> operations) {
labels = new ArrayList<>();
overheads = new ArrayList<>();
sleepTimes = new ArrayList<>();
serviceExecTimes = new ArrayList<>();
sentMessages = new ArrayList<>();
totalOverhead = 0;
totalSleepTime = 0;
totalServiceExecTime = 0;
totalSentMessages = 0;
for (OperationDataTO current : operations) {
labels.add(current.getName());
overheads.add(current.getOverhead());
sleepTimes.add(current.getWaitTime());
serviceExecTimes.add(current.getServiceExecTime());
sentMessages.add(current.getMessageNumber());
totalOverhead = totalOverhead + current.getOverhead();
totalSleepTime = totalSleepTime + current.getWaitTime();
totalServiceExecTime = totalServiceExecTime + current.getServiceExecTime();
totalSentMessages = totalSentMessages + current.getMessageNumber();
labels = new LinkedList<>();
coordinationAlgorithmReasoningTimes = new LinkedList<>();
networkOverheadForCoordinationMessagesExchangeTimes = new LinkedList<>();
waitTimesForSchedulingOperation = new LinkedList<>();
waitTimesForSynchronizing = new LinkedList<>();
serviceExecutionTimes = new LinkedList<>();
networkOverheadForBusinessMessagesExchangeTimes = new LinkedList<>();
sentMessages = new LinkedList<>();
for (OperationDataTO operation : operations) {
labels.add(operation.getName());
coordinationAlgorithmReasoningTimes.add(operation.getCoordinationAlgorithmReasoningTime());
networkOverheadForCoordinationMessagesExchangeTimes.add(
operation.getNetworkOverheadForCoordinationMessagesExchangeTime());
waitTimesForSchedulingOperation.add(operation.getWaitTimeForSchedulingOperation());
waitTimesForSynchronizing.add(operation.getWaitTimeForSynchronizing());
serviceExecutionTimes.add(operation.getServiceExecutionTime());
networkOverheadForBusinessMessagesExchangeTimes.add(
operation.getNetworkOverheadForBusinessMessagesExchangeTime());
sentMessages.add(operation.getMessageNumber());
}
}
}
......
......@@ -15,8 +15,10 @@
*/
package org.apache.syncope.client.console.pages;
import eu.chorevolution.idm.common.to.ChoreographyTO;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.syncope.client.console.panels.InstancePanel;
import org.apache.syncope.client.console.rest.ChoreographyRestClient;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.request.mapper.parameter.PageParameters;
......@@ -26,13 +28,17 @@ public class InstancePage extends BaseExtPage {
public static final String PREF_INSTANCE_PAGINATOR_ROWS = "instances.paginator.rows";
private final ChoreographyRestClient restClient;
public InstancePage(final PageParameters parameters) {
super(parameters);
Long choreographyId = parameters.get("chor").toLong();
//String choreographyName = parameters.get("name").toString();
body.add(new Label("header", getString("header_title")/*+ " of Choreography " + choreographyName*/));
restClient = new ChoreographyRestClient();
Long choreographyId = parameters.get("chor").toLong();
ChoreographyTO choreography = restClient.getChoreography(choreographyId);
body.add(new Label("header", getString("header_title") + " of Choreography " + choreography.getName()));
WebMarkupContainer content = new WebMarkupContainer("content");
content.setOutputMarkupId(true);
content.add(new InstancePanel("instances", getPageReference(), choreographyId));
......
......@@ -20,9 +20,10 @@ import com.pingunaut.wicket.chartjs.chart.impl.Doughnut;
import com.pingunaut.wicket.chartjs.core.panel.BarChartPanel;
import com.pingunaut.wicket.chartjs.core.panel.DoughnutChartPanel;
import com.pingunaut.wicket.chartjs.data.sets.BarDataSet;
import eu.chorevolution.idm.common.to.ChoreographyInstanceTO;
import eu.chorevolution.idm.common.to.CoordinationDelegateTO;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import org.apache.syncope.client.console.panels.CDPanel;
import org.apache.syncope.client.console.rest.ChoreographyRestClient;
......@@ -42,10 +43,6 @@ public class InstanceStatsPage extends BaseExtPage {
private final ChoreographyRestClient restClient;
// private final String instanceName;
// private final String choreographyName;
private final Long instanceId;
private final InstanceStatisticsBundle bundle;
......@@ -57,7 +54,9 @@ public class InstanceStatsPage extends BaseExtPage {
instanceId = parameters.get("instance").toLong();
body.add(new Label("header", getString("header_title")/* + " " + instanceName*/));
ChoreographyInstanceTO choreographyInstance = restClient.getChoreographyInstance(instanceId);
body.add(new Label("header",
getString("header_title") + " of" + " " + choreographyInstance.getChoreographyName()));
List<CoordinationDelegateTO> cds = restClient.cdList(instanceId);
bundle = new InstanceStatisticsBundle(cds);
......@@ -65,7 +64,9 @@ public class InstanceStatsPage extends BaseExtPage {
WebMarkupContainer content = new WebMarkupContainer("content");
content.setOutputMarkupId(true);
content.add(new Label("duration", getString("duration") + " " + (0) + " ms"));
content.add(new Label("duration",
getString("duration") + " " + choreographyInstance.getExecutionTime() + " ms"
));
RepeatingView chartList = new RepeatingView("stats");
//Total overhead and total execution time per CD
......@@ -82,7 +83,7 @@ public class InstanceStatsPage extends BaseExtPage {
overheadDataSet.setStrokeColor("rgba(227,20,20,0.8)");
bar.getData().getDatasets().add(overheadDataSet);
BarDataSet sleepDataSet = new BarDataSet(bundle.sleepTimes);
BarDataSet sleepDataSet = new BarDataSet(bundle.waitTimes);
sleepDataSet.setFillColor("rgba(20,227,20,0.6)");
sleepDataSet.setStrokeColor("rgba(20,227,20,0.8)");
bar.getData().getDatasets().add(sleepDataSet);
......@@ -132,7 +133,7 @@ public class InstanceStatsPage extends BaseExtPage {
doughnut.getOptions().setTooltipTemplate("<%= label %>");
long execution = bundle.totalServiceExecution;
long overhead = bundle.totalOverhead;
long sleep = bundle.totalSleep;
long sleep = bundle.totalWait;
doughnut.getData().add(
new LabeledDoughnutChartData(
(int) execution, "rgb(20,20,227)",
......@@ -197,7 +198,7 @@ public class InstanceStatsPage extends BaseExtPage {
private List<Long> serviceExecTimes;
private List<Long> sleepTimes;
private List<Long> waitTimes;
private List<Integer> operations;
......@@ -211,33 +212,44 @@ public class InstanceStatsPage extends BaseExtPage {
private long totalOverhead;
private long totalSleep;
private long totalWait;
InstanceStatisticsBundle(final List<CoordinationDelegateTO> cds) {
labels = new ArrayList<>();
overheads = new ArrayList<>();
serviceExecTimes = new ArrayList<>();
sleepTimes = new ArrayList<>();
operations = new ArrayList<>();
messages = new ArrayList<>();
labels = new LinkedList<>();
overheads = new LinkedList<>();
serviceExecTimes = new LinkedList<>();
waitTimes = new LinkedList<>();
operations = new LinkedList<>();
messages = new LinkedList<>();
totalMessages = 0;
totalOperations = 0;
totalServiceExecution = 0;
totalOverhead = 0;
totalSleep = 0;
for (CoordinationDelegateTO current : cds) {
labels.add(current.getName());
overheads.add(current.getTotalOverhead());
serviceExecTimes.add(current.getTotalServiceExecutionTime());
sleepTimes.add(current.getTotalWaitTime());
operations.add(current.getExecutedOperations());
messages.add(current.getSentMessages());
totalMessages = totalMessages + current.getSentMessages();
totalOperations = totalOperations + current.getExecutedOperations();
totalServiceExecution = totalServiceExecution + current.getTotalServiceExecutionTime();
totalOverhead = totalOverhead + current.getTotalOverhead();
totalSleep = totalSleep + current.getTotalWaitTime();
totalWait = 0;
for (CoordinationDelegateTO cd : cds) {
labels.add(cd.getName());
overheads.add(
cd.getCoordinationAlgorithmReasoningTime()
+ cd.getNetworkOverheadForCoordinationMessagesExchangeTime()
);
serviceExecTimes.add(
cd.getServiceExecutionTime() + cd.getNetworkOverheadForBusinessMessagesExchangeTime()
);
waitTimes.add(
cd.getWaitTimeForSchedulingOperation() + cd.getWaitTimeForSynchronizing()
);
operations.add(cd.getExecutedOperations());
messages.add(cd.getCoordinationMessages());
totalMessages = totalMessages + cd.getCoordinationMessages();
totalOperations = totalOperations + cd.getExecutedOperations();
totalServiceExecution = totalServiceExecution
+ cd.getServiceExecutionTime()
+ cd.getNetworkOverheadForBusinessMessagesExchangeTime();
totalOverhead = totalOverhead
+ cd.getCoordinationAlgorithmReasoningTime()
+ cd.getNetworkOverheadForCoordinationMessagesExchangeTime();
totalWait = totalWait + cd.getWaitTimeForSchedulingOperation() + cd.getWaitTimeForSynchronizing();
}
}
}
......
......@@ -98,12 +98,23 @@ public class CDPanel extends AbstractSearchResultPanel<
@Override
protected List<IColumn<CoordinationDelegateTO, String>> getColumns() {
final List<IColumn<CoordinationDelegateTO, String>> columns = new ArrayList<>();
columns.add(new PropertyColumn<>(new ResourceModel("name"), "name", "name"));
columns.add(new PropertyColumn<>(new ResourceModel("name", "Name"), "Name", "name"));
columns.add(new PropertyColumn<>(new ResourceModel("executedOperations", "Executed Operations"),
"executedOperations"));
columns.add(new PropertyColumn<>(new ResourceModel("sentMessages", "Sent Messages"), "sentMessages"));
columns.add(new PropertyColumn<>(new ResourceModel("totalOverhead", "Overhead (ms)"), "totalOverhead"));
columns.add(new PropertyColumn<>(new ResourceModel("totalWaitTime", "Wait Time (ms)"), "totalWaitTime"));
columns.add(new PropertyColumn<>(new ResourceModel("coordinationMessages", "Coordination Messages"),
"coordinationMessages"));
columns.add(new PropertyColumn<>(new ResourceModel("coordinationAlgorithmReasoningTime",
"Algorithm Reasoning (ms)"), "coordinationAlgorithmReasoningTime"));
columns.add(new PropertyColumn<>(new ResourceModel("networkOverheadForCoordinationMessagesExchangeTime",
"Network Coordination Overhead Time (ms)"), "networkOverheadForCoordinationMessagesExchangeTime"));
columns.add(new PropertyColumn<>(new ResourceModel("waitTimeForSchedulingOperation",
"Scheduling Operation Wait Time (ms)"), "waitTimeForSchedulingOperation"));
columns.add(new PropertyColumn<>(new ResourceModel("waitTimeForSynchronizing",
"Synchronizing Wait Time (ms)"), "waitTimeForSynchronizing"));
columns.add(new PropertyColumn<>(new ResourceModel("serviceExecutionTime",
"Service Execution Time (ms)"), "serviceExecutionTime"));
columns.add(new PropertyColumn<>(new ResourceModel("networkOverheadForBusinessMessagesExchangeTime",
"Network Business Overhead (ms)"), "networkOverheadForBusinessMessagesExchangeTime"));
columns.add(new AbstractColumn<CoordinationDelegateTO, String>(new ResourceModel("actions", "")) {
private static final long serialVersionUID = -3503023501954863131L;
......
......@@ -93,7 +93,7 @@ public class ChoreographyPanel extends AbstractSearchResultPanel<
protected List<IColumn<ChoreographyTO, String>> getColumns() {
final List<IColumn<ChoreographyTO, String>> columns = new ArrayList<>();
columns.add(new PropertyColumn<>(new ResourceModel("name"), "Name", "name"));
columns.add(new PropertyColumn<>(new ResourceModel("description"), "Description", "description"));
columns.add(new PropertyColumn<>(new ResourceModel("description", "Description"), "description"));
columns.add(new AbstractColumn<ChoreographyTO, String>(new ResourceModel("actions", "")) {
private static final long serialVersionUID = -3503023501954863131L;
......
......@@ -96,9 +96,11 @@ public class InstancePanel extends AbstractSearchResultPanel<
@Override
protected List<IColumn<ChoreographyInstanceTO, String>> getColumns() {
final List<IColumn<ChoreographyInstanceTO, String>> columns = new ArrayList<>();
columns.add(new PropertyColumn<>(new ResourceModel("choreographyInstanceId", "Id"), "choreographyInstanceId"));
columns.add(new PropertyColumn<>(new ResourceModel(
"instanceDescription", "Description"), "instanceDescription"));
columns.add(new PropertyColumn<>(new ResourceModel("choreographyInstanceId", "Id"),
"Id", "choreographyInstanceId"));
columns.add(new PropertyColumn<>(new ResourceModel("instanceDescription", "Description"),
"instanceDescription"));
columns.add(new PropertyColumn<>(new ResourceModel("executionTime", "Execution Time (ms)"), "executionTime"));
columns.add(new AbstractColumn<ChoreographyInstanceTO, String>(new ResourceModel("actions", "")) {
private static final long serialVersionUID = -3503023501954863131L;
......
......@@ -109,12 +109,20 @@ public class OperationPanel extends AbstractSearchResultPanel<
protected List<IColumn<OperationDataTO, String>> getColumns() {
final List<IColumn<OperationDataTO, String>> columns = new ArrayList<>();
columns.add(new PropertyColumn<>(new ResourceModel("name"), "Name", "name"));
columns.add(new PropertyColumn<>(new ResourceModel("overhead", "Overhead (ms)"), "overhead"));
columns.add(new PropertyColumn<>(new ResourceModel("waitTime", "Wait Time (ms)"), "waitTime"));
columns.add(new PropertyColumn<>(new ResourceModel("serviceExecTime", "Service Execution Time (ms)"),
"serviceExecTime"));
columns.add(new PropertyColumn<>(new ResourceModel("messageNumber", "Coordination Messages"), "messageNumber"));
columns.add(new PropertyColumn<>(new ResourceModel("messageNumber", "Coordination Messages"),
"messageNumber"));
columns.add(new PropertyColumn<>(new ResourceModel("coordinationAlgorithmReasoningTime",
"Algorithm Reasoning (ms)"), "coordinationAlgorithmReasoningTime"));
columns.add(new PropertyColumn<>(new ResourceModel("networkOverheadForCoordinationMessagesExchangeTime",
"Network Coordination Overhead Time (ms)"), "networkOverheadForCoordinationMessagesExchangeTime"));
columns.add(new PropertyColumn<>(new ResourceModel("waitTimeForSchedulingOperation",
"Scheduling Operation Wait Time (ms)"), "waitTimeForSchedulingOperation"));
columns.add(new PropertyColumn<>(new ResourceModel("waitTimeForSynchronizing",
"Synchronizing Wait Time (ms)"), "waitTimeForSynchronizing"));
columns.add(new PropertyColumn<>(new ResourceModel("serviceExecutionTime",
"Service Execution Time (ms)"), "serviceExecutionTime"));
columns.add(new PropertyColumn<>(new ResourceModel("networkOverheadForBusinessMessagesExchangeTime",
"Network Business Overhead (ms)"), "networkOverheadForBusinessMessagesExchangeTime"));
return columns;
}
......
......@@ -41,8 +41,20 @@ public class ChoreographyRestClient extends BaseRestClient {
}
public List<OperationDataTO> operationList(
final Long instanceId,
final Long choreographyInstancePK,
final String cdName) {
return getService(ConsoleInterfaceService.class).operationList(instanceId, cdName);
return getService(ConsoleInterfaceService.class).operationList(choreographyInstancePK, cdName);
}
public ChoreographyTO getChoreography(final Long choreographyId) {
return getService(ConsoleInterfaceService.class).getChoreography(choreographyId);
}
public ChoreographyInstanceTO getChoreographyInstance(final Long choreographyInstancePK) {
return getService(ConsoleInterfaceService.class).getChoreographyInstance(choreographyInstancePK);
}
public CoordinationDelegateTO getCD(final Long choreographyInstancePK, final String cdName) {
return getService(ConsoleInterfaceService.class).getCd(choreographyInstancePK, cdName);
}
}
......@@ -29,17 +29,19 @@ public class CoordinationDelegateTO extends AbstractBaseBean {
private int executedOperations;
private int sentMessages;
private int coordinationMessages;
private long totalServiceExecutionTime;
private long serviceExecutionTime;
private long totalOverhead;
private long networkOverheadForBusinessMessagesExchangeTime;
private long totalWaitTime;
private long coordinationAlgorithmReasoningTime;
private long startTime;
private long networkOverheadForCoordinationMessagesExchangeTime;
private long endTime;
private long waitTimeForSchedulingOperation;
private long waitTimeForSynchronizing;