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.
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!
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 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.
Pricing starts at $7 per month, which includes a 1-minute check interval from global data center locations.
When it comes to application monitoring, Dyntrace needs no introduction.
Which is why their Synthetic Monitoring service is highly recommended. It’s a great tool with auto-deployment and auto-discovery built-in for large-scale distributed systems, and its dashboards and analysis are powered by state of the art AI, helping you cut through the noise.
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 customer experiences that are critical.
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!
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.
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.
Just 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 along with 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 for 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 and is a reactive way of addressing errors (which, in my opinion, is still miles ahead of the default practiced by businesses — ignoring errors 😀 ).