Opened 7 years ago

Closed 2 years ago

#6355 closed enhancement (fixed)

Distinguish between running relays and non-running relays which last had the Running flag

Reported by: karsten Owned by: RaBe
Priority: High Milestone:
Component: Metrics/Relay Search Version:
Severity: Normal Keywords:
Cc: rndm, nusenu@… Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description

Lunar was rightly confused by relays having the Running flag but which had a Running field of false. The Running field is true iff the relay is contained in the last known network status, whereas a relay could have had the Running flag when it was last listed in a network status. So, this case is technically correct, but it's highly confusing. I wonder if we can improve Atlas' UI to make it clearer that the Running field is what most people will be interested in.

Child Tickets

Change History (27)

comment:1 Changed 6 years ago by arma

Another user got bitten by this one today.

Maybe the globe and compass relay lists should separate the relays into two sections, one currently running and the other not currently running?

comment:2 Changed 6 years ago by arma

Cc: rndm added

comment:3 in reply to:  1 Changed 6 years ago by rndm

Replying to arma:

Another user got bitten by this one today.

Maybe the globe and compass relay lists should separate the relays into two sections, one currently running and the other not currently running?

I created a version of globe that displays search results in different tables.
It filters by running property of each bridge/relay.

example: http://globe.rndm.de/lab/#/search/query=tor

What do you think about that?

comment:4 in reply to:  1 Changed 6 years ago by phw

Owner: changed from hellais to phw
Status: newassigned

Replying to arma:

Another user got bitten by this one today.

Maybe the globe and compass relay lists should separate the relays into two sections, one currently running and the other not currently running?

Actually, this ticket is a duplicate of #9814 which should have fixed this problem. Apparently it's not quite fixed after all :-/

comment:5 Changed 4 years ago by tyseom

Cc: nusenu@… added

comment:6 Changed 2 years ago by irl

Priority: MediumHigh
Severity: Normal

comment:7 Changed 2 years ago by RaBe

Status: assignedneeds_review

I now remove the "Running" flag (that says "...is currently usable") and also grey out the not running relays in the search table:

https://github.com/RaphaelBergmann/atlas/commit/f97b495d061030a09523aa81b697273f603ea87f

comment:8 Changed 2 years ago by cypherpunks

IMO greying out the row is a bit much since the uptime is already striked through.

comment:9 Changed 2 years ago by karsten

Hmm, I wonder if removing the "Running" flag is too much. I see how it's potentially confusing to keep it, but removing it is not quite accurate. Maybe there's a way to keep it?

comment:10 in reply to:  9 ; Changed 2 years ago by RaBe

Replying to cypherpunks:

IMO greying out the row is a bit much since the uptime is already striked through.

Maybe. I just wanted to make it a bit more clear that the relay is down, as you might miss a missing flag and just wonder about the strike through...

Replying to karsten:

Hmm, I wonder if removing the "Running" flag is too much. I see how it's potentially confusing to keep it, but removing it is not quite accurate. Maybe there's a way to keep it?

Isn't a flag that says "Running and usable" exactly the thing that confuses the users? :)

comment:11 in reply to:  10 Changed 2 years ago by karsten

Replying to RaBe:

Replying to karsten:

Hmm, I wonder if removing the "Running" flag is too much. I see how it's potentially confusing to keep it, but removing it is not quite accurate. Maybe there's a way to keep it?

Isn't a flag that says "Running and usable" exactly the thing that confuses the users? :)

Well, if a relay or bridge is currently not running, it doesn't have any flags assigned at the time. But the list of flags that Onionoo provides is what the relay or bridge had assigned when it was last running. Removing one flag from that list is wrong. We could remove all flags, but that would also remove potentially useful information.

As would removing the "Running" flag. For example, there can be bridges that are listed in the network status without the "Running" flag, because the bridge authority cannot successfully reach it. So, knowing whether it had the "Running" flag when it was last around is information.

comment:12 in reply to:  10 Changed 2 years ago by cypherpunks

Replying to RaBe:

Replying to cypherpunks:

IMO greying out the row is a bit much since the uptime is already striked through.

Maybe. I just wanted to make it a bit more clear that the relay is down, as you might miss a missing flag and just wonder about the strike through...

I agree that the strike through is also confusing and I'm wondering whether the entire uptime column should be removed. I can imagine wanting to know whether several relays are running but i can't imagine needing to know the uptime/downtime of several relays.

I got an idea of adding Bootstrap labels to the nicknames of relays that are not running. Dunno if this looks good but I'll code it up and report back.

comment:13 Changed 2 years ago by cypherpunks

See the inline patch for the idea i had in comment:12.

diff --git a/templates/search/do.html b/templates/search/do.html
index cd07a61..e58cf73 100644
--- a/templates/search/do.html
+++ b/templates/search/do.html
@@ -78,6 +78,7 @@
             <a href="#details/<%= relay.get('fingerprint') %>">
             <%= _.escape(relay.get('nickname')) %>
             </a>
+            <% if (relay.get('running') === false) { %><span class="label label-important">Offline</span><% } %>
             </td>
 			<td><span data-filter="<%= relay.get('bandwidth') %>"><%= relay.get('bandwidth_hr') %></td>
 			<td>

comment:14 Changed 2 years ago by cypherpunks

The patch is based on master.

comment:15 Changed 2 years ago by RaBe

The patch looks good. I'll leave the decision to karsten / irl which of the above they want, or if we should keep looking for other solutions :)

comment:16 Changed 2 years ago by RaBe

FYI, there might be introduced another label at the very same place in #21367, so let's make sure they look similar (if we actually do the label thing on both tickets) :)

comment:17 in reply to:  15 Changed 2 years ago by karsten

Replying to RaBe:

The patch looks good. I'll leave the decision to karsten / irl which of the above they want, or if we should keep looking for other solutions :)

Hmm, this may sound lazy, but would you mind attaching screenshots of the options that irl and/or I need to decide on? Or can you paraphrase? Sorry, too many things going on at once. Isn't it Friday?!

comment:18 Changed 2 years ago by RaBe

Hehe, OK here's a brief summary:

To make it more clear that a relay flagged "running" might not be running ATM, we could use any combination of the following:

  • remove (or keep) the "running" flag
  • add an "offline" pseudo flag as in #21367
  • add a label "offline" to the relay name
  • grey out the table rows of offline relays
  • keep looking for other solutions

comment:19 in reply to:  18 Changed 2 years ago by karsten

Replying to RaBe:

Hehe, OK here's a brief summary:

Thanks a lot!

To make it more clear that a relay flagged "running" might not be running ATM, we could use any combination of the following:

  • remove (or keep) the "running" flag

Removing that flag is not a good option for the reasons stated above. Please don't do this.

  • add an "offline" pseudo flag as in #21367

Not a good option, either. I'd suggest moving the "Not Recommended" part down to "Platform" on the details page and adding a new column with the version number and possibly a red exclamation mark to the search results. Flags are assigned by the directory authorities, not by Onionoo or Atlas. Adding pseudo flags will only confuse users.

  • add a label "offline" to the relay name

Yup, that could work.

  • grey out the table rows of offline relays

That's a lot of gray. Maybe just gray out the flags? Not sure if that helps, though.

  • keep looking for other solutions

An easy one might be to change tooltips from present tense to past tense: "Fast: This relay was suitable [...]", "Running: This relay was running", etc.

Here's another one, but it's probably way too much for this ticket: We could rearrange fields on the details page by whichever source provided that information. Sources in this case include: 1) the relay or bridge itself (published at least once every 18 hours), 2) the directory authorities or bridge authority (published once per hour), 3) the exit list service (which scans once or twice per day), or 4) Onionoo which looks up relay IPs in GeoIP files or runs reverse DNS queries (updated once per hour). This would make it a bit easier to emphasize that information coming from, say, 2 is not current anymore, including flags but also consensus weight. But only because one source is outdated doesn't affect the other sources, for example, platform information as reported by the relay or bridge doesn't suddenly become less accurate only because the directory authorities think that a relay is offline. Anyway, this is probably a more long-term project. It seemed related here, though.

All in all, adding a label "offline" to the relay name, possibly graying out the flags, and adapting tooltips would be my choices for now.

comment:20 Changed 2 years ago by RaBe

Okay, so here's a new patch, that adds an "offline" label, greys out the flags, and uses "was" instead of "is" for each tooltip (which works on most of the texts - I didn't want us to have to maintain an extra text version for every tooltip).

https://github.com/RaphaelBergmann/atlas/commit/cd8b463462ede88173fddabd40398be7a78a9874

http://cc-ltd.net/trac/offline.png

comment:21 in reply to:  20 Changed 2 years ago by cypherpunks

Replying to RaBe:

Okay, so here's a new patch, that adds an "offline" label, greys out the flags, and uses "was" instead of "is" for each tooltip (which works on most of the texts - I didn't want us to have to maintain an extra text version for every tooltip).

On hover the line under the nicknames runs till the offline label. The following patch fixes that.

diff --git a/templates/search/do.html b/templates/search/do.html
index 1203947..2466c4e 100644
--- a/templates/search/do.html
+++ b/templates/search/do.html
@@ -71,9 +71,7 @@
 <% _.each(relays, function(relay) { %>
             <tr class="<%= i % 2 == 0 ? 'even' : 'odd' %><%= (relay.get('running') === false) ? ' down' : '' %>">
 			<td>
-            <a href="#details/<%= relay.get('fingerprint') %>">
-            <%= _.escape(relay.get('nickname')) %>
-            </a>
+            <a href="#details/<%= relay.get('fingerprint') %>"><%= _.escape(relay.get('nickname')) %></a>
             <% if (relay.get('running') === false) { %><span class="label label-important">offline</span><% } %>
             </td>
 			<td><span data-filter="<%= relay.get('bandwidth') %>"><%= relay.get('bandwidth_hr') %></td>

The greyed out flags look good IMO. However, the simplistic replacement of 'is' with 'was' leads to some weird sentences and, like you said, it only applies to most of the texts. This makes most sentences use the past tense but some use the present tense which is confusing.

comment:22 Changed 2 years ago by RaBe

Great catch! Thanks for the patch :) Also, I removed the "is/was" replacement and added a "Last seen" line instead, to make it more clear that the specific flag info is outdated. What do you think?

https://github.com/RaphaelBergmann/atlas/commit/574b26d1688ff7e4d253065553b2468bccb50959

http://cc-ltd.net/trac/offline2.png

comment:23 Changed 2 years ago by RaBe

Now here's a different approach that we started in #21635. These red and green icons feature a tooltip, but I think they're understandable even without any explanation :)

https://github.com/RaphaelBergmann/atlas/compare/task-6355-new

http://cc-ltd.net/trac/properties.png

comment:24 Changed 2 years ago by teor

I am not sure exactly where to comment, but this looks great!
(I added specific feedback on #10401 and #21635.)

comment:25 Changed 2 years ago by RaBe

Owner: changed from phw to RaBe
Status: needs_reviewassigned

comment:26 Changed 2 years ago by RaBe

Status: assignedneeds_review

comment:27 Changed 2 years ago by irl

Resolution: fixed
Status: needs_reviewclosed

Merged. Thanks.

Note: See TracTickets for help on using tickets.