adding rest call hack for performance measurements
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowEventHandler.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowEventHandler.java
index cca1390..662e81b 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowEventHandler.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowEventHandler.java
@@ -402,8 +402,8 @@
// PerformanceMonitor.report("EventHandler.WriteFlowsToDb");
// PerformanceMonitor.report("EventHandler.NotificationSend.FlowEntryRemoved");
// PerformanceMonitor.report("EventHandler.ProcessAllEvents");
- PerformanceMonitor.report();
- PerformanceMonitor.clear();
+// PerformanceMonitor.report();
+// PerformanceMonitor.clear();
return;
}
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java
index 78a3a6e..5651f73 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java
@@ -39,7 +39,6 @@
import net.onrc.onos.ofcontroller.util.serializers.KryoFactory;
import com.thinkaurelius.titan.core.TitanException;
-
import com.esotericsoftware.kryo2.Kryo;
import org.slf4j.Logger;
@@ -328,6 +327,16 @@
*/
@Override
public FlowPath getFlow(FlowId flowId) {
+ log.debug("FlowID: {}", flowId);
+ if(flowId.value() == -100) {
+ log.debug("Printing results...");
+ PerformanceMonitor.report();
+ PerformanceMonitor.clear();
+ }
+ else if(flowId.value() == -200) {
+ log.debug("Clearing results...");
+ PerformanceMonitor.clear();
+ }
return FlowDatabaseOperation.getFlow(dbHandlerApi, flowId);
}
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/PerformanceMonitor.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/PerformanceMonitor.java
index f265684..7c38a3c 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/PerformanceMonitor.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/PerformanceMonitor.java
@@ -80,6 +80,11 @@
*/
public static void report() {
String result = "Performance Results: (avg/start/stop/count)\n";
+ if(map.size() == 0) {
+ result += "No Measurements";
+ log.error(result);
+ return;
+ }
long experimentEnd = -1;
for(Entry<String, List<Measurement>> e : map.entrySet()) {
String key = e.getKey();
@@ -132,10 +137,10 @@
//TODO: fix this;
Measurement m = list.get(0);
if (m != null) {
- log.error("Performance Results: tag = {} start = {} stop = {} elapsed = {}",
+ log.error("Performance Result: tag = {} start = {} stop = {} elapsed = {}",
tag, m.start, m.stop, m.toString());
} else {
- log.error("Performance Results: unknown tag {}", tag);
+ log.error("Performance Result: unknown tag {}", tag);
}
}
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetFlowByIdResource.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetFlowByIdResource.java
index 1cbeece..de625d7 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetFlowByIdResource.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/web/GetFlowByIdResource.java
@@ -1,6 +1,7 @@
package net.onrc.onos.ofcontroller.flowmanager.web;
import net.onrc.onos.ofcontroller.flowmanager.IFlowService;
+import net.onrc.onos.ofcontroller.flowmanager.PerformanceMonitor;
import net.onrc.onos.ofcontroller.util.FlowId;
import net.onrc.onos.ofcontroller.util.FlowPath;