Does your application accept HTTP requests?
Are you responsible for a mission-critical application that features a HTML, XML or JSON web interface?
And can you visit a URL (such as “http://yoursite.com:3232/status”) to confirm that your web application is working well?
If so, website monitoring tools — which periodically “ping” your site and confirm that requests are being accepted — can significantly improve your application’s reliability. If you’re not already leveraging such tools, do yourself a favor and grab one today!
Improving uptime: Detection vs. Remediation
Some tools focus on detection. Like the mythical canary in the coal mine, their primary job is to recognize that there is a problem and quickly inform you. They can give you a meaningful head start on resolving the problem — before your important customers start complaining.
But while detection is clearly an advantage, the gold standard is remediation. A quick, automatic remedy minimizes downtime and reduces (or eliminates) stress for the humans involved. Let the machines fix the problem while you eat dinner with your family! 🙂
With that important distinction in mind, let’s review a few inexpensive tools/services that we have used in our professional lives, and a couple that our company has developed for Windows.
1. Pingdom (Detection only)
Starting at $10/month, Pingdom offers a basic monitoring service that checks your URL every minute. If your site is unreachable, it will immediately email you to let you know.
Here are the options when adding a new URL check:
Notice that you can configure the check to be performed from multiple geographies. That is a welcome feature if you have customers accessing your site from around the globe.
The URL check’s alerting settings are equally intuitive:
And alerts can be sent via email or SMS/text:
We use Pingdom to babysit a handful of customer sites/applications. All in all, it’s a reliable detection tool that quickly shouts whenever there is a problem.
2. SiteUptime (Detection only)
SiteUptime is another excellent monitoring tool. It works much like Pingdom, but with a few extra capabilities.
Adding a URL to check is straightforward. Only the basics are required:
Things get interesting when you delve into the advanced settings. For example, you can choose the city from where the checks should originate:
Alerts can be sent by email, sms/text or by a phone call:
PagerDuty is also supported.
You can use SiteUptime entirely free (with 1 monitor, 30 minute check interval) but the professional-grade service starts at $10/month. Check it out!
3. AlwaysUp (Detection & Remediation for Windows Applications)
While Pingdom and SiteUptime are affordable, easy to setup services, their effect is limited to failure detection. Once a problem has been identified, they cannot help you take action to resolve the interruption.
That shortcoming is understandable. After all, those services work from the “outside”; they do not know anything about your web application (other than the URL you supplied).
On the other hand, our AlwaysUp utility — designed to run any application in the background as a Windows Service — can do more because it has control of your web application’s process. And at a one-time cost of $50 per server, it is a bargain.
When configured with the check web server sanity check, AlwaysUp will improve reliability by:
Checking the URL every few seconds or minutes (configurable)
Automatically restarting the application (or rebooting the machine) if the URL does nor respond or returns a 5XX error
Sending you an email to let you know what happened
The result is that your web application will be down only for a few seconds or minutes.
Note, however, that AlwaysUp works on Windows only. It is not an option for Linux web applications.
4. Service Protector (Detection & Remediation for Windows Services)
If your application runs as a Windows Service, then Service Protector should be your tool of choice for improved reliability.
Like AlwaysUp, it will leverage the check web server sanity check to:
Check the URL periodically
Automatically restart the service (or rebooting the machine) if the URL times out or returns an error
Email you about the issue, to keep you in the loop
You can protect an unlimited number of services on a single server for $70. If you use the product for just a single year, that works out to $0.20 per day. Peace of mind, on the cheap!
Honorable mention (Detection only)
We’ve heard great things about another three site monitoring tools but we have never tried them. If you not on Windows and are interested in detection alone, they are definitely worth a look: