Commit Graph

1579 Commits

Author SHA1 Message Date
Karsten Loesing
9955072a6c Tweak the new guidelines a bit. 2019-07-29 10:26:22 +02:00
Iain R. Learmonth
66704ba064 Adds guidelines for new metrics page
Fixes: #29315
2019-07-24 14:54:21 +01:00
Ana Custura
6a11d7ac3c Adds explanation for first-hop build times overhead 2019-07-19 09:59:55 +01:00
Karsten Loesing
896935d33c Include Torperf data in performance graphs again.
Fixes #30919.
2019-06-19 04:31:53 -07:00
Karsten Loesing
3f252fce7f Tweak documentation of new(ly updated) graphs. 2019-06-11 16:36:06 +02:00
Iain R. Learmonth
7cfb22744f Replace "brackets" with "parentheses"
Fixes: #29486
2019-06-05 13:30:07 +01:00
Karsten Loesing
d4452b3818 Add OnionPerf throughput graph.
We calculate throughput from the time between receiving 0.5 and 1 MiB
of a response, which obviously excludes any measurements with
responses smaller than 1 MiB. From the FILESIZE and DATAPERC* fields
we can compute the number of milliseconds that have elapsed between
receiving bytes 524,288 and 1,048,576, which is a total of 524,288
bytes or 4,194,304 bits. We divide the value 4,194,304 by this time
difference to obtain throughput in bits per millisecond which happens
to be the same value as the number of kilobits per second.

Implements #29772.
2019-06-04 21:47:30 +02:00
Karsten Loesing
fd251d6c69 Extend latency graph to contain high/low values.
This patch adds two new lines to the existing circuit round-trip
latencies graph: lowest and highest measurements that are not
outliers.

Implements #29773.
2019-05-29 16:10:40 +02:00
Karsten Loesing
d31b049cb1 Update CollecTor page to include bandwidth files.
Fixes #30507.
2019-05-15 16:53:29 +02:00
Karsten Loesing
af54ce2d15 Update to latest metrics-lib. 2019-05-13 17:26:58 +02:00
Karsten Loesing
31c4f88ebb Adapt "About Tor" links to redesigned Tor website.
Reported by nusenu, changes suggested by irl.

Fixes #30415.
2019-05-13 17:22:04 +02:00
Karsten Loesing
b3e80fce17 Fix unknown issue with spread() function.
This is a hotfix to work around the issue described in #30351.
Hopefully, we'll come up with a better fix that doesn't go backwards
from tidyr to reshape2.
2019-05-03 09:28:06 +02:00
Karsten Loesing
03d6a1a030 Make userstats-combined.csv order platform independent.
Turns out that we didn't specify the sorting order of
userstats-combined.csv. However, different platforms produced
consistently different outputs. Let's just define sort order to make
the output deterministic, even across platforms.
2019-04-21 16:29:23 +02:00
Karsten Loesing
1fd062c11e Make bandwidth.csv independent of import order.
With this patch we're not overwriting bandwidth history parts with
whichever history comes last, but we're computing the maximum value
for each 15-minute interval of all imported bandwidth histories. This
makes bandwidth.csv independent of descriptor import order.
2019-04-21 16:29:23 +02:00
Karsten Loesing
1d21cebf4b Re-add no-data-available.png for display in RS.
Reported on metrics-team@.
2019-04-03 09:38:56 +02:00
Karsten Loesing
7af8f10813 Ignore v3 onion OnionPerf measurements.
We're later going to include these measurements in graphs, but that
requires more changes. For now, let's ignore these measurements rather
than include them in the v2 onion results. They will be in the
database, so we'll be able to make those graphs including past
measurements.
2019-03-29 15:51:29 +01:00
Iain R. Learmonth
b6223ecf7a Updates fallback directories 2019-03-27 20:23:02 +01:00
Karsten Loesing
829863f48f Run modules from Java only.
Implements #29166.
2019-03-06 21:28:15 +01:00
Karsten Loesing
24aa37f073 Make very thin ribbons more visible.
Fixes #29655.
2019-03-06 11:19:41 +01:00
Karsten Loesing
e7da8f637c Add three new @type annotations.
Resolves #28615.
2019-01-26 17:13:10 +01:00
Karsten Loesing
82aa20a17c Include op-ab in OnionPerf graphs.
Turns out that op-ab's domain name matches our '%.onion%' regex, that
we're using to distinguish public from onion server requests. Trying a
bit harder to distinguish the two.

Related to #29107.
2019-01-24 12:10:03 +01:00
Karsten Loesing
ad7ed81857 Update news.json to version 308 of doc/MetricsTimeline. 2019-01-11 11:42:42 +01:00
Karsten Loesing
e82de49327 Simplify Rserve setup. 2019-01-11 11:39:12 +01:00
Karsten Loesing
d1cedb7f2d Leave gaps for missing data. 2019-01-11 10:48:47 +01:00
Karsten Loesing
a9fac06cc1 Add levels = NULL to col_factor().
This is not required for readr_1.3.0 which runs locally here but
required for readr_1.1.1 which runs on the server.
2019-01-11 09:30:53 +01:00
Karsten Loesing
a94a384464 Switch to readr's read_csv() everywhere. 2019-01-10 22:32:28 +01:00
Karsten Loesing
0d2f1e2afd Make write_* functions obsolete.
In most cases these functions would call their prepare_* equivalents,
possibly tweak the result, and write it to a .csv file. This patch
moves all those tweaks to the prepare_* functions, possibly reverts
them in the plot_* functions, and makes the write_* functions
obsolete.

The result is not only less code. We're also going to find bugs in
written .csv files sooner, because the same code is now run for
writing graph files, and the latter happens much more often.
2019-01-10 16:49:33 +01:00
Karsten Loesing
2b34cd2023 Simplify plot_webstats_tb_locale function. 2019-01-10 10:41:48 +01:00
Karsten Loesing
f55e63d986 Split up huge plot_userstats function.
The mere size of this function made it hard to impossible to refactor
things to using more recent R packages dplyr and tidyr. Now there are
four plot_userstats_* functions with accompanying prepare_userstats_*
that make the corresponding write_userstats_* functions really small.
2019-01-10 09:54:39 +01:00
Karsten Loesing
f6f0570819 Update news.json to version 307 of doc/MetricsTimeline. 2019-01-07 12:27:51 +01:00
Karsten Loesing
8c24f8e174 Stop calling censorship detector BETA. 2019-01-07 12:20:35 +01:00
Karsten Loesing
9bdb6d39fc Properly skip previously imported webstats files.
Turns out we never skipped previously imported webstats files due to
two bugs:

 1. While building a list of previously imported webstats files we
    reassembled their file names as ${server}_${site}_* rather than
    ${site}_${server}_* which was the file name format we chose in an
    earlier version of the CollecTor module.

 2. When checking whether a given webstats file already exists in the
    database we compared the full file name to the reassembled file
    name from the database with ${server} being truncated to 32
    characters.

This commit fixes both bugs.
2019-01-07 11:59:19 +01:00
Karsten Loesing
c8a3414347 Stop hard-coding versions. 2019-01-07 09:59:18 +01:00
Karsten Loesing
28f567c1ae Fix by-country CSV files.
Fixes #28945.
2018-12-29 10:07:45 +01:00
Karsten Loesing
87f922d4fd Fix Traffic link on start page. 2018-12-29 09:23:35 +01:00
Karsten Loesing
b605298c66 Rewrite advbwdist's aggregate.R in Java.
This is yet another step torwards making the daily update Java-only.

Implements #28801.
2018-12-23 11:34:29 +01:00
Karsten Loesing
c0a18aab90 Remove two unused R files from censorship detector.
Still part of #21588.
2018-12-20 14:09:24 +01:00
Karsten Loesing
a367168a78 Rewrite censorship detector in Java.
This allows us to remove the last remaining Python parts from the daily
updater.

Implements #21588.
2018-12-20 12:16:25 +01:00
Karsten Loesing
f5ef5fb0d8 Access userstats database from Java only.
Previously, we used Java to write .sql files, imported them using
psql, and afterwards made queries via psql. Now we're using Java to
interact with the database directly. This is another step towards
making the daily updater Java-only.
2018-12-20 12:14:18 +01:00
Karsten Loesing
9dd35e2908 Re-add missing COMMIT commands to bwhist module.
Last month, in commit f8fa108 where we modernized the legacy module
and renamed it to bwhist, we split up the closeConnection() into one
method commit() to commit changes and another method closeConnection()
to close the connection. However, we somehow forgot to invoke the
commit() method.

This had two effects:

 1. Newly added data was not made persistent in the database. This
    lead to a moving window of roughly one week for new data and an
    increasing gap between the last committed data and this 1-week
    window.

 2. The result of aggregating newly added data was not made
    persistent. So, even after fixing the first issue above, we
    accumulated newly added data, rather than only keeping the most
    recent two weeks. This made the database slower over time.

This change adds two commit() calls at the right places.
2018-12-20 11:28:46 +01:00
Karsten Loesing
59b800a491 Remove bandwidth and bwhist-flags graphs.
The "Advertised and consumed bandwidth by relay flags" graph now
contains everything that's contained in the "Total relay bandwidth"
and the "Consumed bandwidth by Exit/Guard flag combination" graphs.
Removing these two graphs as obsolete.

Also update documentation for the newly deployed "Advertised and
consumed bandwidth by relay flags" graph.

Part of #28353.
2018-12-20 10:57:02 +01:00
Karsten Loesing
6b5f75996a 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.
2018-12-20 10:55:20 +01:00
Karsten Loesing
0ca51404b7 Document another change to OnionPerf graphs.
Still related to #28603.
2018-12-20 10:33:00 +01:00
Karsten Loesing
ad1221cb98 Document changes to OnionPerf graphs.
Still related to #28603.
2018-12-20 10:22:35 +01:00
Karsten Loesing
c394725485 Remove Torperf/OnionPerf plots with all sources.
OnionPerf results look to be comparable over time, but between vantage
points there are systematic deltas between the results. The "all"
plots show rises and falls where they actually don't exist, it's just
that a particular vantage point was offline so the average of the two
remaining moves noticeably.

In this commit we remove the source parameter from these graphs and
always include all sources separately in the graph, but not a
combination of all measurements together.

Implements #28603.
2018-12-20 10:22:30 +01:00
Karsten Loesing
54930cb95f Take out "We're hiring" link from start page. 2018-12-19 21:05:01 +01:00
Karsten Loesing
2c44721c9a Use readr to speed up drawing graphs.
Over two years ago, in commit 1f90b72 from October 2016, we made our
user graphs faster by avoiding to read the large .csv file on demand.
Instead we read it once as part of the daily update, saved it to disk
as .RData file using R's save() function, and loaded it back to memory
using R's load() function when drawing a graph.

This approach worked okay. It just had two disadvantages:

 1. We had to write a small amount of R code for each graph type,
    which is why we only did it for graphs with large .csv files.
 2. Running these small R script as part of the daily update made it
    harder to move away from Ant towards a Java-only execution model.

The new approach implemented in this commit uses read_csv() fromt the
readr package which reads CSV files several times faster than
read.csv().

Requires installing the readr package from CRAN, which is available on
Debian in stretch-backports and later as r-cran-readr.

Implements #28799.
2018-12-19 20:38:08 +01:00
Karsten Loesing
ffaab88574 Document changes to the totalcw graph.
Still part of #28137, #28328, and #28352.
2018-12-15 09:44:26 +01:00
Karsten Loesing
c0ba389d25 Add consensuses to totalcw graph.
Implements #28352.
2018-12-15 09:44:26 +01:00
Karsten Loesing
7b39042ecf Break down totalcw numbers by Guard/(Bad)Exit flags.
Requires updating the vote table and the totalcw view in the database.

Implements #28328.
2018-12-15 09:44:26 +01:00