I had a long held belief that health checks should just be pings. “Is the websites up?” And for years, that was right. Not anymore.
Recently, a developer asked me if he should use health checks to ensure that the Entity Framework Cache stays in memory? It took me a while disassociate health checks from pings, but he was right. YES, you should use health checks to ensure the health of your site.
You should use health checks to do this:
- Ensure your site is up and running (ping)
- Ensure all cached values are available and, if possible, at the latest value.
- Ensure Entity Framework’s cache is hit before your first user
- EF is a total hog of resources and complete slowdown on first hit
- Same thing for WCF
- Cache any application specific values needed before first hit
Health checks should not be pings. They should check the entire health of the site and its responsiveness. It should check the cache, it’s database connectivity, and everything that makes a website work. It’s a “health check” not a ping.