From c1f83d6ec970a94fb598a653a0881aeaa9f062fb Mon Sep 17 00:00:00 2001 From: zzz <zzz@i2pmail.org> Date: Sat, 4 Feb 2023 08:49:40 -0500 Subject: [PATCH] Router: Stat cleanup Remove old non-required client.timeoutCongestion* stats in OCMOSJ. Remove RouterThrottle.getInboundRateDelta(), used only for those stats. Remove transport.sendMessageSize rates longer than 60s, used only for getInboundRateDelta(). Remove transport.receiveMessageSize rates longer than 60s, unused anywhere. Remove transport.sendProcessingTime rates longer than 60s, unused anywhere. getInboundRateDelta() was broken anyway as it was looking at send, not receive size. All of this was untouched since 2004. 9 total rates for required stats removed. --- .../src/net/i2p/router/RouterThrottle.java | 7 +----- .../net/i2p/router/RouterThrottleImpl.java | 22 ------------------- .../net/i2p/router/dummy/VMCommSystem.java | 6 ++--- .../OutboundClientMessageOneShotJob.java | 16 ++++---------- .../i2p/router/transport/TransportImpl.java | 6 ++--- 5 files changed, 11 insertions(+), 46 deletions(-) diff --git a/router/java/src/net/i2p/router/RouterThrottle.java b/router/java/src/net/i2p/router/RouterThrottle.java index 6e8df3426a..81a0c51207 100644 --- a/router/java/src/net/i2p/router/RouterThrottle.java +++ b/router/java/src/net/i2p/router/RouterThrottle.java @@ -36,12 +36,7 @@ public interface RouterThrottle { public long getMessageDelay(); /** How backed up our tunnels are at the moment (in milliseconds) */ public long getTunnelLag(); - /** - * How much faster (or if negative, slower) we are receiving data as - * opposed to our longer term averages? - * - */ - public double getInboundRateDelta(); + /** * Message on the state of participating tunnel acceptance */ diff --git a/router/java/src/net/i2p/router/RouterThrottleImpl.java b/router/java/src/net/i2p/router/RouterThrottleImpl.java index 068deff500..9cc71c4333 100644 --- a/router/java/src/net/i2p/router/RouterThrottleImpl.java +++ b/router/java/src/net/i2p/router/RouterThrottleImpl.java @@ -532,28 +532,6 @@ public class RouterThrottleImpl implements RouterThrottle { return (long)lagRate.getAverageValue(); } - public double getInboundRateDelta() { - RateStat receiveRate = _context.statManager().getRate("transport.sendMessageSize"); - if (receiveRate == null) - return 0; - double nowBps = getBps(receiveRate.getRate(60*1000)); - double fiveMinBps = getBps(receiveRate.getRate(5*60*1000)); - double hourBps = getBps(receiveRate.getRate(60*60*1000)); - double dailyBps = getBps(receiveRate.getRate(24*60*60*1000)); - - if (nowBps < 0) return 0; - if (dailyBps > 0) return nowBps - dailyBps; - if (hourBps > 0) return nowBps - hourBps; - if (fiveMinBps > 0) return nowBps - fiveMinBps; - return 0; - } - - private static double getBps(Rate rate) { - if (rate == null) return -1; - double bytes = rate.getLastTotalValue(); - return (bytes*1000.0d)/rate.getPeriod(); - } - public String getTunnelStatus() { return _tunnelStatus; } diff --git a/router/java/src/net/i2p/router/dummy/VMCommSystem.java b/router/java/src/net/i2p/router/dummy/VMCommSystem.java index ead455361c..1eb5078dd2 100644 --- a/router/java/src/net/i2p/router/dummy/VMCommSystem.java +++ b/router/java/src/net/i2p/router/dummy/VMCommSystem.java @@ -41,15 +41,15 @@ public class VMCommSystem extends CommSystemFacade { _context = context; _log = context.logManager().getLog(VMCommSystem.class); _context.statManager().createFrequencyStat("transport.sendMessageFailureFrequency", "How often do we fail to send messages?", "Transport", new long[] { 60*1000l, 60*60*1000l, 24*60*60*1000l }); - _context.statManager().createRequiredRateStat("transport.sendMessageSize", "Size of sent messages (bytes)", "Transport", new long[] { 60*1000l, 5*60*1000l, 60*60*1000l, 24*60*60*1000l }); - _context.statManager().createRequiredRateStat("transport.receiveMessageSize", "Size of received messages (bytes)", "Transport", new long[] { 60*1000l, 5*60*1000l, 60*60*1000l, 24*60*60*1000l }); + _context.statManager().createRequiredRateStat("transport.sendMessageSize", "Size of sent messages (bytes)", "Transport", new long[] { 60*1000l }); + _context.statManager().createRequiredRateStat("transport.receiveMessageSize", "Size of received messages (bytes)", "Transport", new long[] { 60*1000l }); _context.statManager().createRateStat("transport.sendMessageSmall", "How many messages under 1KB are sent?", "Transport", new long[] { 60*1000l, 5*60*1000l, 60*60*1000l, 24*60*60*1000l }); _context.statManager().createRateStat("transport.receiveMessageSmall", "How many messages under 1KB are received?", "Transport", new long[] { 60*1000l, 5*60*1000l, 60*60*1000l, 24*60*60*1000l }); _context.statManager().createRateStat("transport.sendMessageMedium", "How many messages between 1KB and 4KB are sent?", "Transport", new long[] { 60*1000l, 5*60*1000l, 60*60*1000l, 24*60*60*1000l }); _context.statManager().createRateStat("transport.receiveMessageMedium", "How many messages between 1KB and 4KB are received?", "Transport", new long[] { 60*1000l, 5*60*1000l, 60*60*1000l, 24*60*60*1000l }); _context.statManager().createRateStat("transport.sendMessageLarge", "How many messages over 4KB are sent?", "Transport", new long[] { 60*1000l, 5*60*1000l, 60*60*1000l, 24*60*60*1000l }); _context.statManager().createRateStat("transport.receiveMessageLarge", "How many messages over 4KB are received?", "Transport", new long[] { 60*1000l, 5*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().createRequiredRateStat("transport.sendProcessingTime", "Time to process and send a message (ms)", "Transport", new long[] { 60*1000l }); // we do NOT start the thread, all keys will be generated inline _xdhThread = new X25519KeyFactory(context); } diff --git a/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java b/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java index 5c996400c7..2a3e66f3d0 100644 --- a/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java +++ b/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java @@ -260,9 +260,9 @@ public class OutboundClientMessageOneShotJob extends JobImpl { ctx.statManager().createFrequencyStat("client.sendMessageFailFrequency", "How often does a client fail to send a message?", "ClientMessages", new long[] { 60*1000l, 60*60*1000l, 24*60*60*1000l }); ctx.statManager().createRateStat("client.sendMessageSize", "How large are messages sent by the client?", "ClientMessages", new long[] { 60*1000l, 60*60*1000l, 24*60*60*1000l }); ctx.statManager().createRequiredRateStat("client.sendAckTime", "Message round trip time (ms)", "ClientMessages", new long[] { 60*1000l, 5*60*1000l, 60*60*1000l, 24*60*60*1000l }); - ctx.statManager().createRateStat("client.timeoutCongestionTunnel", "How lagged our tunnels are when a send times out?", "ClientMessages", new long[] { 60*1000l, 5*60*1000l, 60*60*1000l, 24*60*60*1000l }); - ctx.statManager().createRateStat("client.timeoutCongestionMessage", "How fast we process messages locally when a send times out?", "ClientMessages", new long[] { 5*60*1000l, 60*60*1000l, 24*60*60*1000l }); - ctx.statManager().createRateStat("client.timeoutCongestionInbound", "How much faster we are receiving data than our average bps when a send times out?", "ClientMessages", new long[] { 5*60*1000l, 60*60*1000l, 24*60*60*1000l }); + //ctx.statManager().createRateStat("client.timeoutCongestionTunnel", "How lagged our tunnels are when a send times out?", "ClientMessages", new long[] { 60*1000l, 5*60*1000l, 60*60*1000l, 24*60*60*1000l }); + //ctx.statManager().createRateStat("client.timeoutCongestionMessage", "How fast we process messages locally when a send times out?", "ClientMessages", new long[] { 5*60*1000l, 60*60*1000l, 24*60*60*1000l }); + //ctx.statManager().createRateStat("client.timeoutCongestionInbound", "How much faster we are receiving data than our average bps when a send times out?", "ClientMessages", new long[] { 5*60*1000l, 60*60*1000l, 24*60*60*1000l }); //ctx.statManager().createRateStat("client.leaseSetFoundLocally", "How often we tried to look for a leaseSet and found it locally?", "ClientMessages", new long[] { 5*60*1000l, 60*60*1000l, 24*60*60*1000l }); ctx.statManager().createRateStat("client.leaseSetFoundRemoteTime", "How long we tried to look for a remote leaseSet (when we succeeded)?", "ClientMessages", new long[] { 5*60*1000l, 60*60*1000l, 24*60*60*1000l }); ctx.statManager().createRateStat("client.leaseSetFailedRemoteTime", "How long we tried to look for a remote leaseSet (when we failed)?", "ClientMessages", new long[] { 5*60*1000l, 60*60*1000l, 24*60*60*1000l }); @@ -965,16 +965,8 @@ public class OutboundClientMessageOneShotJob extends JobImpl { " out " + _outTunnel + " in " + _lease + " ack " + _inTunnel + " after " + sendTime + "ms"); - long messageDelay = getContext().throttle().getMessageDelay(); - long tunnelLag = getContext().throttle().getTunnelLag(); - long inboundDelta = (long)getContext().throttle().getInboundRateDelta(); - - getContext().statManager().addRateData("client.timeoutCongestionTunnel", tunnelLag, 1); - getContext().statManager().addRateData("client.timeoutCongestionMessage", messageDelay, 1); - getContext().statManager().addRateData("client.timeoutCongestionInbound", inboundDelta, 1); - clearCaches(); - getContext().messageHistory().sendPayloadMessage(_clientMessageId.getMessageId(), false, sendTime); + //getContext().messageHistory().sendPayloadMessage(_clientMessageId.getMessageId(), false, sendTime); long nonce = _clientMessage.getMessageNonce(); if (nonce > 0) getContext().clientManager().messageDeliveryStatusUpdate(_from, _clientMessageId, nonce, status); diff --git a/router/java/src/net/i2p/router/transport/TransportImpl.java b/router/java/src/net/i2p/router/transport/TransportImpl.java index a329487615..18d1168474 100644 --- a/router/java/src/net/i2p/router/transport/TransportImpl.java +++ b/router/java/src/net/i2p/router/transport/TransportImpl.java @@ -103,11 +103,11 @@ public abstract class TransportImpl implements Transport { _log = _context.logManager().getLog(getClass()); _context.statManager().createRateStat("transport.sendMessageFailureLifetime", "How long the lifetime of messages that fail are?", "Transport", new long[] { 60*1000l, 10*60*1000l, 60*60*1000l, 24*60*60*1000l }); - _context.statManager().createRequiredRateStat("transport.sendMessageSize", "Size of sent messages (bytes)", "Transport", new long[] { 60*1000l, 5*60*1000l, 60*60*1000l, 24*60*60*1000l }); - _context.statManager().createRequiredRateStat("transport.receiveMessageSize", "Size of received messages (bytes)", "Transport", new long[] { 60*1000l, 5*60*1000l, 60*60*1000l, 24*60*60*1000l }); + _context.statManager().createRequiredRateStat("transport.sendMessageSize", "Size of sent messages (bytes)", "Transport", new long[] { 60*1000l }); + _context.statManager().createRequiredRateStat("transport.receiveMessageSize", "Size of received messages (bytes)", "Transport", new long[] { 60*1000l }); _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().createRequiredRateStat("transport.sendProcessingTime", "Time to process and send a message (ms)", "Transport", new long[] { 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 } ); -- GitLab