The best website monitoring tools for developers
— Last updated: 2021-09-17
From 2009-2018 David was CEO at Server Density, a SaaS monitoring startup. He has been a developer for 15+ years and is now co-founder of Console.
✦ Disclosure: All reviews are editorially independent and partners must meet our selection criteria. Where indicated, we work with some partners to provide extras to our audience, but do not accept payment for reviews.
The best website monitoring tools have multiple check types such as HTTP(S), DNS, TCP and SMTP, configurable check frequency, check locations around the world, the ability to build multi-step transaction monitoring tests (also known as synthetic monitoring), and advanced alerting so you can be notified via different channels when your website or API goes down.
We tested 13 website monitoring services using our independent selection criteria. The best website monitoring tools for developers and devops engineers in 2021 are:
In this article, we explain why. We assessed the key features all monitoring tools should have from the perspective of an experienced developer or devops engineer. This means focusing on sophisticated alerting, multiple check types and the ability to execute checks frequently (every 5 minutes is too slow!).
We think that website monitoring products must include some form of transaction monitoring, also called synthetic monitoring. This is because most websites and applications include multi-step flows that are critical to the operation of the service and they cannot be tested with just basic website monitoring. Synthetic monitoring allows tests to simulate a real user clicking on items, filling out forms and performing other steps in the flow.
We also reviewed product APIs and checked to see if the web UI has dark mode! As a developer I would expect dark mode in all the tools I use, especially a monitoring service I could potentially need to access when it alerts me in the middle of the night! Some services even support configuration in Terraform.
tl;dr the best website monitoring tools
The four most important features every website monitoring tool must have are: multiple check types & configurable check frequency, multiple check locations, multi-step requests (transaction monitoring), and alerts. Other features are useful to improve the product experience (like dark mode) and a good API, but modern website monitoring tools in 2021 must have these four.
For each of our website monitoring software reviews we will assess functionality based on our standard selection criteria plus these four requirements:
Multiple check types & configurable frequency
Website monitoring means executing checks on HTTP and HTTPS services running on port 80 and 443. However, modern website monitoring products also execute checks against other services running on different ports. This is what is meant by “synthetic monitoring” - executing checks that replicate a request being made, whether that is a user browsing a website or a request to some other endpoint such as an API or database. This means all website monitoring services should support multiple check types such as DNS, Mail, Ping (ICMP), TCP, and UDP.
Website monitoring that infrequently executes checks is useless. For example, if a check only executes every 5 minutes, your service could be down for 4 minutes 59 seconds before it gets detected. However, more frequent checks usually mean a higher cost because of the overhead required for the monitoring service to execute those checks so often.
For most services, checking every minute is sufficient. This means you will be aware of any downtime within a few minutes and balances the cost of monitoring. For more critical services, checks every few seconds may be more appropriate.
Multiple check locations
Your website might load quickly in London but be broken in New Zealand or experiencing packet loss in Tokyo. This is because the internet is made up of many different networks and users access services on different devices using different carriers. This means it’s important to monitor from different locations. You want to be able to configure which locations checks are executed from because tests should run from regions that are representative of your users. If all your users are in the United States, you want more options within the US and can ignore testing elsewhere.
Some services support the ability to set up private test locations. This is useful if you wish to execute tests from a region that is not supported, on specific networks, or for services that are within your internal network. Private location monitoring usually involves deploying a monitoring agent to your own infrastructure which then appears as a new location.
Multi-step requests (transaction monitoring)
Website monitoring tends to be very simple - issue a single request and then process the result. Synthetic monitoring is the simulation of a user session - issuing requests so they replicate the steps that would happen if a real user (or machine) were interacting with the service. This is also known as transaction monitoring.
There are lots of website monitoring services but the ability to execute these multi-step requests or transactions (synthetic monitors) is what sets apart the best monitoring tools. We are assessing products from the perspective of experienced software developers who will want these more advanced features.
This means we consider multi-step requests (transactions) to be a crucial part of good website monitoring services in 2021. We will not review services that don’t support it.
Alerting is a crucial feature for all monitoring tools because you need to be informed when something goes wrong. This means alerting functionality is broken into two components:
- Triggers: For website monitoring, the trigger will be some type of failure condition. This could be a timeout, HTTP status code error or DNS resolution failure. However, it is also possible for a website to be fully responsive with an HTTP 200 status code but still be considered down - the ability to check the response headers and body is important so errors or incorrect responses can be detected.
- Notifications: When an alert has triggered, you need to be notified about it. This could be an email alert, but for critical checks you also want the option to be notified via more urgent channels such as SMS, phone, Slack, or through integration into incident management systems like PagerDuty or Opsgenie.
Best website monitoring tools
Datadog has a powerful synthetic monitoring product with an advanced editor for defining execution steps and detailed test reporting, screenshots and request traces. It also has sophisticated alerting and incident management functionality, especially if you’re using their other monitoring products. However, it has a small number of check locations and can get expensive.
Uptrends is more expensive at the entry level to get access to uptime and multi-step request monitoring, but it has features like support for running tests using Chrome, Firefox and Internet Explorer, plus over 200 check locations.
It’s clear that Checkly has been built for developers because it has powerful API monitoring and scripted browser transaction monitoring functionality. Being able to use Node.js scripts through the Playwright and Puppeteer frameworks, all defined in Terraform, is great for developers. However, it is missing some features of competitors, such as more check types, private monitoring locations and more flexible alerting.
Site24x7 has a lot of functionality and covers basic availability checks, transaction monitoring as well as browser performance testing and step-by-step API monitoring. However, it has a cramped UI as well as some unusual technical implementation details for its private check locations (such as a graphical installer for Linux systems).
New Relic Synthetic Monitoring has options to test APIs, script browser interactions, check for broken links or just ping specific endpoints. It includes a generous free package and you can set up private locations for no extra cost, but it has limited alerting capabilities.
Uptime supports multiple check types and allows you to build multi-step transaction monitoring using XPath or JSON selectors. However, it is let down by limited alerting options and fewer check locations than competitors, which are also limited by the pricing plan you choose.
RapidSpike takes an innovative approach to domain, page and transaction monitoring with automatic insights about domain expiry, page accessibility, and performance. Although multi-step requests can be scripted in JSON, the focus on HTTP(S) website monitoring means it is more suited to non-technical users than developers.
We also tested the following 6 tools but they did not meet our criteria:
Alertra has support for monitoring all major check types such as HTTP(S), Ping (ICMP), SMTP, POP3, TCP etc with the option to configure check frequency between every 1 min and 60 min (with different pricing for each). Alerts are configured as part of the check configuration and you can be notified by email or webhook.
However, Alertra is very basic. The UI is clunky (e.g. no dark mode) and you cannot configure the check locations. Traceroutes are provided for every check event, which is useful, but the multi-step transaction monitoring is implemented through their own custom scripting language. Documentation can be found if you look hard, but there are no links in the product itself - you have to search their website and blog.
Pricing is somewhat confusing - the website says $10/m for 50 URLs, with pricing starting at $0.20/m for 60 minute check granularity, up to $1.95/m for every 1 minute ($19.95/m for 1 minute scripted checks), and a minimum monthly fee of $9.95.
Alertra might be appropriate for very basic requirements, but we think other tools in this review are much better.
AlertBot provides website and synthetic multi-step monitoring for HTTP(S) websites, plus availability ping monitoring for arbitrary ports. However, the UI is dated and there is no ability to choose check locations. HTTP monitors do not support custom headers or the ability to look for content within the response. Multi-step transactions are built using a downloadable application for Windows or Mac rather than advanced scripting supported by competitors. Alerting is also limited.
Given that pricing starts at $110/month, there are better tools for lower prices with more functionality.
FreshPing provides basic HTTP(S), WebSocket, Ping (ICMP), TCP, UDP and DNS checks at 1 or 5 minute check intervals. It is only possible to select a single location per configured check, and there are only 9 options to choose from, which significantly limits the usefulness of the monitoring. There is no support for multi-step transaction monitoring, which means it does not meet the minimum requirements for our review criteria.
Pingdom is one of the oldest website monitoring tools - I remember using it more than a decade ago when there were not many options, and it did a great job! Since then, it has been acquired by Solarwinds and brought into their cloud monitoring portfolio.
If you used Pingdom in the past, you can still see some of the old UI elements, some of which appear in the documentation and in-product videos/graphics. Pingdom yellow sometimes appears instead of Solarwinds orange. However, it has mostly been merged into the general Solarwinds UI. This can make the experience inconsistent and confusing, particularly when using the documentation.
Pingdom supports two main check products - uptime monitors and transaction monitoring. Uptime checks can be executed against SMTP, POP3, IMAP, TCP, Ping (ICMP), DNS, UDP and HTTP(S) endpoints which means you can monitor all the services you might be running. It supports check frequencies ranging from 1 minute to 60 minutes but only lets you choose the test location by broad region - North America, Europe, Asia and Latin America. With the exception of being able to combine North America and Europe, region selection is mutually exclusive so you can’t choose to run checks globally, for example.
Transaction monitoring uses a simplified step-by-step script which can either be manually written or imported using a transaction recorder application for Windows or Mac. This requires the page to have the appropriately coded HTML element IDs so that they can be selected by the script, for example to fill out a field or submit a form. This works for simple sites but lacks the power of a true scripting engine like those available from Datadog and New Relic.
Alerting is also very limited - there are basic options for who to alert (teams and individuals), how long to wait for a “down” state and how often to resend alerts, but there is no ability to define what “down” means. You can check for strings on the page and send custom headers, but there is no option for parsing the response headers or alerting based on response time. Alerts can only be sent via email, SMS, or webhook.
Pingdom’s pricing is attractive - starting at around $15/m for 10 uptime checks, 1 transaction check and some SMS - but the product is limited compared to the competition. You can get a much more powerful product for free from New Relic.
Signing up to StatusCake drops you into their limited free plan so you need to activate the trial to test all the features. Checks are available for HTTP(S), HEAD, TCP, DNS, SMTP, SSH and Ping test types which also support check frequencies between every 30 sec and up to every 24 hours. Locations can be selected from a range of regions, although the drop-down menu UI for selecting them is tedious if you want to pick more than a few.
However, StatusCake does not support multi-step transaction monitoring and has very limited alerting capabilities. It is therefore excluded by our review criteria.
UptimeRobot has very basic website monitoring functionality that can check HTTP(S) endpoints, look for strings in the page response, execute ping checks or attempt connections to open ports. However, there is no ability to define multi-step transaction monitoring, check locations are not configurable, and a large number of features - such as monitoring for SSL errors, checking more frequently than every 5 minutes, setting custom headers and checking HTTP status codes - are only available on the Pro plan. They are disabled even in the trial. The UI is not well designed and there is no dark mode.
As such, we do not recommend UptimeRobot for developers.
How do I monitor a website?
Monitoring a website requires executing requests to a URL on a regular basis to ensure that it is operating correctly. This means you need a way of automating those requests and ideally running them from different locations around the world. You could write your own system using cURL to issue requests and then executing them with a cron job running on servers around the world, however most people pay to use a website monitoring service.
How do I monitor an API?
An API can be monitored using any website or synthetic monitoring tool that can issue requests to the API, most commonly via HTTP. APIs process programmatic requests and responses which means the monitoring tool needs to be able to handle API protocols such as REST, XML, JSON, gRPC, and GraphQL. Supporting authentication methods such as OAuth, JWT and authorization headers is important.
Some tools also support the ability to parse the response and examine the content for specific fields and values. These can be defined as test assertions that query the GraphQL or JSON response based on specified keys.
Multi-step chained requests are important if you want to check whether an API is accepting and processing write requests correctly, or if there is the concept of a login session that persists across multiple requests.
What is the difference between website monitoring and synthetic monitoring?
Website monitoring is a simple connectivity and performance check against an HTTP(S) service available via a URL. A request is successful if the page loads within a specified time.
Synthetic monitoring is a more advanced version of website monitoring where a browser session is simulated as if it was a real user. It is used to check that important workflows are working properly, such as user registration, APIs, shopping cart checkout, or submitting a form. This may be a single request to the page to check that it responds as expected and loads in one or multiple browsers (usually Google Chrome), but it usually means multiple steps as part of a transaction e.g., browsing a website, filling out a form or logging into an account.
For API tests, synthetic monitoring will involve executing a chain of requests and then using the response to fill variables that can be used for the next request.
How does transaction monitoring work?
Multi-step transaction monitoring works by defining steps which are then executed by a synthetic browser session. This simulates a user visiting a website and then performing the defined steps. The best synthetic monitoring tools provide both a web editor where you can drag and drop steps as part of a flow, as well as the ability to edit the steps in code.
Some synthetic monitoring tools also provide recorder apps or browser extensions so you can run through the steps yourself and they will be automatically converted into the correct test script. Popular frameworks such as Playwright, Puppeteer or Selenium WebDriver may be used to standardize the test steps.
Is website monitoring open-source?
Website monitoring is not usually open-source. This is because it must be run on nodes running in locations around the world and support difficult to manage agents for simulating web browser transactions and synthetic monitors. Maintaining this infrastructure is time consuming so most website monitoring is software as a service.
That said, some aspects of synthetic monitoring may involve open source components. For example, popular open-source frameworks such as Playwright, Puppeteer or Selenium WebDriver exist for generating the code that describes the steps in transaction monitoring. These steps are then executed on the monitoring platform, which is closed-source.
There are some open-source monitoring tools which have closed-source synthetic monitoring features as part of their cloud version. For example, Grafana Cloud has an addon called Synthetic Monitoring which was originally developed as an open-source plugin called worldping. This supports HTTP/HTTPS, DNS, TCP and ICMP Ping which then integrate with the Prometheus Black Box exporter to make metrics available as part of a Grafana Cloud subscription. Unfortunately it is no longer open-source but the Synthetic Monitoring Agent that executes the checks - and can be installed as a private monitoring node - is open-source.
Our editorial policy
Why you can trust us
Console is written by developers for developers. Using our decades of experience building software at scale, we apply strict selection criteria to decide which software we feature.
This includes asking questions like “Would this form part of a daily-use set of developer tools?”, “Would this be used by advanced, power-users?” and “Does it have a good graphical and/or command line interface? Shortcuts? Accessibility?”. The more of these questions we can answer positively, the more likely a tool is to be featured.
We do not accept payment for inclusion and where we work with partners, they must fit our selection criteria before we consider working with them.
About the author
David Mytton is co-founder of Console. From 2009-2018, David was CEO at Server Density, a SaaS monitoring startup used by hundreds of customers to collect billions of time series metrics. He is also a researcher in sustainable computing at Uptime Institute and affiliated with Imperial College London. David has been a developer for 15+ years.
Console is the place developers go to find the best tools. Each week, our weekly newsletter picks out the most interesting tools and new releases. We keep track of everything - dev tools, devops, cloud, and APIs - so you don’t have to.
Interesting tools by email
Our free weekly newsletter picks out the 2-3 most interesting tools. See the latest email.