The unit_format function in our somewhat outdated scales package
rounds labels to whichever we accuracy we ask for. However, in some
cases this is difficult to do right (e.g., Time to download files over
Tor graph with measurements apparently getting faster over time), in
other cases it's impossible (Advertised bandwidth distribution graph
with 1st and 99th percentile having different orders of magnitude).
The new custom_unit_format function does not round labels and instead
determines more reasonably how many digits it needs to print.
Fixes#34103.
Estimate bridge users by country based on requests by country, if
available, to get more accurate numbers than those obtained from
unique IP address counts.
Fixes#18167.
Estimate relay users by country based on responses to directory
requests to reduce the overall effect of binning and to make relay and
bridge user estimates more comparable.
Implements #18203.
- style: Lines should not be more than 80 characters.
- style: Only use double-quotes.
- style: Put spaces around all infix operators.
- style: Trailing blank lines are superfluous.
- warning: local variable ‘...’ assigned but may not be used
Also leave a comment to run lintr after making non-trivial changes.
The new icon is based on clock, solid style in Font Awesome Free
5.21.1. It was converted using Inkscape 0.92.4 using the command:
`inkscape -z -e clock.png -w 16 -h 16 clock.svg`.
Fixes#33453.
The old PL/pgSQL version of this function made three lookups in the
bwhist table to 1) check whether a row already exists, 2) insert or
update the row, and 3) update the row once again with array sums. The
new SQL version uses the INSERT ON CONFLICT statement introduced in
PostgreSQL 9.5 (Debian stretch has 9.6, buster has 11). The
performance gain measured using metrics-test is impressive, computed
aggregates are equivalent.
This reverts commit b3e80fce17 and also
reverts a similar workaround made after that commit.
The spread() function works fine again using buster's r-cran-tidyr
0.8.2-1 package, whereas it was previously broken with stretch's
r-cran-tidyr 0.6.1-1 package.
Fixes#30351.
As discussed on the ticket, we can explain better which cells are
counted for onion service traffic graphs: it's cells relayed by
rendezvous points.
It was also confusing to say "per day" in the graph description when
bandwidth is in gigabits per second. Removed that part.
Finally, there's now a glossary entry for "rendezvous points" that is
based on the glossary entry in torspec.
Fixes#26171.