instrumented the simple client to register metrics
diff --git a/utils/netty/src/main/java/org/onlab/netty/SimpleClient.java b/utils/netty/src/main/java/org/onlab/netty/SimpleClient.java
index 1573780..7020e31 100644
--- a/utils/netty/src/main/java/org/onlab/netty/SimpleClient.java
+++ b/utils/netty/src/main/java/org/onlab/netty/SimpleClient.java
@@ -2,16 +2,43 @@
import java.util.concurrent.TimeUnit;
+import org.onlab.metrics.MetricsComponent;
+import org.onlab.metrics.MetricsFeature;
+import org.onlab.metrics.MetricsManager;
+
+import com.codahale.metrics.Timer;
+
public final class SimpleClient {
private SimpleClient() {}
public static void main(String... args) throws Exception {
NettyMessagingService messaging = new TestNettyMessagingService(9081);
+ MetricsManager metrics = new MetricsManager();
messaging.activate();
+ metrics.activate();
+ MetricsFeature feature = new MetricsFeature("timers");
+ MetricsComponent component = metrics.registerComponent("NettyMessaging");
+ Timer sendAsyncTimer = metrics.createTimer(component, feature, "AsyncSender");
+ final int warmup = 100;
+ for (int i = 0; i < warmup; i++) {
+ Timer.Context context = sendAsyncTimer.time();
+ messaging.sendAsync(new Endpoint("localhost", 8080), "simple", "Hello World");
+ context.stop();
+ }
+ metrics.registerMetric(component, feature, "AsyncTimer", sendAsyncTimer);
- messaging.sendAsync(new Endpoint("localhost", 8080), "simple", "Hello World");
- Response<String> response = messaging.sendAndReceive(new Endpoint("localhost", 8080), "echo", "Hello World");
- System.out.println("Got back:" + response.get(2, TimeUnit.SECONDS));
+ Timer sendAndRecieveTimer = metrics.createTimer(component, feature, "SendAndReceive");
+ final int iterations = 1000000;
+ for (int i=0; i < iterations; i++) {
+ Timer.Context context = sendAndRecieveTimer.time();
+ Response<String> response = messaging
+ .sendAndReceive(new Endpoint("localhost", 8080), "echo",
+ "Hello World");
+ System.out.println("Got back:" + response.get(2, TimeUnit.SECONDS));
+ context.stop();
+ }
+ metrics.registerMetric(component, feature, "AsyncTimer", sendAndRecieveTimer);
+
}
public static class TestNettyMessagingService extends NettyMessagingService {