Opened 18 months ago

Closed 3 months ago

#28871 closed defect (fixed)

Relay with 6 weeks downtime only has 6_months and 5_years bandwidth graphs

Reported by: karsten Owned by: metrics-team
Priority: Medium Milestone:
Component: Metrics/Onionoo Version:
Severity: Normal Keywords:
Cc: metrics-team Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description

Looks like we didn't consider this rather unusual case:

https://onionoo.torproject.org/bandwidth?lookup=87B3557F3E792217E2BC4E9923EACA4AEC5BA9C3

version	"7.0"
build_revision	"7dc8dae"
relays_published	"2018-12-17 07:00:00"
relays	
0	
fingerprint	"87B3557F3E792217E2BC4E9923EACA4AEC5BA9C3"
write_history	
6_months	
first	"2018-12-14 12:00:00"
last	"2018-12-16 12:00:00"
interval	86400
factor	72.42059244429615
count	3
values	[…]
5_years	
first	"2015-04-20 00:00:00"
last	"2016-02-04 00:00:00"
interval	864000
factor	326.8920611644816
count	30
values	[…]
read_history	{…}
bridges_published	"2018-12-17 06:53:55"
bridges	[]

The effect is that there's no "1 Month" graph (which is unrelated to this issue), a "6 Months" graph with just 3 dots, no "1 Year" graph, and then again a "5 Years" graph with 30 dots.

Child Tickets

Change History (6)

comment:1 Changed 5 months ago by karsten

Component: Metrics/LibraryMetrics/Onionoo

comment:2 Changed 4 months ago by karsten

Status: newneeds_review

The issue is this sentence in the specification: "A graph history object is only contained if the time period it covers is not already contained in another graph history object with shorter time period and higher data resolution."

In this case, the "1 year" graph would contain the same information that was already contained in the "6 months" graph just at a loger data resolution, so we're not generating a "1 year" graph at all. We are, however, including a "5 years" graph, because the relay reported data for the time between 1 and 5 years back in the past.

The original idea behind this design decision was that the Onionoo server could save a few bytes by not including redundant information and that Onionoo clients would use data from all compiled graphs that falls into the time frame they want to plot. Maybe that decision was too data-centric and not developer-friendly enough.

Let's change this by including all graphs for which we have data for, which in this case includes the "1 month" graph as well.

Requires a major protocol update to 8.0.

Please review commit 87abfdd in my tasks-28871-and-27981 branch.

comment:3 Changed 4 months ago by irl

Status: needs_reviewmerge_ready

lgtm

comment:4 Changed 4 months ago by karsten

Great! Scheduled next major protocol version update for in 1 month from now.

comment:5 Changed 4 months ago by karsten

Priority: LowMedium

This ticket has the same priority as most other defects in this component. Changing to medium.

comment:6 Changed 3 months ago by karsten

Resolution: fixed
Status: merge_readyclosed

Merged, released, and deployed. Closing. Thanks!

Note: See TracTickets for help on using tickets.