[tor-commits] [metrics-web/master] Remove remains of hourly relay flags graph.

karsten at torproject.org karsten at torproject.org
Fri Feb 1 11:42:35 UTC 2013


commit 124a4d91f0b7ac649db16a85e44d8e29c5dd179b
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date:   Fri Feb 1 12:40:29 2013 +0100

    Remove remains of hourly relay flags graph.
    
    Hourly relay flags graphs were disabled seven weeks ago as part of #7652.
    Remove the remaining, now unused code.
---
 db/tordir.sql                                      |   45 ---------
 rserve/csv.R                                       |   14 ---
 rserve/graphs.R                                    |   98 +++++++-------------
 .../ernie/web/graphs/GraphParameterChecker.java    |   20 ----
 .../ernie/web/graphs/RObjectGenerator.java         |    3 +-
 5 files changed, 36 insertions(+), 144 deletions(-)

diff --git a/db/tordir.sql b/db/tordir.sql
index 3749774..571a324 100644
--- a/db/tordir.sql
+++ b/db/tordir.sql
@@ -157,17 +157,6 @@ CREATE TABLE network_size (
     CONSTRAINT network_size_pkey PRIMARY KEY(date)
 );
 
--- TABLE network_size_hour
-CREATE TABLE network_size_hour (
-    validafter TIMESTAMP WITHOUT TIME ZONE NOT NULL,
-    avg_running INTEGER NOT NULL,
-    avg_exit INTEGER NOT NULL,
-    avg_guard INTEGER NOT NULL,
-    avg_fast INTEGER NOT NULL,
-    avg_stable INTEGER NOT NULL,
-    CONSTRAINT network_size_hour_pkey PRIMARY KEY(validafter)
-);
-
 -- TABLE relay_countries
 CREATE TABLE relay_countries (
     date DATE NOT NULL,
@@ -436,38 +425,6 @@ CREATE OR REPLACE FUNCTION refresh_network_size() RETURNS INTEGER AS $$
     END;
 $$ LANGUAGE plpgsql;
 
--- FUNCTION refresh_network_size_hour()
-CREATE OR REPLACE FUNCTION refresh_network_size_hour() RETURNS INTEGER AS $$
-    DECLARE
-        min_date TIMESTAMP WITHOUT TIME ZONE;
-        max_date TIMESTAMP WITHOUT TIME ZONE;
-    BEGIN
-
-    min_date := (SELECT MIN(date) FROM updates);
-    max_date := (SELECT MAX(date) + 1 FROM updates);
-
-    DELETE FROM network_size_hour
-    WHERE DATE(validafter) IN (SELECT date FROM updates);
-
-    EXECUTE '
-    INSERT INTO network_size_hour
-    (validafter, avg_running, avg_exit, avg_guard, avg_fast, avg_stable)
-    SELECT validafter, COUNT(*) AS avg_running,
-    COUNT(NULLIF(isexit, FALSE)) AS avg_exit,
-    COUNT(NULLIF(isguard, FALSE)) AS avg_guard,
-    COUNT(NULLIF(isfast, FALSE)) AS avg_fast,
-    COUNT(NULLIF(isstable, FALSE)) AS avg_stable
-    FROM statusentry
-    WHERE isrunning = TRUE
-    AND validafter >= ''' || min_date || '''
-    AND validafter < ''' || max_date || '''
-    AND DATE(validafter) IN (SELECT date FROM updates)
-    GROUP BY validafter';
-
-    RETURN 1;
-    END;
-$$ LANGUAGE plpgsql;
-
 -- FUNCTION refresh_relay_countries()
 CREATE OR REPLACE FUNCTION refresh_relay_countries() RETURNS INTEGER AS $$
     DECLARE
@@ -953,8 +910,6 @@ CREATE OR REPLACE FUNCTION refresh_all() RETURNS INTEGER AS $$
     PERFORM refresh_relay_statuses_per_day();
     RAISE NOTICE '% Refreshing network size.', timeofday();
     PERFORM refresh_network_size();
-    RAISE NOTICE '% Refreshing hourly network size.', timeofday();
-    PERFORM refresh_network_size_hour();
     RAISE NOTICE '% Refreshing relays by country.', timeofday();
     PERFORM refresh_relay_countries();
     RAISE NOTICE '% Refreshing relay platforms.', timeofday();
diff --git a/rserve/csv.R b/rserve/csv.R
index d7917e0..f8c21b1 100644
--- a/rserve/csv.R
+++ b/rserve/csv.R
@@ -135,20 +135,6 @@ export_relayflags <- function(path) {
   write.csv(relayflags, path, quote = FALSE, row.names = FALSE)
 }
 
-export_relayflags_hour <- function(path) {
-  drv <- dbDriver("PostgreSQL")
-  con <- dbConnect(drv, user = dbuser, password = dbpassword, dbname = db)
-   q <- paste("SELECT validafter, avg_running AS running,",
-      "avg_exit AS exit, avg_guard AS guard, avg_fast AS fast,",
-      "avg_stable AS stable FROM network_size_hour",
-      "WHERE DATE(validafter) < current_date - 1 ORDER BY validafter")
-  rs <- dbSendQuery(con, q)
-  relayflags <- fetch(rs, n = -1)
-  dbDisconnect(con)
-  dbUnloadDriver(drv)
-  write.csv(relayflags, path, quote = FALSE, row.names = FALSE)
-}
-
 export_direct_users <- function(path) {
   drv <- dbDriver("PostgreSQL")
   con <- dbConnect(drv, user = dbuser, password = dbpassword, dbname = db)
diff --git a/rserve/graphs.R b/rserve/graphs.R
index 07de07f..22225be 100644
--- a/rserve/graphs.R
+++ b/rserve/graphs.R
@@ -591,76 +591,48 @@ plot_dirbytes <- function(start, end, path) {
   ggsave(filename = path, width = 8, height = 5, dpi = 72)
 }
 
-plot_relayflags <- function(start, end, flags, granularity, path) {
+plot_relayflags <- function(start, end, flags, path) {
   end <- min(end, as.character(Sys.Date() - 2))
   drv <- dbDriver("PostgreSQL")
   con <- dbConnect(drv, user = dbuser, password = dbpassword, dbname = db)
-  if (granularity == 'day') {
-    columns <- paste("avg_", tolower(flags), sep = "", collapse = ", ")
-    q <- paste("SELECT date, ", columns, " FROM network_size ",
-        "WHERE date >= '", start, "' AND date <= '", end, "'", sep = "")
-    rs <- dbSendQuery(con, q)
-    networksize <- fetch(rs, n = -1)
-    dbDisconnect(con)
-    dbUnloadDriver(drv)
-    networksize <- melt(networksize, id = "date")
+  columns <- paste("avg_", tolower(flags), sep = "", collapse = ", ")
+  q <- paste("SELECT date, ", columns, " FROM network_size ",
+      "WHERE date >= '", start, "' AND date <= '", end, "'", sep = "")
+  rs <- dbSendQuery(con, q)
+  networksize <- fetch(rs, n = -1)
+  dbDisconnect(con)
+  dbUnloadDriver(drv)
+  networksize <- melt(networksize, id = "date")
+  networksize <- rbind(data.frame(
+    date = as.Date(end) + 1,
+    variable = paste("avg_", c("running", "exit", "guard", "fast",
+      "stable"), sep = ""),
+    value = NA), networksize)
+  dates <- seq(from = as.Date(start, "%Y-%m-%d"),
+      to = as.Date(end, "%Y-%m-%d"), by="1 day")
+  missing <- setdiff(dates, networksize$date)
+  if (length(missing) > 0)
     networksize <- rbind(data.frame(
-      date = as.Date(end) + 1,
+      date = as.Date(rep(missing, 5), origin = "1970-01-01"),
       variable = paste("avg_", c("running", "exit", "guard", "fast",
         "stable"), sep = ""),
-      value = NA), networksize)
-    dates <- seq(from = as.Date(start, "%Y-%m-%d"),
-        to = as.Date(end, "%Y-%m-%d"), by="1 day")
-    missing <- setdiff(dates, networksize$date)
-    if (length(missing) > 0)
-      networksize <- rbind(data.frame(
-        date = as.Date(rep(missing, 5), origin = "1970-01-01"),
-        variable = paste("avg_", c("running", "exit", "guard", "fast",
-          "stable"), sep = ""),
-        value = rep(NA, length(missing) * 5)), networksize)
-    date_breaks <- date_breaks(
-      as.numeric(max(as.Date(end, "%Y-%m-%d")) -
-      min(as.Date(networksize$date, "%Y-%m-%d"))))
-    ggplot(networksize, aes(x = as.Date(date, "%Y-%m-%d"), y = value,
-      colour = as.factor(variable))) + geom_line(size = 1) +
-      scale_x_date(name = paste("\nThe Tor Project - ",
-          "https://metrics.torproject.org/", sep = ""),
+      value = rep(NA, length(missing) * 5)), networksize)
+  date_breaks <- date_breaks(
+    as.numeric(max(as.Date(end, "%Y-%m-%d")) -
+    min(as.Date(networksize$date, "%Y-%m-%d"))))
+  ggplot(networksize, aes(x = as.Date(date, "%Y-%m-%d"), y = value,
+    colour = as.factor(variable))) + geom_line(size = 1) +
+    scale_x_date(name = paste("\nThe Tor Project - ",
+        "https://metrics.torproject.org/", sep = ""),
           format = date_breaks$format, major = date_breaks$major,
-          minor = date_breaks$minor, limits = as.Date(c(start, end))) +
-      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"),
-          breaks = paste("avg_", tolower(flags), sep = ""),
-          labels = flags) +
-      opts(title = "Number of relays with relay flags assigned\n")
-  } else {
-    columns <- paste("avg_", tolower(flags), sep = "", collapse = ", ")
-    q <- paste("SELECT validafter, ", columns, " FROM network_size_hour ",
-        "WHERE DATE(validafter) >= '", start,
-        "' AND DATE(validafter) <= '", end, "'", sep = "")
-    rs <- dbSendQuery(con, q)
-    networksize <- fetch(rs, n = -1)
-    dbDisconnect(con)
-    dbUnloadDriver(drv)
-    networksize <- melt(networksize, id = "validafter")
-    networksize <- rbind(data.frame(
-      validafter = as.POSIXct(rep(paste(end, "23:59:00"), 5)),
-      variable = paste("avg_", c("running", "exit", "guard", "fast",
-        "stable"), sep = ""),
-      value = rep(NA, 5)), networksize)
-    ggplot(networksize, aes(x = as.POSIXct(validafter), y = value,
-      colour = variable)) + geom_line(size = 1) +
-      scale_x_datetime(name = paste("\nThe Tor Project - ",
-          "https://metrics.torproject.org/", sep = "")) +
-      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"),
-          breaks = paste("avg_", tolower(flags), sep = ""),
-          labels = flags) +
-      opts(title = "Number of relays with relay flags assigned\n")
-  }
+        minor = date_breaks$minor, limits = as.Date(c(start, end))) +
+    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"),
+        breaks = paste("avg_", tolower(flags), sep = ""),
+        labels = flags) +
+    opts(title = "Number of relays with relay flags assigned\n")
   ggsave(filename = path, width = 8, height = 5, dpi = 72)
 }
 
diff --git a/src/org/torproject/ernie/web/graphs/GraphParameterChecker.java b/src/org/torproject/ernie/web/graphs/GraphParameterChecker.java
index c22a845..a47538e 100644
--- a/src/org/torproject/ernie/web/graphs/GraphParameterChecker.java
+++ b/src/org/torproject/ernie/web/graphs/GraphParameterChecker.java
@@ -50,7 +50,6 @@ public class GraphParameterChecker {
     this.knownParameterValues = new HashMap<String, String>();
     this.knownParameterValues.put("flag",
         "Running,Exit,Guard,Fast,Stable");
-    this.knownParameterValues.put("granularity", "day");
     StringBuilder sb = new StringBuilder("all");
     for (String[] country : Countries.getInstance().getCountryList()) {
       sb.append("," + country[0]);
@@ -148,25 +147,6 @@ public class GraphParameterChecker {
       recognizedGraphParameters.put("flag", flagParameters);
     }
 
-    /* Parse granularity, which can be 1 day or 1 hour, if supported by
-     * the graph type. The default is 1 day. */
-    if (supportedGraphParameters.contains("granularity")) {
-      String[] granularityParameter = (String[]) requestParameters.get(
-          "granularity");
-      List<String> knownGranularities = Arrays.asList(
-          this.knownParameterValues.get("granularity").split(","));
-      if (granularityParameter != null) {
-        if (granularityParameter.length != 1 ||
-            granularityParameter[0] == null ||
-            !knownGranularities.contains(granularityParameter[0])) {
-          return null;
-        }
-      } else {
-        granularityParameter = new String[] { "day" };
-      }
-      recognizedGraphParameters.put("granularity", granularityParameter);
-    }
-
     /* Parse country codes if supported by the graph type. If no countries
      * are passed, use country code "all" (all countries) as default. */
     if (supportedGraphParameters.contains("country")) {
diff --git a/src/org/torproject/ernie/web/graphs/RObjectGenerator.java b/src/org/torproject/ernie/web/graphs/RObjectGenerator.java
index c4eb801..6ed77f2 100644
--- a/src/org/torproject/ernie/web/graphs/RObjectGenerator.java
+++ b/src/org/torproject/ernie/web/graphs/RObjectGenerator.java
@@ -87,8 +87,7 @@ public class RObjectGenerator implements ServletContextListener {
     this.availableGraphs.put("cloudbridges", "start,end,filename");
     this.availableGraphs.put("relaycountries",
         "start,end,country,filename");
-    this.availableGraphs.put("relayflags", "start,end,flag,granularity,"
-        + "filename");
+    this.availableGraphs.put("relayflags", "start,end,flag,filename");
     this.availableGraphs.put("versions", "start,end,filename");
     this.availableGraphs.put("platforms", "start,end,filename");
     this.availableGraphs.put("bandwidth", "start,end,filename");



More information about the tor-commits mailing list