Opened 8 years ago

Last modified 2 years ago

#4943 assigned enhancement

Make network graphs with X / consensus weight?

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


It'd be cool if we could get all the graphs that show a number of relays also with the consensus weight of those relays

Child Tickets

Change History (3)

comment:1 Changed 8 years ago by karsten

Agreed, such graphs would be useful.

I'm counting four graphs with number of relays on the y axis: "Relays by country", "Relays with ... flags", "Relays by version," and "Relays by platform." (The first graph on network.html, "Relays and bridges in the network," cannot be changed to consensus weights, because we don't have that information for bridges.) Are there more?

I could imagine adding an option to the website what to put on the y axis. That would be similar to the Granularity option for the "Relays with ... flags" graph.

Here are the necessary steps:

  1. Extend the database tables containing aggregate data to contain the consensus weights of relays with a given version, relay flag, etc. In particular, we'd want to sum up consensus weights from all consensuses of a given day and divide by the number of consensuses. The database tables are network_size, relay_countries, relay_platforms, and relay_versions.
  1. Extend the refresh_* functions to calculate the new consensus weight data. The functions are refresh_network_size(), etc.
  1. Populate the extended tables with data. It's probably easiest to delete the whole table contents and run the refresh_* scripts for all data in the database. Or we could generate only the consensus weight data. This may take really long and should be done in a transaction. We shouldn't have to stop the database import for this.
  1. Extend the website to accept a new graph parameter and pass it on to R.
  1. Extend the R code to make a different graph for consensus weights than for relay numbers.
  1. Add new CSV files containing consensus weights data. That means extending the R code and telling the website that there are new CSV files.

None of these changes are complex, though they need to be tested before deploying them on the metrics machine. How about you look into steps 1 and 2 above? I'm happy to do step 3 together with you, and I can do 4 to 6.

comment:2 Changed 3 years ago by karsten

Owner: changed from karsten to metrics-team
Status: newassigned

Handing over to metrics-team, because I'm not currently working on this.

comment:3 Changed 2 years ago by teor

Severity: Normal

Set all open tickets without a severity to "Normal"

Note: See TracTickets for help on using tickets.