[tor-commits] [metrics-web/master] Put glossary back.

karsten at torproject.org karsten at torproject.org
Mon Jan 9 17:03:42 UTC 2017


commit b7430b585a0bca30a1ec1e4fd99d2f74d7a533fc
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date:   Thu Dec 22 21:01:02 2016 +0100

    Put glossary back.
---
 website/etc/metrics.json                           |  50 ++++-----
 website/etc/web.xml                                |  11 ++
 .../torproject/metrics/web/GlossaryServlet.java    |  31 ++++++
 website/web/WEB-INF/bubbles.jsp                    |   6 +-
 website/web/WEB-INF/glossary.jsp                   | 114 +++++++++++++++++++++
 website/web/WEB-INF/stats.jsp                      |  42 ++++----
 6 files changed, 205 insertions(+), 49 deletions(-)

diff --git a/website/etc/metrics.json b/website/etc/metrics.json
index 0a6c924..8fc3da6 100644
--- a/website/etc/metrics.json
+++ b/website/etc/metrics.json
@@ -3,7 +3,7 @@
     "id": "networksize",
     "title": "Relays and bridges in the network",
     "type": "Graph",
-    "description": "<p>The following graph shows the number of running <a href=\"about.html#relay\">relays</a> and <a href=\"about.html#bridge\">bridges</a> in the network.</p>",
+    "description": "<p>The following graph shows the number of running <a href=\"glossary.html#relay\">relays</a> and <a href=\"glossary.html#bridge\">bridges</a> in the network.</p>",
     "function": "plot_networksize",
     "parameters": [
       "start",
@@ -17,7 +17,7 @@
     "id": "relayflags",
     "title": "Relays with Exit, Fast, Guard, Stable, and HSDir flags",
     "type": "Graph",
-    "description": "<p>The following graph shows the number of running <a href=\"about.html#relay\">relays</a> that have had certain <a href=\"about.html#relay-flag\">flags</a> assigned by the <a href=\"about.html#directory-authority\">directory authorities</a>.  These flags indicate that a relay should be preferred for either guard (\"Guard\") or exit positions (\"Exit\"), that a relay is suitable for high-bandwidth (\"Fast\") or long-lived circuits (\"Stable\"), or that a relay is considered a hidden service directory (\"HSDir\").</p>",
+    "description": "<p>The following graph shows the number of running <a href=\"glossary.html#relay\">relays</a> that have had certain <a href=\"glossary.html#relay-flag\">flags</a> assigned by the <a href=\"glossary.html#directory-authority\">directory authorities</a>.  These flags indicate that a relay should be preferred for either guard (\"Guard\") or exit positions (\"Exit\"), that a relay is suitable for high-bandwidth (\"Fast\") or long-lived circuits (\"Stable\"), or that a relay is considered a hidden service directory (\"HSDir\").</p>",
     "function": "plot_relayflags",
     "parameters": [
       "start",
@@ -32,7 +32,7 @@
     "id": "versions",
     "title": "Relays by version",
     "type": "Graph",
-    "description": "<p>The following graph shows the number of running <a href=\"about.html#relay\">relays</a> by tor software version.  Relays report their tor software version when they announce themselves in the network.  More details on when these versions were declared stable or unstable can be found on the <a href=\"https://www.torproject.org/download/download.html\">download page</a> and in the <a href=\"https://gitweb.torproject.org/tor.git/tree/ChangeLog\">changes file</a>.</p>",
+    "description": "<p>The following graph shows the number of running <a href=\"glossary.html#relay\">relays</a> by tor software version.  Relays report their tor software version when they announce themselves in the network.  More details on when these versions were declared stable or unstable can be found on the <a href=\"https://www.torproject.org/download/download.html\">download page</a> and in the <a href=\"https://gitweb.torproject.org/tor.git/tree/ChangeLog\">changes file</a>.</p>",
     "function": "plot_versions",
     "parameters": [
       "start",
@@ -46,7 +46,7 @@
     "id": "platforms",
     "title": "Relays by platform",
     "type": "Graph",
-    "description": "<p>The following graph shows the number of running <a href=\"about.html#relay\">relays</a> by operating system.  Relays report their operating system when they announce themselves in the network.</p>",
+    "description": "<p>The following graph shows the number of running <a href=\"glossary.html#relay\">relays</a> by operating system.  Relays report their operating system when they announce themselves in the network.</p>",
     "function": "plot_platforms",
     "parameters": [
       "start",
@@ -60,7 +60,7 @@
     "id": "bandwidth",
     "title": "Total relay bandwidth in the network",
     "type": "Graph",
-    "description": "<p>The following graph shows the total <a href=\"about.html#advertised-bandwidth\">advertised</a> and <a href=\"about.html#bandwidth-history\">consumed bandwidth</a> of all <a href=\"about.html#relay\">relays</a> in the network.</p>",
+    "description": "<p>The following graph shows the total <a href=\"glossary.html#advertised-bandwidth\">advertised</a> and <a href=\"glossary.html#bandwidth-history\">consumed bandwidth</a> of all <a href=\"glossary.html#relay\">relays</a> in the network.</p>",
     "function": "plot_bandwidth",
     "parameters": [
       "start",
@@ -74,7 +74,7 @@
     "id": "bwhist-flags",
     "title": "Relay bandwidth by Exit and/or Guard flags",
     "type": "Graph",
-    "description": "<p>The following graph shows the <a href=\"about.html#bandwidth-history\">consumed bandwidth</a> reported by relays, subdivided into four distinct subsets by assigned \"Exit\" and/or \"Guard\" <a href=\"about.html#relay-flag\">flags</a>.</p>",
+    "description": "<p>The following graph shows the <a href=\"glossary.html#bandwidth-history\">consumed bandwidth</a> reported by relays, subdivided into four distinct subsets by assigned \"Exit\" and/or \"Guard\" <a href=\"glossary.html#relay-flag\">flags</a>.</p>",
     "function": "plot_bwhist_flags",
     "parameters": [
       "start",
@@ -88,7 +88,7 @@
     "id": "bandwidth-flags",
     "title": "Advertised bandwidth and bandwidth history by relay flags",
     "type": "Graph",
-    "description": "<p>The following graph shows <a href=\"about.html#advertised-bandwidth\">advertised</a> and <a href=\"about.html#bandwidth-history\">consumed bandwidth</a> of relays with either \"Exit\" or \"Guard\" <a href=\"about.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>The following 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>",
     "function": "plot_bandwidth_flags",
     "parameters": [
       "start",
@@ -102,7 +102,7 @@
     "id": "dirbytes",
     "title": "Number of bytes spent on answering directory requests",
     "type": "Graph",
-    "description": "<p>The following graph shows the portion of <a href=\"about.html#bandwidth-history\">consumed bandwidth</a> that <a href=\"about.html#directory-authority\">directory authorities</a> and <a href=\"about.html#directory-mirror\">mirrors</a> have spent on answering directory requests.  Not all directories report these statistics, so the graph shows an estimation of total consumed bandwidth as it would be observed if all directories reported these statistics.</p>",
+    "description": "<p>The following graph shows the portion of <a href=\"glossary.html#bandwidth-history\">consumed bandwidth</a> that <a href=\"glossary.html#directory-authority\">directory authorities</a> and <a href=\"glossary.html#directory-mirror\">mirrors</a> have spent on answering directory requests.  Not all directories report these statistics, so the graph shows an estimation of total consumed bandwidth as it would be observed if all directories reported these statistics.</p>",
     "function": "plot_dirbytes",
     "parameters": [
       "start",
@@ -116,7 +116,7 @@
     "id": "advbwdist-perc",
     "title": "Advertised bandwidth distribution",
     "type": "Graph",
-    "description": "<p>The following graph shows the distribution of the <a href=\"about.html#advertised-bandwidth\">advertised bandwidth</a> of relays in the network.  Each percentile represents the advertised bandwidth that a given percentage of relays does not exceed (and that in turn the remaining relays either match or exceed).  For example, 99% of relays advertise at most the bandwidth value shown in the 99th percentile line (and the remaining 1% advertise at least that amount).</p>",
+    "description": "<p>The following graph shows the distribution of the <a href=\"glossary.html#advertised-bandwidth\">advertised bandwidth</a> of relays in the network.  Each percentile represents the advertised bandwidth that a given percentage of relays does not exceed (and that in turn the remaining relays either match or exceed).  For example, 99% of relays advertise at most the bandwidth value shown in the 99th percentile line (and the remaining 1% advertise at least that amount).</p>",
     "function": "plot_advbwdist_perc",
     "parameters": [
       "start",
@@ -131,7 +131,7 @@
     "id": "advbwdist-relay",
     "title": "Advertised bandwidth of n-th fastest relays",
     "type": "Graph",
-    "description": "<p>The following graph shows the <a href=\"about.html#advertised-bandwidth\">advertised bandwidth</a> of the n-th fastest relays in the network for different values of n.</p>",
+    "description": "<p>The following graph shows the <a href=\"glossary.html#advertised-bandwidth\">advertised bandwidth</a> of the n-th fastest relays in the network for different values of n.</p>",
     "function": "plot_advbwdist_relay",
     "parameters": [
       "start",
@@ -151,7 +151,7 @@
     "id": "userstats-relay-country",
     "title": "Direct users by country",
     "type": "Graph",
-    "description": "<p>The following graph shows the estimated number of directly-connecting <a href=\"about.html#client\">clients</a>; that is, it excludes clients connecting via <a href=\"about.html#bridge\">bridges</a>.  These estimates are derived from the number of directory requests counted on <a href=\"about.html#directory-authority\">directory authorities</a> and <a href=\"about.html#directory-mirror\">mirrors</a>.  Relays resolve client IP addresses to country codes, so that graphs are available for most countries.  Furthermore, it is possible to display indications of censorship events as obtained from an anomaly-based censorship-detection system (for more details, see this <a href=\"https://research.torproject.org/techreports/detector-2011-09-09.pdf\">technical report</a>).  For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
+    "description": "<p>The following graph shows the estimated number of directly-connecting <a href=\"glossary.html#client\">clients</a>; that is, it excludes clients connecting via <a href=\"glossary.html#bridge\">bridges</a>.  These estimates are derived from the number of directory requests counted on <a href=\"glossary.html#directory-authority\">directory authorities</a> and <a href=\"glossary.html#directory-mirror\">mirrors</a>.  Relays resolve client IP addresses to country codes, so that graphs are available for most countries.  Furthermore, it is possible to display indications of censorship events as obtained from an anomaly-based censorship-detection system (for more details, see this <a href=\"https://research.torproject.org/techreports/detector-2011-09-09.pdf\">technical report</a>).  For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
     "function": "plot_userstats_relay_country",
     "parameters": [
       "start",
@@ -167,7 +167,7 @@
     "id": "userstats-relay-table",
     "title": "Top-10 countries by directly connecting users",
     "type": "Table",
-    "description": "<p>The following table shows the top-10 countries by estimated number of directly-connecting <a href=\"about.html#client\">clients</a>.  These numbers are derived from directory requests counted on <a href=\"about.html#directory-authority\">directory authorities</a> and <a href=\"about.html#directory-mirror\">mirrors</a>.  Relays resolve client IP addresses to country codes, so that numbers are available for most countries.  For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
+    "description": "<p>The following table shows the top-10 countries by estimated number of directly-connecting <a href=\"glossary.html#client\">clients</a>.  These numbers are derived from directory requests counted on <a href=\"glossary.html#directory-authority\">directory authorities</a> and <a href=\"glossary.html#directory-mirror\">mirrors</a>.  Relays resolve client IP addresses to country codes, so that numbers are available for most countries.  For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
     "function": "write_userstats_relay",
     "parameters": [
       "start",
@@ -213,7 +213,7 @@
     "id": "userstats-bridge-country",
     "title": "Bridge users by country",
     "type": "Graph",
-    "description": "<p>The following graph shows the estimated number of <a href=\"about.html#client\">clients</a> connecting via <a href=\"about.html#bridge\">bridges</a>.  These numbers are derived from directory requests counted on bridges.  Bridges resolve client IP addresses of incoming directory requests to country codes, so that graphs are available for most countries.  For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
+    "description": "<p>The following graph shows the estimated number of <a href=\"glossary.html#client\">clients</a> connecting via <a href=\"glossary.html#bridge\">bridges</a>.  These numbers are derived from directory requests counted on bridges.  Bridges resolve client IP addresses of incoming directory requests to country codes, so that graphs are available for most countries.  For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
     "function": "plot_userstats_bridge_country",
     "parameters": [
       "start",
@@ -228,7 +228,7 @@
     "id": "userstats-bridge-table",
     "title": "Top-10 countries by bridge users",
     "type": "Table",
-    "description": "<p>The following table shows the top-10 countries by estimated number of <a href=\"about.html#client\">clients</a> connecting via <a href=\"about.html#bridge\">bridges</a>.  These numbers are derived from directory requests counted on bridges.  Bridges resolve client IP addresses of incoming directory requests to country codes, so that numbers are available for most countries.  For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
+    "description": "<p>The following table shows the top-10 countries by estimated number of <a href=\"glossary.html#client\">clients</a> connecting via <a href=\"glossary.html#bridge\">bridges</a>.  These numbers are derived from directory requests counted on bridges.  Bridges resolve client IP addresses of incoming directory requests to country codes, so that numbers are available for most countries.  For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
     "function": "write_userstats_bridge",
     "parameters": [
       "start",
@@ -250,7 +250,7 @@
     "id": "userstats-bridge-transport",
     "title": "Bridge users by transport",
     "type": "Graph",
-    "description": "<p>The following graph shows the estimated number of <a href=\"about.html#client\">clients</a> connecting via <a href=\"about.html#bridge\">bridges</a>.  These numbers are derived from directory requests counted on bridges.  Bridges distinguish connecting clients by transport protocol, which may include <a href=\"about.html#pluggable-transport\">pluggable transports</a>, so that graphs are available for different transports.  For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
+    "description": "<p>The following graph shows the estimated number of <a href=\"glossary.html#client\">clients</a> connecting via <a href=\"glossary.html#bridge\">bridges</a>.  These numbers are derived from directory requests counted on bridges.  Bridges distinguish connecting clients by transport protocol, which may include <a href=\"glossary.html#pluggable-transport\">pluggable transports</a>, so that graphs are available for different transports.  For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
     "function": "plot_userstats_bridge_transport",
     "parameters": [
       "start",
@@ -265,7 +265,7 @@
     "id": "userstats-bridge-combined",
     "title": "Bridge users by country and transport",
     "type": "Graph",
-    "description": "<p>The following graph shows the estimated number of <a href=\"about.html#client\">clients</a> connecting via <a href=\"about.html#bridge\">bridges</a>.  These numbers are derived from directory requests counted on bridges.  Bridges resolve client IP addresses of incoming directory requests to country codes, and they distinguish connecting clients by transport protocol, which may include <a href=\"about.html#pluggable-transport\">pluggable transports</a>.  Even though bridges don't report a combination of clients by country and transport, it's possible to derive and graph lower and upper bounds from existing usage statistics.  For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
+    "description": "<p>The following graph shows the estimated number of <a href=\"glossary.html#client\">clients</a> connecting via <a href=\"glossary.html#bridge\">bridges</a>.  These numbers are derived from directory requests counted on bridges.  Bridges resolve client IP addresses of incoming directory requests to country codes, and they distinguish connecting clients by transport protocol, which may include <a href=\"glossary.html#pluggable-transport\">pluggable transports</a>.  Even though bridges don't report a combination of clients by country and transport, it's possible to derive and graph lower and upper bounds from existing usage statistics.  For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
     "function": "plot_userstats_bridge_combined",
     "parameters": [
       "start",
@@ -280,7 +280,7 @@
     "id": "userstats-bridge-version",
     "title": "Bridge users by IP version",
     "type": "Graph",
-    "description": "<p>The following graph shows the estimated number of <a href=\"about.html#client\">clients</a> connecting via <a href=\"about.html#bridge\">bridges</a>.  These numbers are derived from directory requests counted on bridges.  Bridges distinguish connecting clients by IP version, so that graphs are available for both IP versions 4 and 6.  For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
+    "description": "<p>The following graph shows the estimated number of <a href=\"glossary.html#client\">clients</a> connecting via <a href=\"glossary.html#bridge\">bridges</a>.  These numbers are derived from directory requests counted on bridges.  Bridges distinguish connecting clients by IP version, so that graphs are available for both IP versions 4 and 6.  For further details see these <a href=\"https://gitweb.torproject.org/metrics-web.git/tree/doc/users-q-and-a.txt\">questions and answers about user statistics</a>.</p>",
     "function": "plot_userstats_bridge_version",
     "parameters": [
       "start",
@@ -295,7 +295,7 @@
     "id": "oxford-anonymous-internet",
     "title": "Tor users as percentage of larger Internet population",
     "type": "Link",
-    "description": "<p>The Oxford Internet Institute made a cartogram visualization of Tor users as compared to the overall Internet population.  They used the average number of Tor <a href=\"about.html#client\">users</a> per country from August 2012 to August 2013 and put it in relation to total Internet users per country.  More details and conclusions can be found on the <a href=\"http://geography.oii.ox.ac.uk/?page=tor\">Information Geographies website at the Oxford Internet Institute</a>.</p><p><a href=\"http://geography.oii.ox.ac.uk/?page=tor\"><img src=\"images/oxford-anonymous-internet.png\" alt=\"The anonymous Internet\"></a></p>"
+    "description": "<p>The Oxford Internet Institute made a cartogram visualization of Tor users as compared to the overall Internet population.  They used the average number of Tor <a href=\"glossary.html#client\">users</a> per country from August 2012 to August 2013 and put it in relation to total Internet users per country.  More details and conclusions can be found on the <a href=\"http://geography.oii.ox.ac.uk/?page=tor\">Information Geographies website at the Oxford Internet Institute</a>.</p><p><a href=\"http://geography.oii.ox.ac.uk/?page=tor\"><img src=\"images/oxford-anonymous-internet.png\" alt=\"The anonymous Internet\"></a></p>"
   },
   {
     "id": "torperf",
@@ -333,7 +333,7 @@
     "id": "connbidirect",
     "title": "Fraction of connections used uni-/bidirectionally",
     "type": "Graph",
-    "description": "<p>The following graph shows the fraction of direct connections between a <a href=\"about.html#relay\">relay</a> and other nodes in the network that are used uni- or bi-directionally.  Every 10 seconds, relays determine for every direct connection whether they read and wrote less than a threshold of 20 KiB.  Connections below this threshold are excluded from the graph.  For the remaining connections, relays determine whether they read/wrote at least 10 times as many bytes as they wrote/read.  If so, they classify a connection as \"Mostly reading\" or \"Mostly writing\", respectively.  All other connections are classified as \"Both reading and writing\".  After classifying connections, read and write counters are reset for the next 10-second interval.  The graph shows daily medians and inter-quartile ranges of reported fractions.</p>",
+    "description": "<p>The following graph shows the fraction of direct connections between a <a href=\"glossary.html#relay\">relay</a> and other nodes in the network that are used uni- or bi-directionally.  Every 10 seconds, relays determine for every direct connection whether they read and wrote less than a threshold of 20 KiB.  Connections below this threshold are excluded from the graph.  For the remaining connections, relays determine whether they read/wrote at least 10 times as many bytes as they wrote/read.  If so, they classify a connection as \"Mostly reading\" or \"Mostly writing\", respectively.  All other connections are classified as \"Both reading and writing\".  After classifying connections, read and write counters are reset for the next 10-second interval.  The graph shows daily medians and inter-quartile ranges of reported fractions.</p>",
     "function": "plot_connbidirect",
     "parameters": [
       "start",
@@ -347,7 +347,7 @@
     "id": "hidserv-dir-onions-seen",
     "title": "Unique .onion addresses",
     "type": "Graph",
-    "description": "<p>The following graph shows the number of unique .onion addresses in the network per day.  These numbers are extrapolated from aggregated statistics on unique .onion addresses reported by single <a href=\"about.html#relay\">relays</a> acting as <a href=\"about.html#hidden-service\">hidden-service</a> directories, if at least 1% of relays reported these statistics.  For more details on the extrapolation algorithm, see <a href=\"https://blog.torproject.org/blog/some-statistics-about-onions\">this blog post</a> and <a href=\"https://research.torproject.org/techreports/extrapolating-hidserv-stats-2015-01-31.pdf\">this technical report</a>.</p>",
+    "description": "<p>The following graph shows the number of unique .onion addresses in the network per day.  These numbers are extrapolated from aggregated statistics on unique .onion addresses reported by single <a href=\"glossary.html#relay\">relays</a> acting as <a href=\"glossary.html#hidden-service\">hidden-service</a> directories, if at least 1% of relays reported these statistics.  For more details on the extrapolation algorithm, see <a href=\"https://blog.torproject.org/blog/some-statistics-about-onions\">this blog post</a> and <a href=\"https://research.torproject.org/techreports/extrapolating-hidserv-stats-2015-01-31.pdf\">this technical report</a>.</p>",
     "function": "plot_hidserv_dir_onions_seen",
     "parameters": [
       "start",
@@ -361,7 +361,7 @@
     "id": "hidserv-rend-relayed-cells",
     "title": "Hidden-service traffic",
     "type": "Graph",
-    "description": "<p>The following graph shows the amount of hidden-service traffic in the network per day.  This number is extrapolated from aggregated statistics on hidden-service traffic reported by single <a href=\"about.html#relay\">relays</a> acting as rendezvous points for <a href=\"about.html#hidden-service\">hidden services</a>, if at least 1% of relays reported these statistics.  For more details on the extrapolation algorithm, see <a href=\"https://blog.torproject.org/blog/some-statistics-about-onions\">this blog post</a> and <a href=\"https://research.torproject.org/techreports/extrapolating-hidserv-stats-2015-01-31.pdf\">this technical report</a>.</p>",
+    "description": "<p>The following graph shows the amount of hidden-service traffic in the network per day.  This number is extrapolated from aggregated statistics on hidden-service traffic reported by single <a href=\"glossary.html#relay\">relays</a> acting as rendezvous points for <a href=\"glossary.html#hidden-service\">hidden services</a>, if at least 1% of relays reported these statistics.  For more details on the extrapolation algorithm, see <a href=\"https://blog.torproject.org/blog/some-statistics-about-onions\">this blog post</a> and <a href=\"https://research.torproject.org/techreports/extrapolating-hidserv-stats-2015-01-31.pdf\">this technical report</a>.</p>",
     "function": "plot_hidserv_rend_relayed_cells",
     "parameters": [
       "start",
@@ -375,7 +375,7 @@
     "id": "hidserv-frac-reporting",
     "title": "Fraction of relays reporting hidden-service statistics",
     "type": "Graph",
-    "description": "<p>The following graph shows the fraction of <a href=\"about.html#relay\">relays</a> that report statistics on <a href=\"about.html#hidden-service\">hidden service</a> usage.  If at least 1% of relays report a statistic, it gets extrapolated towards a network total, where higher fractions are produce more accurate results.  For more details on the extrapolation algorithm, see <a href=\"https://blog.torproject.org/blog/some-statistics-about-onions\">this blog post</a> and <a href=\"https://research.torproject.org/techreports/extrapolating-hidserv-stats-2015-01-31.pdf\">this technical report</a>.</p>",
+    "description": "<p>The following graph shows the fraction of <a href=\"glossary.html#relay\">relays</a> that report statistics on <a href=\"glossary.html#hidden-service\">hidden service</a> usage.  If at least 1% of relays report a statistic, it gets extrapolated towards a network total, where higher fractions are produce more accurate results.  For more details on the extrapolation algorithm, see <a href=\"https://blog.torproject.org/blog/some-statistics-about-onions\">this blog post</a> and <a href=\"https://research.torproject.org/techreports/extrapolating-hidserv-stats-2015-01-31.pdf\">this technical report</a>.</p>",
     "function": "plot_hidserv_frac_reporting",
     "parameters": [
       "start",
@@ -389,18 +389,18 @@
     "id": "uncharted-data-flow",
     "title": "Data flow in the Tor network",
     "type": "Link",
-    "description": "<p>Uncharted made a visualization of data flow in the Tor network where they place each <a href=\"about.html#relay\">relay</a> on a world map and illustrate traffic exchanged between relays as animated dots. More details can be found on the <a href=\"https://torflow.uncharted.software/\">Uncharted website</a>.</p><p><a href=\"https://torflow.uncharted.software/\"><img src=\"images/uncharted-data-flow.png\" alt=\"Data flow in the Tor network\"></a></p>"
+    "description": "<p>Uncharted made a visualization of data flow in the Tor network where they place each <a href=\"glossary.html#relay\">relay</a> on a world map and illustrate traffic exchanged between relays as animated dots. More details can be found on the <a href=\"https://torflow.uncharted.software/\">Uncharted website</a>.</p><p><a href=\"https://torflow.uncharted.software/\"><img src=\"images/uncharted-data-flow.png\" alt=\"Data flow in the Tor network\"></a></p>"
   },
   {
     "id": "uptimes",
     "title": "Monthly uptime of relays",
     "type": "Link",
-    "description": "<p>The following image illustrates the uptime of all known <a href=\"about.html#relay\">relays</a> in a given month.  Each row of pixels denotes one <a href=\"about.html#consensus\">consensus</a> (that is, one hour), and each column denotes one relay.  Each pixel denotes if a given relay was online or offline at a given hour: black means online, white means offline, and red highlights relays with identical uptime patterns.  The complete image gallery can be found on <a href=\"https://nymity.ch/sybilhunting/uptime-visualisation/\">Philipp Winter's homepage</a>.</p><p><a href=\"https://nymity.ch/sybilhunting/uptime-visualisation/\"><img src=\"images/uptimes.jpg\" alt=\"Monthly uptime of relays\"></a></p>"
+    "description": "<p>The following image illustrates the uptime of all known <a href=\"glossary.html#relay\">relays</a> in a given month.  Each row of pixels denotes one <a href=\"glossary.html#consensus\">consensus</a> (that is, one hour), and each column denotes one relay.  Each pixel denotes if a given relay was online or offline at a given hour: black means online, white means offline, and red highlights relays with identical uptime patterns.  The complete image gallery can be found on <a href=\"https://nymity.ch/sybilhunting/uptime-visualisation/\">Philipp Winter's homepage</a>.</p><p><a href=\"https://nymity.ch/sybilhunting/uptime-visualisation/\"><img src=\"images/uptimes.jpg\" alt=\"Monthly uptime of relays\"></a></p>"
   },
   {
     "id": "networkchurn",
     "title": "Network churn rate by relay flag",
     "type": "Link",
-    "description": "<p>The following image shows the churn rate of the Tor network by <a href=\"about.html#relay-flag\">relay flag</a> in a given month.  The churn rate, a value in the interval <b>[0,1]</b>, captures the rate of <a href=\"about.html#relay\">relays</a> joining and leaving the network from one <a href=\"about.html#consensus\">consensus</a> to the next (that is, within one hour).  The complete image gallery can be found on <a href=\"https://nymity.ch/sybilhunting/churn-values/\">Philipp Winter's homepage</a>.</p><p><a href=\"https://nymity.ch/sybilhunting/churn-values/\"><img src=\"images/networkchurn.png\" alt=\"Network churn rate by relay flag\"></a></p>"
+    "description": "<p>The following image shows the churn rate of the Tor network by <a href=\"glossary.html#relay-flag\">relay flag</a> in a given month.  The churn rate, a value in the interval <b>[0,1]</b>, captures the rate of <a href=\"glossary.html#relay\">relays</a> joining and leaving the network from one <a href=\"glossary.html#consensus\">consensus</a> to the next (that is, within one hour).  The complete image gallery can be found on <a href=\"https://nymity.ch/sybilhunting/churn-values/\">Philipp Winter's homepage</a>.</p><p><a href=\"https://nymity.ch/sybilhunting/churn-values/\"><img src=\"images/networkchurn.png\" alt=\"Network churn rate by relay flag\"></a></p>"
   }
 ]
diff --git a/website/etc/web.xml b/website/etc/web.xml
index 6df2aa0..7444cf5 100644
--- a/website/etc/web.xml
+++ b/website/etc/web.xml
@@ -191,6 +191,17 @@
   </servlet-mapping>
 
   <servlet>
+    <servlet-name>GlossaryServlet</servlet-name>
+    <servlet-class>
+      org.torproject.metrics.web.GlossaryServlet
+    </servlet-class>
+  </servlet>
+  <servlet-mapping>
+    <servlet-name>GlossaryServlet</servlet-name>
+    <url-pattern>/glossary.html</url-pattern>
+  </servlet-mapping>
+
+  <servlet>
     <servlet-name>NewsServlet</servlet-name>
     <servlet-class>
       org.torproject.metrics.web.NewsServlet
diff --git a/website/src/org/torproject/metrics/web/GlossaryServlet.java b/website/src/org/torproject/metrics/web/GlossaryServlet.java
new file mode 100644
index 0000000..6ebba97
--- /dev/null
+++ b/website/src/org/torproject/metrics/web/GlossaryServlet.java
@@ -0,0 +1,31 @@
+/* Copyright 2014--2016 The Tor Project
+ * See LICENSE for licensing information */
+
+package org.torproject.metrics.web;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+public class GlossaryServlet extends AnyServlet {
+
+  private static final long serialVersionUID = -971194326457109601L;
+
+  @Override
+  public void init() throws ServletException {
+    super.init();
+  }
+
+  @Override
+  public void doGet(HttpServletRequest request,
+      HttpServletResponse response) throws IOException, ServletException {
+
+    /* Forward the request to the JSP that does all the hard work. */
+    request.setAttribute("categories", this.categories);
+    request.getRequestDispatcher("WEB-INF/glossary.jsp").forward(request,
+        response);
+  }
+}
+
diff --git a/website/web/WEB-INF/bubbles.jsp b/website/web/WEB-INF/bubbles.jsp
index d0d8f84..65260ba 100644
--- a/website/web/WEB-INF/bubbles.jsp
+++ b/website/web/WEB-INF/bubbles.jsp
@@ -31,15 +31,15 @@
         <div class="tab-pane active" id="tab-${tab[1]}">
 
 <p>The following graph visualizes diversity of currently running
-<a href="about.html#relay">relays</a> in terms of their probability to be
-selected for <a href="about.html#circuit">circuits</a>.
+<a href="glossary.html#relay">relays</a> in terms of their probability to be
+selected for <a href="glossary.html#circuit">circuits</a>.
 Fast relays with at least 100 Mbit/s bandwidth capacity, and which
 therefore have a high probability of being selected for circuits, are
 represented by an onion; smaller relays are shown as a simple dot; and the
 slowest relays, which are almost never selected for circuits, are omitted
 entirely.
 Graphs in the "all relays" category use a relay's
-<a href="about.html#consensus-weight">consensus weight</a> as probability,
+<a href="glossary.html#consensus-weight">consensus weight</a> as probability,
 whereas graphs in the "exits only" category use a value derived from a
 relay's consensus weight that resembles the probability of selecting that
 relay as exit node.
diff --git a/website/web/WEB-INF/glossary.jsp b/website/web/WEB-INF/glossary.jsp
new file mode 100644
index 0000000..b1da872
--- /dev/null
+++ b/website/web/WEB-INF/glossary.jsp
@@ -0,0 +1,114 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
+<jsp:include page="top.jsp">
+  <jsp:param name="pageTitle" value="About – Tor Metrics"/>
+  <jsp:param name="navActive" value="About"/>
+</jsp:include>
+
+    <div class="container">
+      <ul class="breadcrumb">
+        <li><a href="index.html">Home</a></li>
+        <li><a href="about.html">About</a></li>
+        <li class="active">Glossary</li>
+      </ul>
+    </div>
+
+    <div class="container">
+
+      <h1>Glossary <a href="#glossary" name="glossary" class="anchor">#</a></h1>
+
+      <a name="advertised-bandwidth"></a>
+      <p><b><a href="#advertised-bandwidth">advertised bandwidth:</a></b> the
+      volume of traffic, both incoming and outgoing, that a
+      <a href="#relay">relay</a> is willing to sustain, as configured by the
+      operator and claimed to be observed from recent data transfers.</p>
+      
+      <a name="bandwidth-history"></a>
+      <p><b><a href="#bandwidth-history">bandwidth history:</a></b> the volume
+      of incoming and/or outgoing traffic that a <a href="#relay">relay</a>
+      claims to have handled on behalf of <a href="#client">clients</a>.</p>
+      
+      <a name="bridge"></a>
+      <p><b><a href="#bridge">bridge:</a></b> a <a href="#relay">relay</a> whose
+      existence is non-public and which can therefore provide access for blocked
+      <a href="#client">clients</a>, often in combination with
+      <a href="#pluggable-transport">pluggable transports</a>, which registers
+      itself with the <a href="#bridge-authority">bridge authority</a>.</p>
+      
+      <a name="bridge-authority"></a>
+      <p><b><a href="#bridge-authority">bridge authority:</a></b> a
+      special-purpose <a href="#relay">relay</a> that maintains a list of
+      bridges as input for external bridge distribution mechanisms (for example,
+      <a href="https://bridges.torproject.org/">BridgeDB</a>).</p>
+      
+      <a name="circuit"></a>
+      <p><b><a href="#circuit">circuit:</a></b> a path through the Tor network
+      built by <a href="#client">clients</a> consisting of at most one
+      <a href="#bridge">bridge</a> and at least one
+      <a href="#relay">relay</a>.</p>
+      
+      <a name="client"></a>
+      <p><b><a href="#client">client:</a></b> a node in the Tor network,
+      typically running on behalf of one user, that routes application
+      connections over a series of <a href="#relay">relays</a>.</p>
+      
+      <a name="consensus"></a>
+      <p><b><a href="#consensus">consensus:</a></b> a single document compiled
+      and voted on by the <a href="#directory-authority">directory
+      authorities</a> once per hour, ensuring that all
+      <a href="#client">clients</a> have the same information about the
+      <a href="#relay">relays</a> that make up the Tor network.</p>
+      
+      <a name="consensus-weight"></a>
+      <p><b><a href="#consensus-weight">consensus weight:</a></b> a value
+      assigned to a <a href="#relay">relay</a> that is based on bandwidth
+      observed by the relay and bandwidth measured by the
+      <a href="#directory-authority">directory authorities</a>, included in the
+      hourly published <a href="#consensus">consensus</a>, and used by
+      <a href="#client">clients</a> to select relays for their
+      <a href="#circuit">circuits</a>.</p>
+      
+      <a name="directory-authority"></a>
+      <p><b><a href="#directory-authority">directory authority:</a></b> a
+      special-purpose <a href="#relay">relay</a> that maintains a list of
+      currently-running relays and periodically publishes a
+      <a href="#consensus">consensus</a> together with the other directory
+      authorities.</p>
+      
+      <a name="directory-mirror"></a>
+      <p><b><a href="#directory-mirror">directory mirror:</a></b> a
+      <a href="#relay">relay</a> that provides a recent copy of directory
+      information to clients, in order to reduce the load on
+      <a href="#directory-authority">directory authorities</a>.</p>
+      
+      <a name="hidden-service"></a>
+      <p><b><a href="#hidden-service">hidden service:</a></b> a location-hidden
+      service (for example, a website or instant-messaging server) that is only
+      accessible via the Tor network.</p>
+      
+      <a name="pluggable-transport"></a>
+      <p><b><a href="#pluggable-transport">pluggable transport:</a></b> an
+      alternative transport protocol provided by <a href="#bridge">bridges</a>
+      and used by <a href="#client">clients</a> to circumvent transport-level
+      blockings (for example, by ISPs or governments).</p>
+      
+      <a name="relay"></a>
+      <p><b><a href="#relay">relay:</a></b> a publicly-listed node in the Tor
+      network that forwards traffic on behalf of <a href="#client">clients</a>,
+      and that registers itself with the
+      <a href="#directory-authority">directory authorities</a>.</p>
+      
+      <a name="relay-flag"></a>
+      <p><b><a href="#relay-flag">relay flag:</a></b> a special
+      (dis-)qualification of <a href="#relay">relays</a> for circuit positions
+      (for example, "Guard", "Exit", "BadExit"), circuit properties (for
+      example, "Fast", "Stable"), or roles (for example, "Authority", "HSDir"),
+      as assigned by the <a href="#directory-authority">directory
+      authorities</a> and further defined in the
+      <a href="https://gitweb.torproject.org/torspec.git/tree/dir-spec.txt">directory
+      protocol specification</a>.</p>
+
+    </div>
+
+<jsp:include page="bottom.jsp"/>
+
diff --git a/website/web/WEB-INF/stats.jsp b/website/web/WEB-INF/stats.jsp
index 740fd69..fd12099 100644
--- a/website/web/WEB-INF/stats.jsp
+++ b/website/web/WEB-INF/stats.jsp
@@ -22,9 +22,9 @@
 <h2>Number of relays and bridges <a href="#servers" name="servers" class="anchor">#</a></h2>
 
 <p>The following data file contains the number of running <a
-href="about.html#relay">relays</a> and <a href="about.html#bridge">bridges</a>
+href="glossary.html#relay">relays</a> and <a href="glossary.html#bridge">bridges</a>
 in the network.  Statistics include subsets of relays or bridges by <a
-href="about.html#relay-flag">relay flag</a> (relays only), country code (relays
+href="glossary.html#relay-flag">relay flag</a> (relays only), country code (relays
 only, and only until February 2013), tor software version (relays only),
 operating system (relays only), and by whether or not they are running in the
 EC2 cloud (bridges only).  The data file contains daily (mean) averages of relay
@@ -88,14 +88,14 @@ only, this column contains the empty string.</li>
 <h2>Bandwidth provided and consumed by relays <a href="#bandwidth" name="bandwidth" class="anchor">#</a></h2>
 
 <p>The following data file contains statistics on <a
-href="about.html#advertised-bandwidth">advertised</a> and <a
-href="about.html#bandwidth-history">consumed bandwidth</a> of <a
-href="about.html#relay">relays</a> in the network.  Statistics on advertised
+href="glossary.html#advertised-bandwidth">advertised</a> and <a
+href="glossary.html#bandwidth-history">consumed bandwidth</a> of <a
+href="glossary.html#relay">relays</a> in the network.  Statistics on advertised
 bandwidth include any kind of traffic handled by a relay, whereas statistics on
 consumed bandwidth are available either for all traffic combined, or
 specifically for directory traffic.  Some of the statistics are available for
 subsets of relays that have the "Exit" and/or the "Guard" <a
-href="about.html#relay-flag">flag</a>.  The data file contains daily (mean)
+href="glossary.html#relay-flag">flag</a>.  The data file contains daily (mean)
 averages of bandwidth numbers.</p>
 
 <p><b>Download as <a href="stats/bandwidth.csv">CSV file</a>.</b></p>
@@ -143,11 +143,11 @@ relays when serving directory data.</li>
 <h2>Advertised bandwidth distribution and n-th fastest relays <a href="#advbwdist" name="advbwdist" class="anchor">#</a></h2>
 
 <p>The following data file contains statistics on the distribution of <a
-href="about.html#advertised-bandwidth">advertised bandwidth</a> of relays in the
+href="glossary.html#advertised-bandwidth">advertised bandwidth</a> of relays in the
 network.  These statistics include advertised bandwidth percentiles and
 advertised bandwidth values of the n-th fastest relays.  All values are obtained
 from advertised bandwidths of running relays in a <a
-href="about.html#consensus">network status consensus</a>.  The data file
+href="glossary.html#consensus">network status consensus</a>.  The data file
 contains daily (median) averages of percentiles and n-th largest values.</p>
 
 <p><b>Download as <a href="stats/advbwdist.csv">CSV file</a>.</b></p>
@@ -181,11 +181,11 @@ relays.</li>
 <h2>Estimated number of clients in the Tor network <a href="#clients" name="clients" class="anchor">#</a></h2>
 
 <p>The following data file contains estimates on the number of <a
-href="about.html#client">clients</a> in the network.  These numbers are derived
+href="glossary.html#client">clients</a> in the network.  These numbers are derived
 from directory requests counted on <a
-href="about.html#directory-authority">directory authorities</a>, <a
-href="about.html#directory-mirror">directory mirrors</a>, and <a
-href="about.html#bridge">bridges</a>.  Statistics are available for clients
+href="glossary.html#directory-authority">directory authorities</a>, <a
+href="glossary.html#directory-mirror">directory mirrors</a>, and <a
+href="glossary.html#bridge">bridges</a>.  Statistics are available for clients
 connecting directly relays and clients connecting via bridges.  There are
 statistics available by country (for both directly-connecting clients and
 clients connecting via bridges), by transport protocol (only for clients
@@ -245,12 +245,12 @@ should be handled with more care.</li>
 <h2>Estimated number of clients by country and transport <a href="#userstats-combined" name="userstats-combined" class="anchor">#</a></h2>
 
 <p>The following data file contains additional statistics on the number of <a
-href="about.html#client">clients</a> in the network.  This data file is related
+href="glossary.html#client">clients</a> in the network.  This data file is related
 to the <a href="clients-data.html">clients-data file</a> that contains estimates
 on the number of clients by country and by transport protocol.  This data file
 enhances these statistics by containing estimates of clients connecting to <a
-href="about.html#bridge">bridges</a> by a given country and using a given <a
-href="about.html#pluggable-transport">transport protocol</a>.  Even though
+href="glossary.html#bridge">bridges</a> by a given country and using a given <a
+href="glossary.html#pluggable-transport">transport protocol</a>.  Even though
 bridges don't report a combination of clients by country and transport, it's
 possible to derive lower and upper bounds from existing usage statistics.</p>
 
@@ -359,7 +359,7 @@ over Tor.</li>
 <h2>Fraction of connections used uni-/bidirectionally <a href="#connbidirect2" name="connbidirect2" class="anchor">#</a></h2>
 
 <p>The following data file contains statistics on the fraction of direct
-connections between a <a href="about.html#relay">relay</a> and other nodes in
+connections between a <a href="glossary.html#relay">relay</a> and other nodes in
 the network that are used uni- or bidirectionally.  Every 10 seconds, relays
 determine for every direct connection whether they read and wrote less than a
 threshold of 20 KiB.  Connections below this threshold are excluded from the
@@ -401,8 +401,8 @@ fractions for the three directions "read", "write", and "both" sum up to exactly
 <h2>Hidden-service statistics <a href="#hidserv" name="hidserv" class="anchor">#</a></h2>
 
 <p>The following data file contains <a
-href="about.html#hidden-service">hidden-service</a> statistics gathered by a
-small subset of <a href="about.html#relay">relays</a> and extrapolated to
+href="glossary.html#hidden-service">hidden-service</a> statistics gathered by a
+small subset of <a href="glossary.html#relay">relays</a> and extrapolated to
 network totals.  Statistics include the amount of hidden-service traffic and the
 number of hidden-service addresses in the network per day.  For more details on
 the extrapolation algorithm, see <a
@@ -450,10 +450,10 @@ fraction.</li>
 </div>
 
 <p>The following data file contains statistics about agreement
-or disagreement among the <a href="about.html#directory-authority">directory
+or disagreement among the <a href="glossary.html#directory-authority">directory
 authorities</a>.  Once per hour the directory authorities exchange votes with
-their view of the <a href="about.html#relay">relays</a> in the network including
-attributes like <a href="about.html#relay-flag">relay flags</a> or bandwidth
+their view of the <a href="glossary.html#relay">relays</a> in the network including
+attributes like <a href="glossary.html#relay-flag">relay flags</a> or bandwidth
 measurements.  This data file includes counts of relays by number of directory
 authorities assigning them a given attribute.</p>
 





More information about the tor-commits mailing list