From 03f4ebbe356e652bb52df7f7cf587404a568c61d Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Fri, 30 Jan 2015 16:17:39 +0000
Subject: [PATCH] add throttle stat

---
 .../java/src/net/i2p/router/transport/ntcp/EventPumper.java   | 1 +
 .../java/src/net/i2p/router/transport/ntcp/NTCPTransport.java | 4 +++-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/router/java/src/net/i2p/router/transport/ntcp/EventPumper.java b/router/java/src/net/i2p/router/transport/ntcp/EventPumper.java
index dd206a6a9d..3510ef0d9b 100644
--- a/router/java/src/net/i2p/router/transport/ntcp/EventPumper.java
+++ b/router/java/src/net/i2p/router/transport/ntcp/EventPumper.java
@@ -283,6 +283,7 @@ class EventPumper implements Runnable {
                         if (_log.shouldLog(Log.WARN))
                             _log.warn("EventPumper throttle " + loopCount + " loops in " +
                                       (System.currentTimeMillis() - lastFailsafeIteration) + " ms");
+                        _context.statManager().addRateData("ntcp.failsafeThrottle", 1);
                         try {
                             Thread.sleep(25);
                         } catch (InterruptedException ie) {}
diff --git a/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java b/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java
index b48dab0902..4ed950aee3 100644
--- a/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java
+++ b/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java
@@ -122,6 +122,7 @@ public class NTCPTransport extends TransportImpl {
         _context.statManager().createRateStat("ntcp.failsafeWrites", "How many times do we need to proactively add in an extra nio write to a peer at any given failsafe pass?", "ntcp", RATES);
         _context.statManager().createRateStat("ntcp.failsafeCloses", "How many times do we need to proactively close an idle connection to a peer at any given failsafe pass?", "ntcp", RATES);
         _context.statManager().createRateStat("ntcp.failsafeInvalid", "How many times do we close a connection to a peer to work around a JVM bug?", "ntcp", RATES);
+        _context.statManager().createRateStat("ntcp.failsafeThrottle", "Delay event pumper", "ntcp", RATES);
         _context.statManager().createRateStat("ntcp.accept", "", "ntcp", RATES);
         _context.statManager().createRateStat("ntcp.attemptBanlistedPeer", "", "ntcp", RATES);
         _context.statManager().createRateStat("ntcp.attemptUnreachablePeer", "", "ntcp", RATES);
@@ -245,7 +246,8 @@ public class NTCPTransport extends TransportImpl {
                 return;
             }
             if (isNew) {
-                con.send(msg); // doesn't do anything yet, just enqueues it
+                // doesn't do anything yet, just enqueues it
+                con.send(msg);
                 // As of 0.9.12, don't send our info if the first message is
                 // doing the same (common when connecting to a floodfill).
                 // Also, put the info message after whatever we are trying to send
-- 
GitLab