We are working on a series of blog posts going into more detail about how Vigil works. In today's installment, we are going to go over the basics of what Vigil's alerts mean. Vigil requests a resource from your server just like a regular user would from a browser. If there is a problem, we will send you an alert indicating the type of error that occurred. If you are unfamiliar with how all these pieces work, the error messages might seem confusing.
The first step of requesting a resource from a website is to translate the human-readable name of the site--apple.com for example--to its IP address. These lookups are performed on a network of machines called nameservers. If we are unable to complete the lookup request, you will receive an alert. There are several reasons why this failure might occur. It could be that the nameservers for your site are down. More often, they may just be misconfigured. In some rare cases our monitoring servers may be unable to reach the appropriate servers. In all of these lookup failures, it is not an indication that your server itself is down. Rather, we are simply unable to lookup the IP address.
Once we have the IP address of your server, we will attempt to connect to it. If for any reason we cannot establish the connection, we'll send an alert indicating a network failure. This is one of the trickiest problems to solve, as the error could be anywhere between our monitors and your website. This might indicate your server is completely offline, or that the hosting provider or ISP connection to your server is having issues. More rarely, it could indicate an issue somewhere along the network, or with the network connectivity of our own monitors. We have architected the Vigil monitors to minimize false alerts from local network disruption, and all sites are checked from both our east-coast and west-coast locations before we will send out an alert.
If we are able to connect to your server, it will respond with a status code. The HTTP protocol defines a number of Status Codes that a server can return in order to let a client know whether a request was successful or not. Even though a server may be responding, the data it may be returning could indicate something is wrong. Here are some common status codes you might see:
2xx - 200 is the most common status code, and indicates a successful response. Any status code in the 200-range is considered a success. Additional status codes you might see are 201, 202, 203, 204, 205 and 206.
206 - You will often see a 206 status code from the Vigil monitors. In order to save bandwidth we only ask for a partial download of your site—typically 200 bytes. The response code when you ask for only a portion of the data is 206.
3xx - Status codes in the 300 range indicate a redirect, and means the client must do additional work to fulfill the request. Normally, the Vigil server will follow these redirects on its own, and you will not see these status codes. Possible values are 300, 301, 302, 303, 304, 305 and 307.
4xx - Status codes in the 400 range indicates the server thinks the client, in this case the Vigil server, made some kind of error. The most common error of this type is the 404, or Not Found error. This usually means a URL has been typed incorrectly. It can also mean a resource has moved on the server, and is no longer at the original URL. Another error you might see is 401, or Unauthorized. If your site requires credentials to access the resource requesting, you might see this error. Error codes in the 400 range are 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416 and 417.
5xx - Status codes in the 500 range indicate an error on the target server itself. These usually indicate something is wrong with a site. 500, or Internal Server Error is a common error when a backend service has failed. Additional codes are 501, 502, 503, 504, and 505.
Almost all of the alerts you receive will fall into one of the above categories. If you are a subscriber to one of our higher-tier plans, such as Professional or Business we offer more advanced checks to detect more complex issues with your site. We'll discuss these advanced options in the next installment, including failures related to SSL certificates and secure sites.
CUSTOMIZING ALERT DELIVERY
By default we will send both push notifications and email notifications for all alerts. You can customize this behavior in the settings tab by tapping the gear icon on the main screen. In addition, we offer SMS alerts for some plans, which you can configure on the settings screen. If you use Slack or Hipchat, we also offer integrations with these platforms so any alerts will be sent to your messaging system. You can read more about what each plan offers here