Skip to content
Snippets Groups Projects
Commit f0b12e11 authored by Karsten Loesing's avatar Karsten Loesing
Browse files

Add graphing code for bandwidth by version (13634).

parent 0dabd990
No related branches found
No related tags found
No related merge requests found
.classpath
.project
/bin
/in
Rplots.pdf
*.csv
*.png
c <- read.csv("cw-by-ver.csv", header = FALSE)
c <- aggregate(list(cw = c$V3),
by = list(datetime = c$V1, version = c$V2),
FUN = sum)
c <- aggregate(list(cw = c$cw),
by = list(date = as.character(as.Date(c$datetime)),
version = c$version),
FUN = mean)
write.csv(c, "cw-by-ver-date.csv", row.names = FALSE, quote = FALSE)
require(ggplot2)
c <- read.csv("cw-by-ver-date.csv")
ggplot(c, aes(x = as.Date(date), y = cw, colour = version)) +
geom_line() +
scale_x_date("") +
scale_y_continuous("") +
ggtitle("Total consensus weight of running relays by version\n")
ggsave("cw-by-ver.png", width = 8, height = 5, dpi = 100)
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Iterator;
import java.util.TimeZone;
import org.torproject.descriptor.Descriptor;
import org.torproject.descriptor.DescriptorFile;
import org.torproject.descriptor.DescriptorReader;
import org.torproject.descriptor.DescriptorSourceFactory;
import org.torproject.descriptor.NetworkStatusEntry;
import org.torproject.descriptor.RelayNetworkStatusConsensus;
public class Main {
public static void main(String[] args) throws Exception {
BufferedWriter bw = new BufferedWriter(new FileWriter(
"cw-by-ver.csv"));
DescriptorReader descriptorReader =
DescriptorSourceFactory.createDescriptorReader();
descriptorReader.addDirectory(new File("in"));
Iterator<DescriptorFile> descriptorFiles =
descriptorReader.readDescriptors();
while (descriptorFiles.hasNext()) {
DescriptorFile descriptorFile = descriptorFiles.next();
for (Descriptor descriptor : descriptorFile.getDescriptors()) {
if (!(descriptor instanceof RelayNetworkStatusConsensus)) {
continue;
}
RelayNetworkStatusConsensus consensus =
(RelayNetworkStatusConsensus) descriptor;
DateFormat dateTimeFormat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
dateTimeFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
String validAfter = dateTimeFormat.format(
consensus.getValidAfterMillis());
for (NetworkStatusEntry entry :
consensus.getStatusEntries().values()) {
String version = entry.getVersion();
if (version != null && version.startsWith("Tor ") &&
version.length() >= 9) {
version = version.substring(4, 9); /* 0.2.5 of Tor 0.2.5.11 */
} else {
version = "other";
}
bw.write(validAfter + "," + version + ","
+ entry.getBandwidth() + "\n");
}
}
}
bw.close();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment