AllenInstitute / datacube

Other
0 stars 1 forks source link

create status/ page which consolidates individual status calls #70

Open chrisbarber opened 6 years ago

chrisbarber commented 6 years ago

Output of cgi/apptest.py is not convenient for load balancer health check definitions. Make a page located at status/index.html which is aware of all expected services (e.g. cell_specimens, connectivity, locator, mouse_ccf, conn_bridge) and reports a single okay / not-okay status.

Also consider renaming cgi/ to cgi-bin/ for slightly better consistency with other apps and services.

NileGraddis commented 6 years ago

I think this also will resolve @shus2018's concerns from #64

byoungstrom commented 6 years ago

If you want to see prior art from our own stuff, /cgi-bin/apptest.cgi is used for both the load balancer check "is this instance healthy?" and to assist in troubleshooting issues.

The first use-case simply shows a go/no go message when queried for '/cgi-bin/apptest.cgi?quiet'. The latter use case gives a bit more information including which application host the request was routed to.

I fully support the service providing status (rather than my hacks after the fact). In the datacube case, I feel that the status uri should know how many services should be running and validate status of each. If all are healthy: status==green. If one or more are down then report on which ones they are and, if possible, an indication of why they are down (missing files, crashed sub-process,etc.)

ChrisL services all listened for /status and responded with 'OK' or 'error'.

Whatever uri we settle on I would like to be consistent across all applications we produce and support.