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;
}
}