Whats the difference between Unhealthy vs Degraded .NET health check status
A "degraded" check could be used for checks that did succeed but are slow or unstable. E.g. a simple database query did succeed but took more than a second. Moving traffic to another instance is probably a good idea until the problem has resolved.
An "unhealthy" check means that the component does not work at all. E.g. a connection to the Redis cache could no be established. Restarting the instance could solve this issue.
Quoting the blog post:
A failed liveness probe says: The application has crashed. You should shut it down and restart.
A failed readiness probe says: The application is OK but not yet ready to serve traffic.
You could say that a "degraded" health check maps to the "readiness" probe and an "unhealthy" check maps to the "liveness" probe.