Commit Graph

527 Commits

Author SHA1 Message Date
Karsten Loesing
664921eb50 Provide microdescriptor digest in hex encoding. 2020-12-11 10:24:05 +01:00
Karsten Loesing
ff7e36c156 Optimize parsing large files with many descriptors.
When parsing a large file with many descriptors we would repeatedly
search the remaining file for the sequence "newline + keyword + space"
and then "newline + keyword + newline" to find the start of the next
descriptor. However, if the keyword is always followed by newline, the
first search would always fail.

The optimization here is to search once whether the keyword is
followed by space or newline and avoid unnecessary searches when going
through the file.

In the long term we should use a better parser. But in the short term
this optimization will have a major impact on performance, in
particular with regard to concatenated microdescriptors.
2020-12-11 10:23:59 +01:00
Karsten Loesing
ee7c3eb738 Parse version 3 onion service statistics lines.
Implements the library part of tpo/metrics/statistics#40002.
2020-12-08 10:40:19 +01:00
Karsten Loesing
cf4830cac3 Bump version to 2.14.0-dev. 2020-08-07 21:01:10 +02:00
Karsten Loesing
750f6471a4 Prepare for 2.14.0 release. 2020-08-07 20:54:48 +02:00
Karsten Loesing
a7850a2dc0 Parse new ipv6-* lines in extra-info descriptors. 2020-08-07 20:48:57 +02:00
Karsten Loesing
b44c6bccb4 Parse OnionPerf analysis results format v3.0.
Implements tpo/metrics/library#40001.
2020-07-16 21:37:19 +02:00
Karsten Loesing
1f3028d082 Exclude onionperf classes from Javadocs. 2020-06-18 09:12:02 +02:00
Karsten Loesing
563dae2976 Update to latest metrics-base. 2020-06-18 09:11:52 +02:00
Karsten Loesing
a422aff99f Extend Torperf results to provide error codes.
Implements the remaining part of #30602.
2020-05-17 17:29:48 +02:00
Karsten Loesing
de0c37b088 Bump version to 2.13.0-dev. 2020-05-16 17:35:44 +02:00
Karsten Loesing
75fea1a658 Prepare for 2.13.0 release. 2020-05-16 17:31:59 +02:00
Karsten Loesing
1e9fa02107 Support OnionPerf results files up to version 2.x. 2020-05-15 12:26:28 +02:00
Karsten Loesing
ba6c63a707 Parse partial download times from Onionperf files.
Implements #26673.
2020-05-14 09:30:58 +02:00
Karsten Loesing
afc57a6120 Include previously unknown error codes in Torperf results.
As discussed on #34031, we should avoid keeping a map of known failure
types in the sources and simply put together the error code in the
format we want.

This patch implements that change.
2020-05-12 21:35:58 +02:00
Karsten Loesing
95771bfb9f Bump version to 2.12.2-dev. 2020-04-30 22:15:10 +02:00
Karsten Loesing
7a5115dd76 Prepare for 2.12.2 release. 2020-04-30 22:11:52 +02:00
Karsten Loesing
1c3bcae76d Change order of detecting descriptor types.
We are detecting descriptor types of parsed descriptors by either
content or file name. In some cases, if we downloaded descriptors from
web servers, there is no file name. In other cases the file name can
match more than one descriptor type. It seems most robust to move the
file name checks to the end, which includes web server access logs and
OnionPerf analysis files.
2020-04-30 22:06:53 +02:00
Karsten Loesing
037f463761 Bump version to 2.12.1-dev. 2020-04-30 17:16:47 +02:00
Karsten Loesing
aa55fd05f0 Prepare for 2.12.1 release. 2020-04-30 17:11:37 +02:00
Karsten Loesing
d4bb28525f Change back how we treat xz-compressed files.
It seemed like a good idea to decompress xz-compressed files before
handing over decompressed bytes to descriptor implementations.
However, our web logs expect descriptor bytes to be in compressed
form, and now they're unhappy about receiving uncompressed bytes.
Changing this back and teaching OnionPerf analysis files to expect
compressed bytes, too. Found by running CollecTor's unit tests.
2020-04-30 17:08:44 +02:00
Karsten Loesing
7efeec721f Bump version to 2.12.0-dev. 2020-04-30 16:14:25 +02:00
Karsten Loesing
fcbcdd848a Prepare for 2.12.0 release. 2020-04-30 16:08:07 +02:00
Karsten Loesing
7eb783968b Add parsing support for OnionPerf analysis files.
Implements #34070.
2020-04-30 15:56:52 +02:00
Karsten Loesing
3f298b1b57 Bump version to 2.11.0-dev. 2020-04-13 11:40:26 +02:00
Karsten Loesing
471c1cb32f Prepare for 2.11.0 release. 2020-04-13 11:37:04 +02:00
Karsten Loesing
e7d7af88a6 Update to latest metrics-base. 2020-04-06 11:48:41 +02:00
Karsten Loesing
d7d5303e76 Simplify logging configuration.
Implements #33549.
2020-03-31 09:47:55 +02:00
Karsten Loesing
335b02441f Add change log entry for #33090. 2020-03-31 09:46:19 +02:00
Karsten Loesing
e2fc2cb14d Make all descriptor instances serializable.
Implements #33090.
2020-03-12 22:42:40 +01:00
Karsten Loesing
81570c4dbc Parse recently added lines.
- Compute bandwidth file digests.
 - Parse bandwidth file header and bandwidth file digest in votes.
 - Parse bridge distribution requests in bridge server descriptors.
 - Parse authority fingerprint in bridge network statuses.

Implements #33206.
2020-02-26 21:31:08 +01:00
Karsten Loesing
9ccb934fac Avoid invoking overridable methods from constructors.
Fixes #33205.
2020-02-22 09:29:33 +01:00
Karsten Loesing
6408bd9a85 Update to latest metrics-base. 2020-01-15 22:45:39 +01:00
Karsten Loesing
4581035acf Bump version to 2.10.0-dev. 2020-01-15 22:45:29 +01:00
Karsten Loesing
abcbd7c7a6 Prepare for 2.10.0 release. 2020-01-15 22:09:27 +01:00
Karsten Loesing
0db8a5787c Update copyright to 2020. 2020-01-15 21:29:57 +01:00
Karsten Loesing
5fb36b70c8 Parse three new lines in snowflake statistics.
Implements #32665.
2019-12-09 10:16:29 +01:00
Karsten Loesing
067add639b Remove unused methods. 2019-11-21 12:37:54 +01:00
Karsten Loesing
ca37fd616c Properly parse hostname in v2 network status. 2019-11-20 17:55:00 +01:00
Karsten Loesing
9c7e1b9a54 Properly mark deprecated method with annotation. 2019-11-20 17:40:08 +01:00
Karsten Loesing
f5f6e5971c Fix possible NPE in tests. 2019-11-20 17:34:59 +01:00
Karsten Loesing
d6e9a0d75e Fix NPE when parsing invalid crypto blocks. 2019-11-20 17:19:44 +01:00
Karsten Loesing
a8e0cb7ab7 Remove unused constructor. 2019-11-20 17:01:53 +01:00
Karsten Loesing
3554a91d81 Remove final modifier from static methods. 2019-11-20 16:43:07 +01:00
Karsten Loesing
a1209fa5ea Remove unnecessary cast. 2019-11-20 16:39:33 +01:00
Karsten Loesing
b3b1236641 Remove unused suppression. 2019-11-20 12:10:40 +01:00
Karsten Loesing
26874eb8a9 Make inner class static. 2019-11-20 12:08:57 +01:00
Karsten Loesing
5af3f60993 Simplify method call. 2019-11-20 12:07:49 +01:00
Karsten Loesing
a18c70b33e Simplify switch/case statement. 2019-11-20 12:07:01 +01:00
Karsten Loesing
75e1d31465 Use StandardCharsets.US_ASCII instead of "US-ASCII". 2019-11-20 12:04:29 +01:00