Check the system is working properly, if any errors or anomaly, we want that be detected early than late.
- check availability
- check operation correctness
- check middle-tier or shared service to detect and isolate a failure ...
- health status of components of an application, db, queue, etc
- response code
- response content
- response time ...
- expose at least an endpoint for a whole system level check
- use parameters to check different level of availability
- obscure and secure the endpoint
- cache the status and show through an endpoint, in case that's called many times, for example in a dashboard