Author: toad
Date: 2007-02-07 15:53:35 +0000 (Wed, 07 Feb 2007)
New Revision: 11686

Modified:
   trunk/freenet/src/freenet/clients/http/StatisticsToadlet.java
   trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java
   trunk/freenet/src/freenet/node/Node.java
Log:
aku at frost: Add button for Berkeley DB stats dump to wrapper.log

Modified: trunk/freenet/src/freenet/clients/http/StatisticsToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/StatisticsToadlet.java       
2007-02-07 15:34:33 UTC (rev 11685)
+++ trunk/freenet/src/freenet/clients/http/StatisticsToadlet.java       
2007-02-07 15:53:35 UTC (rev 11686)
@@ -128,6 +128,13 @@
                        HTMLNode threadDumpForm = 
ctx.addFormChild(ctx.getPageMaker().getContentNode(infobox), "/", 
"threadDumpForm");
                        threadDumpForm.addChild("input", new String[] { "type", 
"name", "value" }, new String[] { "submit", "getThreadDump", "Generate a Thread 
Dump" });
                }
+
+               // BDB statistics dump 
+               if(advancedEnabled) {
+                       HTMLNode JEinfobox = 
contentNode.addChild(ctx.getPageMaker().getInfobox("Dump Database runtime 
statistics to wrapper.log"));
+                       HTMLNode JEStatsForm = 
ctx.addFormChild(ctx.getPageMaker().getContentNode(JEinfobox), "/", 
"JEStatsForm");
+                       JEStatsForm.addChild("input", new String[] { "type", 
"name", "value" }, new String[] { "submit", "getJEStatsDump", "Generate a JE 
Dump" });
+               }

                double swaps = (double)node.getSwaps();
                double noSwaps = (double)node.getNoSwaps();

Modified: trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java  2007-02-07 
15:34:33 UTC (rev 11685)
+++ trunk/freenet/src/freenet/clients/http/WelcomeToadlet.java  2007-02-07 
15:53:35 UTC (rev 11686)
@@ -129,6 +129,22 @@
                        }
                        this.writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
                        return;
+               }else if(request.isPartSet("getJEStatsDump")) {
+                       if(noPassword) {
+                               redirectToRoot(ctx);
+                               return;
+                       }
+                       HTMLNode pageNode = ctx.getPageMaker().getPageNode("Get 
JE Statistics");
+                       HTMLNode contentNode = 
ctx.getPageMaker().getContentNode(pageNode);
+                       HTMLNode infobox = 
contentNode.addChild(ctx.getPageMaker().getInfobox("Database Statistics"));
+
+                       System.out.println(">>>>>>>>>>>>>>>>>>>>>>> START 
DATABASE STATS <<<<<<<<<<<<<<<<<<<<<<<");
+                       node.JEStatsDump();
+                       System.out.println(">>>>>>>>>>>>>>>>>>>>>>>  END 
DATABASE STATS  <<<<<<<<<<<<<<<<<<<<<<<");
+
+                       
ctx.getPageMaker().getContentNode(infobox).addChild("#", "Runtime database 
statistics have been written to the wrapper logfile");
+                       this.writeReply(ctx, 200, "text/html", "OK", 
pageNode.generate());
+                       return;
                }else if (request.isPartSet("addbookmark")) {
                        if(noPassword) {
                                redirectToRoot(ctx);

Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java    2007-02-07 15:34:33 UTC (rev 
11685)
+++ trunk/freenet/src/freenet/node/Node.java    2007-02-07 15:53:35 UTC (rev 
11686)
@@ -35,6 +35,7 @@
 import com.sleepycat.je.Environment;
 import com.sleepycat.je.EnvironmentConfig;
 import com.sleepycat.je.EnvironmentMutableConfig;
+import com.sleepycat.je.StatsConfig;

 import freenet.client.FetcherContext;
 import freenet.config.FreenetFilePersistentConfig;
@@ -274,6 +275,7 @@
        /** The maximum size of the datastore. Kept to avoid rounding turning 
5G into 5368698672 */
        private long maxTotalDatastoreSize;

+       private StatsConfig statsConf;
        /* These are private because must be protected by synchronized(this) */
        private final Environment storeEnvironment;
        private final EnvironmentMutableConfig envMutableConfig;
@@ -1191,6 +1193,9 @@
                        throw new NodeInitException(EXIT_STORE_OTHER, 
e.getMessage());                  
                }

+               statsConf = new StatsConfig();
+               statsConf.setClear(true);
+
                storeShutdownHook = new SemiOrderedShutdownHook();
                Runtime.getRuntime().addShutdownHook(storeShutdownHook);

@@ -3475,4 +3480,13 @@
        public int getPortNumber() {
                return portNumber;
        }
+
+       public void JEStatsDump() {
+               try { 
+                       
System.out.println(storeEnvironment.getStats(statsConf));
+               }
+               catch(DatabaseException e) {
+                       System.out.println("Failed to get stats from JE 
environment: " + e);
+               }
+       }
 }


Reply via email to