From 2d86e7cf604b43120bd3d887312b54853149b232 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Sat, 20 Dec 2008 01:00:53 +0000
Subject: [PATCH] add router.memoryUsed stat

---
 .../java/src/net/i2p/router/web/StatSummarizer.java          | 1 +
 .../java/src/net/i2p/router/web/SummaryListener.java         | 2 +-
 router/java/src/net/i2p/router/Router.java                   | 5 +++++
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/apps/routerconsole/java/src/net/i2p/router/web/StatSummarizer.java b/apps/routerconsole/java/src/net/i2p/router/web/StatSummarizer.java
index 6fc9823865..331f42d890 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/StatSummarizer.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/StatSummarizer.java
@@ -54,6 +54,7 @@ public class StatSummarizer implements Runnable {
 //                                                  ",udp.receivePacketSkew.60000" +
 //                                                  ",udp.sendConfirmTime.60000" +
 //                                                  ",udp.sendPacketSize.60000" +
+                                                    ",router.memoryUsed.60000" +
                                                     ",router.activePeers.60000";
 //                                                  ",router.activeSendPeers.60000" +
 //                                                  ",tunnel.acceptLoad.60000" +
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SummaryListener.java b/apps/routerconsole/java/src/net/i2p/router/web/SummaryListener.java
index ef22745127..6ef9df9db4 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryListener.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryListener.java
@@ -184,7 +184,7 @@ class SummaryRenderer {
             def.setTimePeriod(start/1000, 0);
             String name = _listener.getRate().getRateStat().getName();
             // heuristic to set K=1024
-            if ((name.startsWith("bw.") || name.indexOf("Size") >= 0 || name.indexOf("Bps") >= 0)
+            if ((name.startsWith("bw.") || name.indexOf("Size") >= 0 || name.indexOf("Bps") >= 0 || name.indexOf("memory") >= 0)
                 && !showEvents)
                 def.setBaseValue(1024);
             String title = name;
diff --git a/router/java/src/net/i2p/router/Router.java b/router/java/src/net/i2p/router/Router.java
index 591414fd01..f7342413af 100644
--- a/router/java/src/net/i2p/router/Router.java
+++ b/router/java/src/net/i2p/router/Router.java
@@ -1215,6 +1215,8 @@ class CoalesceStatsEvent implements SimpleTimer.TimedEvent {
         ctx.statManager().createRateStat("router.activeSendPeers", "How many peers we've sent to this minute", "Throttle", new long[] { 60*1000, 5*60*1000, 60*60*1000 });
         ctx.statManager().createRateStat("router.highCapacityPeers", "How many high capacity peers we know", "Throttle", new long[] { 5*60*1000, 60*60*1000 });
         ctx.statManager().createRateStat("router.fastPeers", "How many fast peers we know", "Throttle", new long[] { 5*60*1000, 60*60*1000 });
+        long max = Runtime.getRuntime().maxMemory() / (1024*1024);
+        ctx.statManager().createRateStat("router.memoryUsed", "(Bytes) Max is " + max + "MB", "Router", new long[] { 60*1000 });
     }
     private RouterContext getContext() { return _ctx; }
     public void timeReached() {
@@ -1233,6 +1235,9 @@ class CoalesceStatsEvent implements SimpleTimer.TimedEvent {
         getContext().statManager().addRateData("bw.sendRate", (long)getContext().bandwidthLimiter().getSendBps(), 0);
         getContext().statManager().addRateData("bw.recvRate", (long)getContext().bandwidthLimiter().getReceiveBps(), 0);
         
+        long used = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
+        getContext().statManager().addRateData("router.memoryUsed", used, 0);
+
         getContext().tunnelDispatcher().updateParticipatingStats();
 
         getContext().statManager().coalesceStats();
-- 
GitLab