Let’s face it. There are all sorts of monitoring tools in place, and yet downtimes and errors are a significant source of business worries.
Can Synthetic Monitoring be the answer?
Monitoring is an extremely critical and needed part of any modern digital business.
You cannot rely on the accidental discovery of bugs, or wait until a frustrated customer calls in, simply because the cost to business is too high.
I wish I could make the details public (but contractual obligations bind me), but I’ve closely seen a business lose market position from #2 to #20 or so, just because the customer complaints kept piling up. And this was a B2B business, mind you. If you think a good customer service team (or customer “success” team, whatever you may want to call it) could have saved them, you’d be wrong — it was simply too many unexpected errors in the system that kept popping up randomly even after fixes were put in place.
Why is monitoring not enough?
The answer to such business problems is — monitoring! Yes, everyone knows that, and you, as a business, likely have a few monitoring systems in place.
But the challenge with real-world applications is that pings and API uptimes do not even skim the surface of the application. Modern applications are built on transactions, funnels, logins, and several third-party services, and all this needs to operate together rather than be working perfectly in isolation.
With traditional systems of monitoring, while you may have the confidence that your email server is working and your payment server is working, but how do you know if the payment server can send transactional emails through the email server?
Say hello 👋 to Synthetic Monitoring.
If you’ve been struggling to reach the elusive promised land where you come across problems before your customers do, Synthetic Monitoring is what you need. Despite the esoteric-sounding name (and the fact that it can be very difficult to code yourself), Synthetic Monitoring is a rather simple idea to explain.
It involves simulating app users in the form of scripts, which then go over some predefined page flows to verify that everything is working as it should. Please note that for your application, there’s no actual difference — the requests work as if they’re coming from an actual user, and they involve pressing buttons and filling forms on the pages exactly the way a user would do.
Having a suite of such tests set up and run regularly allows you to answer the following critical questions at all times:
Is the system up?
Are all the important sub-systems up?
Are customers able to log in?
Are customers able to locate what they were expecting, and in the right place?
Has any recent code change broken some part of the customer experience?
Are customers able to filter results, download reports, etc.?
Are customers able to make payments?
Are customers able to reach the support team from within the app?
Your list can vary, but once you’ve set up Synthetic Monitoring, you’re able to have 100% confidence in your system at all times. It’s hard to oversell Synthetic Monitoring, but once you’ve had it set up and running, you’ll begin to wonder how you ever managed without it!
What are some of the best Synthetic Monitoring tools available?
So, now that you’re ready to take actual, real (or “synthetic,” if you will 😛 ) charge of your application, here are some of the best tools you can deploy and start benefitting from right away.
What I really like is how Checkly combines very easy setup and ease of use with powerful tools developers will love. Checkly uses the Chrome Puppeteer framework to accurately simulate interactions with a Chrome browser. To create the checks, you can dive into the code or use the Puppeteer recorder, an open-source Chrome extension by Checkly with almost 7000 stars on Github.
Checkly offers a powerful REST API that lets you orchestrate and automate your checks, for example, with Terraform. It also lets you set up fine-grained alerting to Opsgenie, Pagerduty, or Slack. All-in-all a great solution I see most interesting for modern DevOps teams.
You can get it started with a free plan which includes a 1-minute check interval from global data center locations.
Dotcom-Monitor’s synthetic monitoring solution monitors APIs (REST, SOAP, sockets), web pages (in real browsers), web applications (including multi-step transactions), and internet infrastructure (FTP, VoIP, and more).
Totally external and completely managed, Dotcom-Monitor’s synthetic monitoring tools allow you to focus on the data instead of time-consuming setup and installation. On top of that, their award-winning support team is here to help with setting up and managing complex, enterprise-level monitoring tasks 24/7/365.
Sematext Synthetics is a synthetic monitoring tool that’s packed with great and easy-to-use features. It allows you to monitor your website and application availability from multiple locations around the world.
Sematext reports back stats about error rates, page speed and load times, and other business-critical metrics. You can also use it to benchmark against competitors and identify areas you should optimize to improve website performance.
You can also create public or private Status Pages with availability and performance information for any monitored services and the ability to publish information about incidents or scheduled maintenance. These Status Pages can live on a custom domain and have your visual elements.
You can get started with Sematext for free and test all their features before committing to any plans. Once you are ready you can pick from three plans.
A very flexible Pay-As-You-Go plan gives you very granular control over your costs. A $29/month plan gives you 40 HTTP and 5 browser monitors with data retention of 30 days. Pro plan will get you 100 HTTP and 15 browser monitors for $99.
Uptrends is a beautiful and feature-rich Synthetic Monitoring service worth checking out. Some of the features that impress upfront are failure snapshots (see where exactly things broke in the browser), bandwidth throttling (see how your website/app behaves in poor network conditions), and more.
The likes of Microsoft and Vimeo use uptrends, so you’re in good company!
Uptime is an enterprise web monitoring software that includes synthetic monitoring.
Their exclusive built-in editor, equipped with field suggestions, creates a no-code approach to transaction checks. The editor includes an AutoComplete feature that identifies specific elements without having to hunt for them.
Uptime’s Transaction Checks are a fast and simple way to get critical information about what isn’t working on your site and why. I highly recommend trying it out.
Better Uptime is a modern monitoring service that combines synthetic monitoring, incident management, and status pages.
The setup takes 3 minutes. After that, you get a call, email, or Slack alert, whenever your website goes down. The main features are:
Unlimited phone call alerts
HTTP(s), Ping, SSL & TLD expiration, Cron jobs checks
Easy on-call scheduling
Screenshots & error logs of incidents
Slack, Teams, Heroku, AWS, and 100+ other integrations
AlertBot is another great option for Synthetic Monitoring. AlertBot prides itself on offering advanced features that are easy to use, providing helpful health reports direct to your inbox, and alerting you the moment your site experiences any problems.
Where they really stand out from the rest is their proactive management of your multi-step synthetic monitors (which they call their “Proactive ScriptAssist”). Sites change often and this feature assures your synthetic scripts are always functioning. They also provide an easy to use web recorder to help you create your scripts.
When it comes to the average business, its needs are rather simple and straightforward. There’s usually just one application and a few endpoints to monitor, and there are only a handful of critical customer experiences.
For these use cases, most of the top offerings out there is an overkill, which makes Pingdom my clear favorite for both general monitoring and Synthetic Monitoring alike.
As you can see, creating a synthetic monitoring test is dead simple in Pingdom, and you’re sure to enjoy the snappy, focused experience. If you still haven’t started with any monitoring, I’d recommend you try out the entire stack offered by Pingdom — you’ll surely be delighted!
Apica is a solid synthetic monitoring offering by a reliable company. Their Synthetic Monitoring service includes uptime monitoring, competitor monitoring, global monitor (simulate users from any geography), and more.
One key advantage Apica offers is that of on-premise deployment for businesses that are sensitive to privacy or are under regulatory requirements.
Like Pingdom, Site24x7 is better known as a simple ping service for monitoring application uptime, but I was pleased to see its Synthetic Monitoring offerings.
The service is compatible with Selenium test cases, so it’s a bonus if you’ve already been using Selenium for browser testing.
I was impressed by their notification system, which comes with programmable webhooks and plug-and-play compatibility with Microsoft Teams, Slack, Stride, HipChat, Zapier, etc.
Now owned by Cisco, AppDynamics is a popular name in website and API monitoring services with an important subset of browser-based Synthetic Monitoring services.
While the offerings are standard, there are a couple of features that stood out for me.
First off is error re-testing — as soon as an error is countered, AppDyanmics re-tests it to make sure it’s not a false negative; only then is a notification sent to you.
Second is private synthetic agents, which allow you to deploy custom synthetic agents on your infrastructure to cover edge cases or just sidestep latency issues. Definitely worth checking out!
Catchpoint is an extremely comprehensive Synthetic Monitoring service with more than 700 global test locations (more than any I came across while researching this article).
It tries to cover the entire monitoring spectrum by checking for over 20 types of monitoring and digging out the real cause of failure.
For instance, was the failed file upload because of no response from the FTP server, or the customer’s ISP or your business’s ISP? Be it any popular protocols, browser types, last-mile connectivity, etc., Catchpoint goes out of its way to provide the real, complete picture.
Last on this list is New Relic, which is another decent Synthetic Monitoring service to check out.
It has all the features you’d expect in a capable Synthetic Monitoring service, though with only 18 global locations as of writing. So if global availability is your #1 concern, this might not be the best option for you.
That said, it forms a neat combination if you’re already using other products from New Relic, especially Insights.
The counterpart of Synthetic Monitoring is Real Monitoring, which involves live logging of errors and watching them like a hawk. Just like the former, Real Monitoring has its essential place — simulations can never fully achieve the chaos of a live, loaded system.
Especially when it comes to figuring out ideal spots for optimization, Real Monitoring is your only bet. However, as already pointed out, Real Monitoring plays catch-up with the customer. It is a reactive way of addressing errors (which, in my opinion, is still miles ahead of the default practiced by businesses — ignoring errors 😀 ).
I write about, around, and for the developer ecosystem. Recommendations, tutorials, technical discussions — whatever I publish, I try my best to cut through confusion and fluff, and provide actionable answers based on personal experience… read more