pypi / warehouse

The Python Package Index
https://pypi.org
Apache License 2.0
3.51k stars 943 forks source link

Make StatusPage issues more visible #3689

Open dstufft opened 6 years ago

dstufft commented 6 years ago

Currently when statuspage is having a problem, we just display that in a very muted way in the footer of the page. Combine this with the fact we will serve cached content or stale cached content if the backend is unhealthy, means that people can get a degraded experience where some parts of the site are "working" (because they're cached) and some parts are not (because they cant' be cached, or we've been down too long).

Ideally I think we'd display a big red warning banner at the top of the page whenever we have a status incident (perhaps different colors for downtime vs other status? IDK). It would have to all be done in javascript because at the point we'd be displaying it, we can't rely on anything from the backend server still existing.

ewdurbin commented 6 years ago

JS bits can be easily lifted from https://github.com/pypa/warehouse/blob/master/warehouse/static/html/mirror.html

brainwane commented 6 years ago

@aalmazan we'd love your help on this, if you have time.

aalmazan commented 6 years ago

What sort of information should be in the banner (maybe notification?) when its status isn't normal? In the mirror page mentioned, we can get a list of incidents and scheduled maintenance windows.

brainwane commented 6 years ago

If the status is not normal, I think we should indicate:

aalmazan commented 6 years ago

Sorry, haven't had too much time this week, but I have a very rough implementation of this -- assuming the Statuspage API here is more or less correct. Screenshot below.

@brainwane I believe we can get a list of affected components/services with the summary API data, but I'm not sure if the shortlink (example: "shortlink": "http://stspg.dev:5000/Q0F") is what you're looking for in terms of a permalink. Note that the red exclamation icon refers to the events severity or impact as its used in statuspage.io.

selection_055

Also, even though this may never happen (hopefully), below is something to give us an idea of what a bunch of incidents would look like. I have it currently limited to 10 in the screenshot.

selection_057

brainwane commented 6 years ago

I removed the "help wanted" tag since you're helping, @aalmazan -- thanks! @nlh this could use your review.

brainwane commented 6 years ago

Whoops, I meant @nlhkabu. @yeraydiazdiaz and @ncoghlan I'd appreciate your input as well.

ncoghlan commented 6 years ago

The banner-based approach Allan suggests looks good to me (although the "max issues" limit could likely be even lower - perhaps only show at most three actual issues, and if there's more than that, replace the 3rd entry with "Multiple additional issues, see ... for details").