[tor-commits] [metrics-web/master] Add HSDir to relay flags graph.

karsten at torproject.org karsten at torproject.org
Tue Feb 5 11:20:27 UTC 2013


commit aec90f18676bd9d53389692791f3240ef1b336aa
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date:   Tue Feb 5 12:20:05 2013 +0100

    Add HSDir to relay flags graph.
---
 db/tordir.sql                                      |   35 ++++++++++++++++++--
 rserve/csv.R                                       |    3 +-
 rserve/graphs.R                                    |    6 ++--
 .../ernie/web/graphs/GraphParameterChecker.java    |    4 +-
 web/WEB-INF/network.jsp                            |    3 +-
 5 files changed, 41 insertions(+), 10 deletions(-)

diff --git a/db/tordir.sql b/db/tordir.sql
index 571a324..e62732d 100644
--- a/db/tordir.sql
+++ b/db/tordir.sql
@@ -154,6 +154,15 @@ CREATE TABLE network_size (
     avg_guard INTEGER NOT NULL,
     avg_fast INTEGER NOT NULL,
     avg_stable INTEGER NOT NULL,
+    avg_authority INTEGER NOT NULL,
+    avg_badexit INTEGER NOT NULL,
+    avg_baddirectory INTEGER NOT NULL,
+    avg_hsdir INTEGER NOT NULL,
+    avg_named INTEGER NOT NULL,
+    avg_unnamed INTEGER NOT NULL,
+    avg_valid INTEGER NOT NULL,
+    avg_v2dir INTEGER NOT NULL,
+    avg_v3dir INTEGER NOT NULL,
     CONSTRAINT network_size_pkey PRIMARY KEY(date)
 );
 
@@ -398,20 +407,40 @@ CREATE OR REPLACE FUNCTION refresh_network_size() RETURNS INTEGER AS $$
 
     EXECUTE '
         INSERT INTO network_size
-        (date, avg_running, avg_exit, avg_guard, avg_fast, avg_stable)
+        (date, avg_running, avg_exit, avg_guard, avg_fast, avg_stable,
+        avg_authority, avg_badexit, avg_baddirectory, avg_hsdir,
+        avg_named, avg_unnamed, avg_valid, avg_v2dir, avg_v3dir)
         SELECT date,
             isrunning / count AS avg_running,
             isexit / count AS avg_exit,
             isguard / count AS avg_guard,
             isfast / count AS avg_fast,
-            isstable / count AS avg_stable
+            isstable / count AS avg_stable,
+            isauthority / count as avg_authority,
+            isbadexit / count as avg_badexit,
+            isbaddirectory / count as avg_baddirectory,
+            ishsdir / count as avg_hsdir,
+            isnamed / count as avg_named,
+            isunnamed / count as avg_unnamed,
+            isvalid / count as avg_valid,
+            isv2dir / count as avg_v2dir,
+            isv3dir / count as avg_v3dir
         FROM (
             SELECT DATE(validafter) AS date,
                 COUNT(*) AS isrunning,
                 COUNT(NULLIF(isexit, FALSE)) AS isexit,
                 COUNT(NULLIF(isguard, FALSE)) AS isguard,
                 COUNT(NULLIF(isfast, FALSE)) AS isfast,
-                COUNT(NULLIF(isstable, FALSE)) AS isstable
+                COUNT(NULLIF(isstable, FALSE)) AS isstable,
+                COUNT(NULLIF(isauthority, FALSE)) AS isauthority,
+                COUNT(NULLIF(isbadexit, FALSE)) AS isbadexit,
+                COUNT(NULLIF(isbaddirectory, FALSE)) AS isbaddirectory,
+                COUNT(NULLIF(ishsdir, FALSE)) AS ishsdir,
+                COUNT(NULLIF(isnamed, FALSE)) AS isnamed,
+                COUNT(NULLIF(isunnamed, FALSE)) AS isunnamed,
+                COUNT(NULLIF(isvalid, FALSE)) AS isvalid,
+                COUNT(NULLIF(isv2dir, FALSE)) AS isv2dir,
+                COUNT(NULLIF(isv3dir, FALSE)) AS isv3dir
             FROM statusentry
             WHERE isrunning = TRUE
               AND validafter >= ''' || min_date || '''
diff --git a/rserve/csv.R b/rserve/csv.R
index f8c21b1..9fdfbbd 100644
--- a/rserve/csv.R
+++ b/rserve/csv.R
@@ -126,7 +126,8 @@ export_relayflags <- function(path) {
   drv <- dbDriver("PostgreSQL")
   con <- dbConnect(drv, user = dbuser, password = dbpassword, dbname = db)
   q <- paste("SELECT date, avg_running AS running, avg_exit AS exit,",
-      "avg_guard AS guard, avg_fast AS fast, avg_stable AS stable",
+      "avg_guard AS guard, avg_fast AS fast, avg_stable AS stable,",
+      "avg_hsdir AS hsdir",
       "FROM network_size WHERE date < current_date - 1 ORDER BY date")
   rs <- dbSendQuery(con, q)
   relayflags <- fetch(rs, n = -1)
diff --git a/rserve/graphs.R b/rserve/graphs.R
index 2a59396..72bbc1e 100644
--- a/rserve/graphs.R
+++ b/rserve/graphs.R
@@ -606,7 +606,7 @@ plot_relayflags <- function(start, end, flags, path) {
   networksize <- rbind(data.frame(
     date = as.Date(end) + 1,
     variable = paste("avg_", c("running", "exit", "guard", "fast",
-      "stable"), sep = ""),
+      "stable", "hsdir"), sep = ""),
     value = NA), networksize)
   dates <- seq(from = as.Date(start, "%Y-%m-%d"),
       to = as.Date(end, "%Y-%m-%d"), by="1 day")
@@ -615,7 +615,7 @@ plot_relayflags <- function(start, end, flags, path) {
     networksize <- rbind(data.frame(
       date = as.Date(rep(missing, 5), origin = "1970-01-01"),
       variable = paste("avg_", c("running", "exit", "guard", "fast",
-        "stable"), sep = ""),
+        "stable", "hsdir"), sep = ""),
       value = rep(NA, length(missing) * 5)), networksize)
   date_breaks <- date_breaks(
     as.numeric(max(as.Date(end, "%Y-%m-%d")) -
@@ -629,7 +629,7 @@ plot_relayflags <- function(start, end, flags, path) {
     scale_y_continuous(name = "", limits = c(0, max(networksize$value,
         na.rm = TRUE))) +
     scale_colour_manual(name = "Relay flags", values = c("#E69F00",
-        "#56B4E9", "#009E73", "#000000", "#0072B2"),
+        "#56B4E9", "#009E73", "#EE6A50", "#000000", "#0072B2"),
         breaks = paste("avg_", tolower(flags), sep = ""),
         labels = flags) +
     opts(title = "Number of relays with relay flags assigned\n")
diff --git a/src/org/torproject/ernie/web/graphs/GraphParameterChecker.java b/src/org/torproject/ernie/web/graphs/GraphParameterChecker.java
index a47538e..8300be5 100644
--- a/src/org/torproject/ernie/web/graphs/GraphParameterChecker.java
+++ b/src/org/torproject/ernie/web/graphs/GraphParameterChecker.java
@@ -49,7 +49,7 @@ public class GraphParameterChecker {
 
     this.knownParameterValues = new HashMap<String, String>();
     this.knownParameterValues.put("flag",
-        "Running,Exit,Guard,Fast,Stable");
+        "Running,Exit,Guard,Fast,Stable,HSDir");
     StringBuilder sb = new StringBuilder("all");
     for (String[] country : Countries.getInstance().getCountryList()) {
       sb.append("," + country[0]);
@@ -142,7 +142,7 @@ public class GraphParameterChecker {
           }
         }
       } else {
-        flagParameters = this.knownParameterValues.get("flag").split(",");
+        flagParameters = "Running,Exit,Guard,Fast,Stable".split(",");
       }
       recognizedGraphParameters.put("flag", flagParameters);
     }
diff --git a/web/WEB-INF/network.jsp b/web/WEB-INF/network.jsp
index a43c46e..0b92c1a 100644
--- a/web/WEB-INF/network.jsp
+++ b/web/WEB-INF/network.jsp
@@ -89,7 +89,7 @@ country.</p>
 
 <a name="relayflags"></a>
 <h3><a href="#relayflags" class="anchor">Relays with Exit, Fast, Guard,
-and Stable flags</a></h3>
+Stable, and HSDir flags</a></h3>
 <br>
 <p>The directory authorities assign certain flags to relays that clients
 use for their path selection decisions. The following graph shows the
@@ -113,6 +113,7 @@ average number of relays with these flags assigned.</p>
       <input type="checkbox" name="flag" value="Fast"<c:if test="${fn:length(relayflags_flag) == 0 or fn:contains(fn:join(relayflags_flag, ','), 'Fast')}"> checked</c:if>> Fast
       <input type="checkbox" name="flag" value="Guard"<c:if test="${fn:length(relayflags_flag) == 0 or fn:contains(fn:join(relayflags_flag, ','), 'Guard')}"> checked</c:if>> Guard
       <input type="checkbox" name="flag" value="Stable"<c:if test="${fn:length(relayflags_flag) == 0 or fn:contains(fn:join(relayflags_flag, ','), 'Stable')}"> checked</c:if>> Stable
+      <input type="checkbox" name="flag" value="HSDir"<c:if test="${fn:length(relayflags_flag) > 0 and fn:contains(fn:join(relayflags_flag, ','), 'HSDir')}"> checked</c:if>> HSDir
     </p><p>
     <input class="submit" type="submit" value="Update graph">
     </p>



More information about the tor-commits mailing list