use of com.evolveum.midpoint.util.aspect.MethodUsageStatistics in project midpoint by Evolveum.
the class ProfilingTest method prof_03_profManagerRequestTest.
@Test
public void prof_03_profManagerRequestTest() {
ProfilingDataManager manager = ProfilingDataManager.getInstance();
ProfilingDataLog event1 = new ProfilingDataLog("GET", REQUEST_FILTER_TEST_URI, "sessionID", FASTEST_METHOD_EST, System.currentTimeMillis());
ProfilingDataLog event2 = new ProfilingDataLog("GET", REQUEST_FILTER_TEST_URI, "sessionID", MIDDLE_METHOD_EST, System.currentTimeMillis());
ProfilingDataLog event3 = new ProfilingDataLog("GET", REQUEST_FILTER_TEST_URI, "sessionID", SLOWEST_METHOD_EST, System.currentTimeMillis());
//WHEN - adding 3 custom events
manager.prepareRequestProfilingEvent(event1);
manager.prepareRequestProfilingEvent(event2);
manager.prepareRequestProfilingEvent(event3);
Map<String, MethodUsageStatistics> perfMap = manager.getPerformanceMap();
//THEN
assertSame(1, perfMap.keySet().size());
assertSame(3, perfMap.get(REQUEST_FILTER_TEST_URI).getSlowestMethodList().size());
//Here, we are testing, if ProfilingEventList - slowestMethodMap is ordered correctly - we must use this
//strange approach, because testNG somehow thinks, that long 5000 != long 5000
boolean first = false;
boolean second = false;
boolean third = false;
if (SLOWEST_METHOD_EST == perfMap.get(REQUEST_FILTER_TEST_URI).getSlowestMethodList().get(0).getEstimatedTime())
first = true;
if (MIDDLE_METHOD_EST == perfMap.get(REQUEST_FILTER_TEST_URI).getSlowestMethodList().get(1).getEstimatedTime())
second = true;
if (FASTEST_METHOD_EST == perfMap.get(REQUEST_FILTER_TEST_URI).getSlowestMethodList().get(2).getEstimatedTime())
third = true;
assertSame(true, first);
assertSame(true, second);
assertSame(true, third);
boolean max = false;
boolean min = false;
boolean mean = false;
if (SLOWEST_METHOD_EST == perfMap.get(REQUEST_FILTER_TEST_URI).getMax())
max = true;
if (FASTEST_METHOD_EST == perfMap.get(REQUEST_FILTER_TEST_URI).getMin())
min = true;
long meanVal = (FASTEST_METHOD_EST + MIDDLE_METHOD_EST + SLOWEST_METHOD_EST) / 3;
if (meanVal == perfMap.get(REQUEST_FILTER_TEST_URI).getMean())
mean = true;
assertSame(true, max);
assertSame(true, min);
assertSame(true, mean);
}
use of com.evolveum.midpoint.util.aspect.MethodUsageStatistics in project midpoint by Evolveum.
the class ProfilingTest method prof_05_subsystemProfilingTest.
@Test
public void prof_05_subsystemProfilingTest() {
Map<ProfilingDataManager.Subsystem, Boolean> confMap = new HashMap<>();
confMap.put(ProfilingDataManager.Subsystem.MODEL, true);
confMap.put(ProfilingDataManager.Subsystem.REPOSITORY, true);
confMap.put(ProfilingDataManager.Subsystem.SYNCHRONIZATION_SERVICE, false);
confMap.put(ProfilingDataManager.Subsystem.WEB, false);
confMap.put(ProfilingDataManager.Subsystem.WORKFLOW, false);
confMap.put(ProfilingDataManager.Subsystem.PROVISIONING, false);
confMap.put(ProfilingDataManager.Subsystem.UCF, false);
confMap.put(ProfilingDataManager.Subsystem.TASK_MANAGER, false);
ProfilingDataManager.getInstance().configureProfilingDataManager(confMap, 10, true, false, false);
ProfilingDataManager manager = ProfilingDataManager.getInstance();
//6 prof. events are created, there should be 2 keys in HashMap
Long startTime = System.nanoTime();
manager.applyGranularityFilterOnEnd("class", "method", new String[] { "1", "2", "3" }, ProfilingDataManager.Subsystem.MODEL, System.currentTimeMillis(), startTime);
manager.applyGranularityFilterOnEnd("class", "method", new String[] { "1", "2", "3" }, ProfilingDataManager.Subsystem.MODEL, System.currentTimeMillis(), startTime);
manager.applyGranularityFilterOnEnd("class", "method", new String[] { "1", "2", "3" }, ProfilingDataManager.Subsystem.MODEL, System.currentTimeMillis(), startTime);
manager.applyGranularityFilterOnEnd("class2", "method", new String[] { "1", "2", "3" }, ProfilingDataManager.Subsystem.REPOSITORY, System.currentTimeMillis(), startTime);
manager.applyGranularityFilterOnEnd("class2", "method", new String[] { "1", "2", "3" }, ProfilingDataManager.Subsystem.REPOSITORY, System.currentTimeMillis(), startTime);
manager.applyGranularityFilterOnEnd("class2", "method", new String[] { "1", "2", "3" }, ProfilingDataManager.Subsystem.REPOSITORY, System.currentTimeMillis(), startTime);
Map<String, MethodUsageStatistics> perfMap = manager.getPerformanceMap();
//Now we test the results
assertSame(2, perfMap.keySet().size());
}
Aggregations