Author: zothar
Date: 2006-11-30 19:46:12 +0000 (Thu, 30 Nov 2006)
New Revision: 11144

Modified:
   trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
   trunk/freenet/src/freenet/clients/http/StatisticsToadlet.java
   trunk/freenet/src/freenet/support/SizeUtil.java
Log:
Added input/output rate limits to /stats/ and /darknet/.  Added 
useNonBreakingSpace option to SizeUtil.formatSize().  Use the new option in 
several places to get the 'word wrap' to be a little more friendly.

Modified: trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java       
2006-11-30 17:53:50 UTC (rev 11143)
+++ trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java       
2006-11-30 19:46:12 UTC (rev 11144)
@@ -18,6 +18,7 @@
 import java.util.Map;

 import freenet.client.HighLevelSimpleClient;
+import freenet.config.SubConfig;
 import freenet.io.comm.IOStatisticCollector;
 import freenet.io.comm.PeerParseException;
 import freenet.io.comm.ReferenceSignatureVerificationException;
@@ -196,15 +197,21 @@
                                        long totalPayload = 
node.getTotalPayloadSent();
                                        long total_payload_rate = totalPayload 
/ nodeUptimeSeconds;
                                        int percent = (int) (100 * totalPayload 
/ total[0]);
-                                       activityList.addChild("li", "Total 
Output:\u00a0" + SizeUtil.formatSize(total[0]) + "\u00a0(" + 
SizeUtil.formatSize(total_output_rate) + "ps)");
-                                       activityList.addChild("li", "Payload 
Output:\u00a0" + SizeUtil.formatSize(totalPayload) + "\u00a0(" + 
SizeUtil.formatSize(total_payload_rate) + "ps) ("+percent+"%)");
-                                       activityList.addChild("li", "Total 
Input:\u00a0" + SizeUtil.formatSize(total[1]) + "\u00a0(" + 
SizeUtil.formatSize(total_input_rate) + "ps)");
+                                       activityList.addChild("li", "Total 
Output:\u00a0" + SizeUtil.formatSize(total[0], true) + "\u00a0(" + 
SizeUtil.formatSize(total_output_rate, true) + "ps)");
+                                       activityList.addChild("li", "Payload 
Output:\u00a0" + SizeUtil.formatSize(totalPayload, true) + "\u00a0(" + 
SizeUtil.formatSize(total_payload_rate, true) + "ps) ("+percent+"%)");
+                                       activityList.addChild("li", "Total 
Input:\u00a0" + SizeUtil.formatSize(total[1], true) + "\u00a0(" + 
SizeUtil.formatSize(total_input_rate, true) + "ps)");
                                        long[] rate = node.getNodeIOStats();
                                        long delta = (rate[5] - rate[2]) / 1000;
                                        long output_rate = (rate[3] - rate[0]) 
/ delta;
                                        long input_rate = (rate[4] - rate[1]) / 
delta;
-                                       activityList.addChild("li", "Output 
Rate:\u00a0" + SizeUtil.formatSize(output_rate) + "ps");
-                                       activityList.addChild("li", "Input 
Rate:\u00a0" + SizeUtil.formatSize(input_rate) + "ps");
+                                       SubConfig nodeConfig = 
node.config.get("node");
+                                       int outputBandwidthLimit = 
nodeConfig.getInt("outputBandwidthLimit");
+                                       int inputBandwidthLimit = 
nodeConfig.getInt("inputBandwidthLimit");
+                                       if(inputBandwidthLimit == -1) {
+                                               inputBandwidthLimit = 
outputBandwidthLimit * 4;
+                                       }
+                                       activityList.addChild("li", "Output 
Rate:\u00a0" + SizeUtil.formatSize(output_rate, true) + "ps 
(of\u00a0"+SizeUtil.formatSize(outputBandwidthLimit, true)+"ps)");
+                                       activityList.addChild("li", "Input 
Rate:\u00a0" + SizeUtil.formatSize(input_rate, true) + "ps 
(of\u00a0"+SizeUtil.formatSize(inputBandwidthLimit, true)+"ps)");
                                }
                        }


Modified: trunk/freenet/src/freenet/clients/http/StatisticsToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/StatisticsToadlet.java       
2006-11-30 17:53:50 UTC (rev 11143)
+++ trunk/freenet/src/freenet/clients/http/StatisticsToadlet.java       
2006-11-30 19:46:12 UTC (rev 11144)
@@ -6,6 +6,7 @@
 import java.util.*;

 import freenet.client.*;
+import freenet.config.SubConfig;
 import freenet.io.comm.*;
 import freenet.node.*;
 import freenet.support.*;
@@ -350,15 +351,21 @@
                                long totalPayload = node.getTotalPayloadSent();
                                long total_payload_rate = totalPayload / 
nodeUptimeSeconds;
                                int percent = (int) (100 * totalPayload / 
total[0]);
-                               bandwidthList.addChild("li", "Total 
Output:\u00a0" + SizeUtil.formatSize(total[0]) + "\u00a0(" + 
SizeUtil.formatSize(total_output_rate) + "ps)");
-                               bandwidthList.addChild("li", "Payload 
Output:\u00a0" + SizeUtil.formatSize(totalPayload) + "\u00a0(" + 
SizeUtil.formatSize(total_payload_rate) + "ps) ("+percent+"%)");
-                               bandwidthList.addChild("li", "Total 
Input:\u00a0" + SizeUtil.formatSize(total[1]) + "\u00a0(" + 
SizeUtil.formatSize(total_input_rate) + "ps)");
+                               bandwidthList.addChild("li", "Total 
Output:\u00a0" + SizeUtil.formatSize(total[0]) + " (" + 
SizeUtil.formatSize(total_output_rate, true) + "ps)");
+                               bandwidthList.addChild("li", "Payload 
Output:\u00a0" + SizeUtil.formatSize(totalPayload) + " (" + 
SizeUtil.formatSize(total_payload_rate, true) + "ps) ("+percent+"%)");
+                               bandwidthList.addChild("li", "Total 
Input:\u00a0" + SizeUtil.formatSize(total[1]) + " (" + 
SizeUtil.formatSize(total_input_rate, true) + "ps)");
                                long[] rate = node.getNodeIOStats();
                                long delta = (rate[5] - rate[2]) / 1000;
                                long output_rate = (rate[3] - rate[0]) / delta;
                                long input_rate = (rate[4] - rate[1]) / delta;
-                               bandwidthList.addChild("li", "Output 
Rate:\u00a0" + SizeUtil.formatSize(output_rate) + "ps");
-                               bandwidthList.addChild("li", "Input 
Rate:\u00a0" + SizeUtil.formatSize(input_rate) + "ps");
+                               SubConfig nodeConfig = node.config.get("node");
+                               int outputBandwidthLimit = 
nodeConfig.getInt("outputBandwidthLimit");
+                               int inputBandwidthLimit = 
nodeConfig.getInt("inputBandwidthLimit");
+                               if(inputBandwidthLimit == -1) {
+                                       inputBandwidthLimit = 
outputBandwidthLimit * 4;
+                               }
+                               bandwidthList.addChild("li", "Output 
Rate:\u00a0" + SizeUtil.formatSize(output_rate, true) + "ps 
(of\u00a0"+SizeUtil.formatSize(outputBandwidthLimit, true)+"ps)");
+                               bandwidthList.addChild("li", "Input 
Rate:\u00a0" + SizeUtil.formatSize(input_rate, true) + "ps 
(of\u00a0"+SizeUtil.formatSize(inputBandwidthLimit, true)+"ps)");
                 nextTableCell = overviewTableRow.addChild("td");
                        }

@@ -393,17 +400,17 @@

                 storeSizeList.addChild("li", 
                         "Cached keys:\u00a0" + 
thousendPoint.format(cachedKeys) + 
-                        "\u00a0(" + SizeUtil.formatSize(cachedSize) + ')');
+                        " (" + SizeUtil.formatSize(cachedSize, true) + ')');

                 storeSizeList.addChild("li", 
                         "Stored keys:\u00a0" + thousendPoint.format(storeKeys) 
+ 
-                        "\u00a0(" + SizeUtil.formatSize(storeSize) + ')');
+                        " (" + SizeUtil.formatSize(storeSize, true) + ')');

                 storeSizeList.addChild("li", 
                         "Overall size:\u00a0" + 
thousendPoint.format(overallKeys) + 
                         "\u00a0/\u00a0" + thousendPoint.format(maxOverallKeys) 
+
-                        "\u00a0(" + SizeUtil.formatSize(overallSize) + 
-                        "\u00a0/\u00a0" + SizeUtil.formatSize(maxOverallSize) 
+ 
+                        " (" + SizeUtil.formatSize(overallSize, true) + 
+                        "\u00a0/\u00a0" + SizeUtil.formatSize(maxOverallSize, 
true) + 
                         ")\u00a0(" + ((overallKeys*100)/maxOverallKeys) + 
"%)");

                 storeSizeList.addChild("li", 
@@ -440,9 +447,9 @@
                 int threadCount = Thread.activeCount();
                 int availableCpus = rt.availableProcessors();

-                jvmStatsList.addChild("li", "Used Java memory:\u00a0" + 
SizeUtil.formatSize(usedJavaMem));
-                jvmStatsList.addChild("li", "Allocated Java memory:\u00a0" + 
SizeUtil.formatSize(allocatedJavaMem));
-                jvmStatsList.addChild("li", "Maximum Java memory:\u00a0" + 
SizeUtil.formatSize(maxJavaMem));
+                jvmStatsList.addChild("li", "Used Java memory:\u00a0" + 
SizeUtil.formatSize(usedJavaMem, true));
+                jvmStatsList.addChild("li", "Allocated Java memory:\u00a0" + 
SizeUtil.formatSize(allocatedJavaMem, true));
+                jvmStatsList.addChild("li", "Maximum Java memory:\u00a0" + 
SizeUtil.formatSize(maxJavaMem, true));
                 jvmStatsList.addChild("li", "Available CPUs:\u00a0" + 
availableCpus);
                 jvmStatsList.addChild("li", "Running threads:\u00a0" + 
thousendPoint.format(threadCount));
             }

Modified: trunk/freenet/src/freenet/support/SizeUtil.java
===================================================================
--- trunk/freenet/src/freenet/support/SizeUtil.java     2006-11-30 17:53:50 UTC 
(rev 11143)
+++ trunk/freenet/src/freenet/support/SizeUtil.java     2006-11-30 19:46:12 UTC 
(rev 11144)
@@ -7,6 +7,10 @@
        public static String[] suffixes = {"B", 
"KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"};

        public static String formatSize(long sz) {
+               return formatSize(sz, false);
+       }
+
+       public static String formatSize(long sz, boolean useNonBreakingSpace) {
                long s = 1;
                int i;
                for(i=0;i<SizeUtil.suffixes.length;i++) {
@@ -31,7 +35,11 @@
                        else if((o.indexOf('.') > -1) && (o.indexOf('E') == -1) 
&& (o.length() > 4))
                                o = o.substring(0, 4);
                        if(i < SizeUtil.suffixes.length) // handle the case 
where the mantissa is Infinity
-                               o += ' ' + SizeUtil.suffixes[i];
+                               if(useNonBreakingSpace) {
+                                       o += '\u00a0' + SizeUtil.suffixes[i];
+                               } else {
+                                       o += ' ' + SizeUtil.suffixes[i];
+                               }
                        return o;
                }
        }


Reply via email to