From 2332ac2a69de979bbf6b904d29e97bc4785a3989 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Thu, 6 Oct 2011 16:06:25 +0000
Subject: [PATCH]   * Transport: Add per-style send processing time stat

---
 .../src/net/i2p/router/transport/TransportImpl.java   | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/router/java/src/net/i2p/router/transport/TransportImpl.java b/router/java/src/net/i2p/router/transport/TransportImpl.java
index 9fd9426b4c..e82951482b 100644
--- a/router/java/src/net/i2p/router/transport/TransportImpl.java
+++ b/router/java/src/net/i2p/router/transport/TransportImpl.java
@@ -44,16 +44,16 @@ import net.i2p.util.SimpleTimer;
  *
  */
 public abstract class TransportImpl implements Transport {
-    private Log _log;
+    private final Log _log;
     private TransportEventListener _listener;
     private RouterAddress _currentAddress;
     private final List _sendPool;
-    protected RouterContext _context;
+    protected final RouterContext _context;
     /** map from routerIdentHash to timestamp (Long) that the peer was last unreachable */
     private final Map<Hash, Long>  _unreachableEntries;
-    private Set<Hash> _wasUnreachableEntries;
+    private final Set<Hash> _wasUnreachableEntries;
     /** global router ident -> IP */
-    private static Map<Hash, byte[]> _IPMap = new ConcurrentHashMap(128);
+    private static final Map<Hash, byte[]> _IPMap = new ConcurrentHashMap(128);
 
     /**
      * Initialize the new transport
@@ -69,11 +69,11 @@ public abstract class TransportImpl implements Transport {
         _context.statManager().createRateStat("transport.receiveMessageTime", "How long it takes to read a message?", "Transport", new long[] { 60*1000l, 5*60*1000l, 10*60*1000l, 60*60*1000l, 24*60*60*1000l });
         _context.statManager().createRateStat("transport.receiveMessageTimeSlow", "How long it takes to read a message (when it takes more than a second)?", "Transport", new long[] { 60*1000l, 5*60*1000l, 10*60*1000l, 60*60*1000l, 24*60*60*1000l });
         _context.statManager().createRequiredRateStat("transport.sendProcessingTime", "Time to process and send a message (ms)", "Transport", new long[] { 60*1000l, 10*60*1000l, 60*60*1000l, 24*60*60*1000l });
+        _context.statManager().createRateStat("transport.sendProcessingTime." + getStyle(), "Time to process and send a message (ms)", "Transport", new long[] { 60*1000l });
         _context.statManager().createRateStat("transport.expiredOnQueueLifetime", "How long a message that expires on our outbound queue is processed", "Transport", new long[] { 60*1000l, 10*60*1000l, 60*60*1000l, 24*60*60*1000l } );
         _sendPool = new ArrayList(16);
         _unreachableEntries = new HashMap(16);
         _wasUnreachableEntries = new ConcurrentHashSet(16);
-        _currentAddress = null;
         SimpleScheduler.getInstance().addPeriodicEvent(new CleanupUnreachable(), 2 * UNREACHABLE_PERIOD, UNREACHABLE_PERIOD / 2);
     }
 
@@ -318,6 +318,7 @@ public abstract class TransportImpl implements Transport {
 
         if (sendSuccessful) {
             _context.statManager().addRateData("transport.sendProcessingTime", lifetime, lifetime);
+            _context.statManager().addRateData("transport.sendProcessingTime." + getStyle(), lifetime, 0);
             _context.profileManager().messageSent(msg.getTarget().getIdentity().getHash(), getStyle(), sendTime, msg.getMessageSize());
             _context.statManager().addRateData("transport.sendMessageSize", msg.getMessageSize(), sendTime);
         } else {
-- 
GitLab