[tor-commits] [metrics-web/master] Tweak Advertised and consumed bandwidth by relay flag graph.

karsten at torproject.org karsten at torproject.org
Thu Dec 20 10:18:58 UTC 2018


commit 6b5f75996ad0d9ac5151da48f9693d478dd682de
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date:   Wed Dec 5 21:32:55 2018 +0100

    Tweak Advertised and consumed bandwidth by relay flag graph.
    
    This graph now contains everything that's contained in the Total relay
    bandwidth and the Consumed bandwidth by Exit/Guard flag combination
    graph.
    
    Removing those graphs will be done in a separate commit.
    
    Part of #28353.
---
 src/main/R/rserver/graphs.R              | 40 ++++++++++++++------------------
 src/main/resources/web/json/metrics.json |  4 ++--
 2 files changed, 20 insertions(+), 24 deletions(-)

diff --git a/src/main/R/rserver/graphs.R b/src/main/R/rserver/graphs.R
index 1f7309b..cb40d52 100644
--- a/src/main/R/rserver/graphs.R
+++ b/src/main/R/rserver/graphs.R
@@ -788,41 +788,37 @@ write_connbidirect <- function(start_p = NULL, end_p = NULL, path_p) {
 prepare_bandwidth_flags <- function(start_p, end_p) {
   advbw <- read.csv(paste(stats_dir, "advbw.csv", sep = ""),
     colClasses = c("date" = "Date")) %>%
-    transmute(date, isguard, isexit, variable = "advbw",
-      value = advbw * 8 / 1e9)
+    transmute(date, have_guard_flag = isguard, have_exit_flag = isexit,
+      variable = "advbw", value = advbw * 8 / 1e9)
   bwhist <- read.csv(paste(stats_dir, "bandwidth.csv", sep = ""),
     colClasses = c("date" = "Date")) %>%
-    transmute(date, isguard, isexit, variable = "bwhist",
-      value = (bwread + bwwrite) * 8 / 2e9)
+    transmute(date, have_guard_flag = isguard, have_exit_flag = isexit,
+      variable = "bwhist", value = (bwread + bwwrite) * 8 / 2e9)
   rbind(advbw, bwhist) %>%
     filter(if (!is.null(start_p)) date >= as.Date(start_p) else TRUE) %>%
     filter(if (!is.null(end_p)) date <= as.Date(end_p) else TRUE) %>%
-    group_by(date, variable) %>%
-    summarize(exit = sum(value[isexit == "t"]),
-      guard = sum(value[isguard == "t"])) %>%
-    gather(flag, value, -date, -variable) %>%
-    unite(variable, flag, variable) %>%
-    mutate(variable = factor(variable,
-      levels = c("guard_advbw", "guard_bwhist", "exit_advbw", "exit_bwhist")))
+    filter(have_exit_flag != "") %>%
+    filter(have_guard_flag != "")
 }
 
 plot_bandwidth_flags <- function(start_p, end_p, path_p) {
   prepare_bandwidth_flags(start_p, end_p) %>%
-    complete(date = full_seq(date, period = 1),
-      variable = unique(variable)) %>%
-    ggplot(aes(x = date, y = value, colour = variable)) +
-    geom_line() +
+    unite(flags, have_guard_flag, have_exit_flag) %>%
+    mutate(flags = factor(flags, levels = c("f_t", "t_t", "t_f", "f_f"),
+      labels = c("Exit only", "Guard and Exit", "Guard only",
+      "Neither Guard nor Exit"))) %>%
+    mutate(variable = ifelse(variable == "advbw",
+      "Advertised bandwidth", "Consumed bandwidth")) %>%
+    ggplot(aes(x = date, y = value, fill = flags)) +
+    geom_area() +
     scale_x_date(name = "", breaks = custom_breaks,
       labels = custom_labels, minor_breaks = custom_minor_breaks) +
     scale_y_continuous(name = "", labels = unit_format(unit = "Gbit/s"),
       limits = c(0, NA)) +
-    scale_colour_manual(name = "",
-        breaks = c("guard_advbw", "guard_bwhist", "exit_advbw", "exit_bwhist"),
-        labels = c("Guard, advertised bandwidth", "Guard, bandwidth history",
-                   "Exit, advertised bandwidth", "Exit, bandwidth history"),
-        values = c("#E69F00", "#D6C827", "#009E73", "#00C34F")) +
-    ggtitle(paste("Advertised bandwidth and bandwidth history by",
-        "relay flags")) +
+    scale_fill_manual(name = "",
+      values = c("#03B3FF", "#39FF02", "#FFFF00", "#AAAA99")) +
+    facet_grid(variable ~ .) +
+    ggtitle("Advertised and consumed bandwidth by relay flags") +
     labs(caption = copyright_notice) +
     theme(legend.position = "top")
   ggsave(filename = path_p, width = 8, height = 5, dpi = 150)
diff --git a/src/main/resources/web/json/metrics.json b/src/main/resources/web/json/metrics.json
index b351814..5173ae4 100644
--- a/src/main/resources/web/json/metrics.json
+++ b/src/main/resources/web/json/metrics.json
@@ -90,9 +90,9 @@
   },
   {
     "id": "bandwidth-flags",
-    "title": "Advertised and consumed bandwidth by relay flag",
+    "title": "Advertised and consumed bandwidth by relay flags",
     "type": "Graph",
-    "description": "<p>This graph shows <a href=\"glossary.html#advertised-bandwidth\">advertised</a> and <a href=\"glossary.html#bandwidth-history\">consumed bandwidth</a> of relays with either \"Exit\" or \"Guard\" <a href=\"glossary.html#relay-flag\">flags</a> assigned by the directory authorities.  These sets are not distinct, because a relay that has both the \"Exit\" and \"Guard\" flags assigned will be included in both sets.</p>",
+    "description": "<p>This graph shows <a href=\"glossary.html#advertised-bandwidth\">advertised</a> and <a href=\"glossary.html#bandwidth-history\">consumed bandwidth</a> of relays with \"Exit\" and/or \"Guard\" <a href=\"glossary.html#relay-flag\">flags</a> assigned by the directory authorities.</p>",
     "function": "bandwidth_flags",
     "parameters": [
       "start",





More information about the tor-commits mailing list