commit 117a75e2ccc2f4a7215619367a8ab154e47788d1 Author: Karsten Loesing karsten.loesing@gmx.net Date: Mon Mar 14 12:25:48 2011 +0100
Add bridge pool assignments to metrics website. --- .../torproject/ernie/web/ResearchDataServlet.java | 19 +++++++++++++++++ web/WEB-INF/data.jsp | 22 ++++++++++++++++++++ web/WEB-INF/index.jsp | 15 +++++-------- 3 files changed, 47 insertions(+), 9 deletions(-)
diff --git a/src/org/torproject/ernie/web/ResearchDataServlet.java b/src/org/torproject/ernie/web/ResearchDataServlet.java index 2d45c0f..ca6bf7b 100644 --- a/src/org/torproject/ernie/web/ResearchDataServlet.java +++ b/src/org/torproject/ernie/web/ResearchDataServlet.java @@ -75,6 +75,8 @@ public class ResearchDataServlet extends HttpServlet { SortedMap<String, Map<String, String[]>> torperfData = new TreeMap<String, Map<String, String[]>>(); SortedMap<Date, String[]> exitLists = new TreeMap<Date, String[]>(); + SortedMap<Date, String[]> bridgePoolAssignments = + new TreeMap<Date, String[]>();
/* Prepare rewriting Torperf sources. */ Map<String, String> torperfSources = new HashMap<String, String>(); @@ -207,6 +209,22 @@ public class ResearchDataServlet extends HttpServlet { exitLists.put(month, new String[2]); } exitLists.get(month)[0] = url; + + /* URL contains bridge pool assignments. */ + } else if (filename.startsWith("bridge-pool-assignments-20")) { + String yearMonth = filename.substring(filename.indexOf("20")); + yearMonth = yearMonth.substring(0, 7); + Date month = null; + try { + month = monthFormat.parse(yearMonth); + } catch (ParseException e) { + /* Ignore this URL. */ + continue; + } + if (!bridgePoolAssignments.containsKey(month)) { + bridgePoolAssignments.put(month, new String[2]); + } + bridgePoolAssignments.get(month)[0] = url; } }
@@ -217,6 +235,7 @@ public class ResearchDataServlet extends HttpServlet { request.setAttribute("relayStatistics", relayStatistics); request.setAttribute("torperfData", torperfData); request.setAttribute("exitLists", exitLists); + request.setAttribute("bridgePoolAssignments", bridgePoolAssignments); request.getRequestDispatcher("WEB-INF/data.jsp").forward(request, response); } diff --git a/web/WEB-INF/data.jsp b/web/WEB-INF/data.jsp index 86028c2..30d42f6 100644 --- a/web/WEB-INF/data.jsp +++ b/web/WEB-INF/data.jsp @@ -1,5 +1,6 @@ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<fmt:setLocale value="en_US"/> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> @@ -26,6 +27,7 @@ <ul> <li><a href="#relaydesc">Relay descriptor archives</a></li> <li><a href="#bridgedesc">Bridge descriptor archives</a></li> + <li><a href="#bridgeassignments">Bridge pool assignments</a></li> <li><a href="#stats">Statistics produced by relays</a></li> <li><a href="#performance">Performance data</a></li> <li><a href="#exitlist">Exit lists</a></li> @@ -124,6 +126,26 @@ </table> <p></p> <br> + <a name="bridgeassignments"></a> + <h3>Bridge pool assignments</h3> + <br> + <p>BridgeDB periodically dumps the list of running bridges with + information about the rings, subrings, and file buckets to which + they are assigned to a local file. We are archiving sanitized + versions of these files here to analyze how the pool assignment + affects a bridge's usage.</p> + <table width="100%" border="0" cellpadding="5" cellspacing="0" summary=""> + <c:forEach var="item" items="${bridgePoolAssignments}" > + <fmt:formatDate var="longDate" pattern="MMMM yyyy" + value="${item.key}"/> + <tr> + <td> + <a href="${item.value[0]}">${longDate}</a> + </td> + </tr> + </c:forEach> + </table> + <br> <a name="stats"></a> <h3>Statistics produced by relays</h3> <br> diff --git a/web/WEB-INF/index.jsp b/web/WEB-INF/index.jsp index f82a7b3..0da160b 100644 --- a/web/WEB-INF/index.jsp +++ b/web/WEB-INF/index.jsp @@ -32,6 +32,11 @@ <br> <h3>News</h3> <ul> + <li>March 14, 2011: + <a href="data.html#bridgeassignments">Sanitized bridge pool + assignments</a> containing lists of running bridges with + information about the rings, subrings, and file buckets to which + they are assigned are now available.</li> <li>January 27, 2011: New <a href="performance.html">Torperf</a> graphs combining the download times of all sources and showing the fraction of timeouts and failures are now available.</li> @@ -45,15 +50,7 @@ <li>November 30, 2010: Tech report on <a href="papers/countingusers-2010-11-30.pdf">Privacy-preserving Ways to Estimate the Number of Tor Users</a> is available for - download on the <a href="papers.html">Papers</a> page. - <li>October 7, 2010: Custom graphs are now available for all - <a href="graphs.html">graphs</a>. Based on work by Kevin - Berry.</li> - <li>September 9, 2010: Custom - graphs on network size, relay platforms, versions, and - observed bandwidth available. Implemented by Kevin Berry.</li> - <li>September 2, 2010: New <a href="relay-search.html">relay - search</a> feature available.</li> + download on the <a href="papers.html">Papers</a> page.</li> </ul> </div> </div>
tor-commits@lists.torproject.org