Synthetic monitoring gives a website a thorough test, running through a typical user journey, and hitting every interactive element on each page. This monitoring system is really a testing service. It is an active checker of every element on a site. Although this is very useful for the testing phase, the benefits of using a synthetic monitoring tool don’t stop once the site goes live.
A site might work well for users in one part of the world and not so well in other regions. This is because it is common to hold copies of websites on many servers around the globe in order to speed up delivery. So, if you test your live site from your location, it might seem to be working well even though parts of the site are missing for visitors who access your pages from another part of the world.
Synthetic modeling is a good example of a service that can easily be delivered from the cloud. There is no particular merit in knowing how your website performs from your locations. You need to know whether the site is up and running all over the world. The only way you can tell that is to get a service that will test the site from many different locations all at the same time.
What is synthetic monitoring?
“Synthetic” means “manufactured” or “artificial.” There are two groups of active web monitoring systems. Synthetic monitoring is one of them, the other is Real User Monitoring.
When trying to work out which group a tool fits into the test question is whether the actions performed on the site were generated or came from real users. Generated traffic indicated synthetic monitoring.
Volumetric testing is often used to test the resilience of a web protection system to DDoS attacks. These stress tests can be implemented with recorded connection requests that actually happened over time and then get replayed all at once. Another method is to generate connection requests. The term “synthetic” doesn’t get used in this context. Instead, those generated connection requests are called “simulated.” So, even though those attacks are generated, they aren’t considered to be synthetic monitoring activities.
Just as with volumetric testing, actual events can be replayed, those replay tests aren’t considered to be synthetic monitoring. This is because they originated with the actions of real users. So, those replay tests are categorized as part of real user monitoring.
Both synthetic monitoring and real user monitoring are used for web performance monitoring, which is also called web transaction testing. When web transaction monitoring is performed by a replay or just by recording what happens on a site, that is real user monitoring. In order for a web monitoring system to be considered a synthetic monitoring exercise, the actions that are performed on the web page should be generated and not in any way originating from the actions of real users.
Types of synthetic monitoring
There are three types of synthetic monitoring, all of these use automated processes to trigger a service on a web server. Not all synthetic monitoring tasks need to cause a full web page to appear.
These three types are:
- Uptime monitoring
- Web performance monitoring
- Transaction monitoring
Synthetic monitoring duties don’t test all of a website. So, a typical website owner will probably use all three types of techniques.
Uptime monitoring is also called availability monitoring. The purpose of this monitoring is just to see if the website is available for users in different parts of the world. Network administrators will be familiar with the most commonly used technique for uptime monitoring, which is Ping.
Ping is a very basic test that doesn’t require any of the specialist web services to be activated. It merely makes sure that the Web server can be reached. So, it checks on the route from a location in the world to the server hosting the site and the capability of the server to respond to a connection request.
Levels of uptime monitoring
There are various levels of Ping tests. The lowest level of the Ping test is the standard ICMP Ping. In the true meaning of the terminology, this is the only Ping, other methods for checking server response are Ping-like systems that use different protocols for their test. The next level up is a TCP connection request to a specific port. This ensures that a specific service is active on the web host – usually HTTP or HTTPS.
One reason a site can be available in one location but not in others is due to a problem with a DNS server – DNS is the system that translates web addresses (URLs) into internet addresses (IP addresses). The Domain Name System is distributed, so different DNS servers serve different parts of the world. Also, websites that are cached on many servers around the globe will have different DNS records in different locations. So, checking that the DNS server has the correct record is an important availability test.
Advanced uptime monitors
Advanced uptime monitoring tools go a little further than just trying to provoke a response from the server. These take the connection establishment process a little further. An HTTPS request goes at least part of the way through a session establishment process to check the security certificate (SSL certificate) of a server.
An HTTP Get request goes all the way through to ask for a specific page. The testing system can then check the content of the reply to make sure that the specific page requested is actually available.
Web performance monitoring
Web performance monitoring is particularly concerned with response times for elements on a page. This remit blurs the boundaries between advanced uptime monitoring and web performance monitoring because the methods used by the two categories are almost identical. The Ping command that checks on the availability of a server also measures the amount of time that response took to arrive. Also, while checking on the response time of an element on a page, the test also establishes that the service is available.
Page component checks
Many elements in a page, such as images, style sheets, or widgets, don’t arrive with the initial code for the page. These components are frequently held on different servers that might be geographically dispersed. This is so the web performance monitor needs to go through the process of requesting a page and then scanning through the code to identify all included elements and request those as well.
Categories of Web performance monitors
Web performance monitoring can be carried out simply by a crawler that works at code level or through a browser to check that elements actually load successfully. This is called an API monitor.
Browser-based synthetic monitoring is offered through different browsers, so the user is usually offered a menu of options on whether to perform each test with one web browser type (usually Google Chrome) or several.
Another important distinction is whether to test for responses to desktop computers or mobile devices.
Transaction monitoring is also known as Web application monitoring. This is a run-through of a user action. However, it is performed without the involvement of any real users.
Transaction monitoring procedures
Transaction monitoring is the most complicated type of synthetic monitoring service because it involves actually loading a page into a browser and modeling the actions that a site visitor would perform. These tests require planning and the usefulness of results depends entirely on the amount of thought that went into specifying the tests that should be performed.
Transaction monitoring is particularly useful to test a site before it goes live. However, this type of monitoring system is expensive and so it isn’t used to test a whole website all at once. Usually, transaction monitoring focuses on one page or even one interactive element, such as an order form or a video.
Transaction monitoring use cases
The typical avenue for transaction monitoring is through a browser. However, these are not human tests, but script runs that emulate user actions. The tests are automated, so they can be repeated with exactly the same steps from several locations. A useful check runs through an expected user journey through a page and checks on procedures that might load in other pages. An important example would be the testing of a purchase process.
Transaction monitoring tests can be applied during final testing before go-live, during regular operations when an adjustment has been made to existing elements, or when a new interactive element gets added to a page.
Using a synthetic monitoring service
Synthetic monitoring services offer a range of locations from which tests can be launched. They either offer batches of locations or let the account holder choose which location to run synthetic monitoring tests from.
Often, only the transaction monitoring services are labeled as synthetic monitoring. The other services that cover availability and performance are advertised as uptime monitors or response time monitors.
On-demand synthetic monitoring checks
There are a number of on-demand services available for uptime monitoring and response time monitoring and some of them are free. These operate as websites that will launch tests against specified web pages.
Google PageSpeed Insights is an example of this type of service. This system checks response times for a page overall and then for significant events in the loading of the page, such as the time it takes for images to appear or the time it takes for active content, such as links to be responsive.
Using uptime monitors
Running a one-time check is very easy. However, ongoing awareness of a site’s availability requires repeated automated processes. Uptime monitors are often based on Ping. These services are cloud-based subscription systems to which the user pays in advance each month for a number of credits.
Account-holders of uptime monitors select the frequency of the tests on a web address. It is possible to test several sites on one account. However, it isn’t usual to test several pages on each site because standard Ping tests only check the availability of the Web host – which means it is either available to serve all pages or not responding at all.
A standard uptime monitor can be set to simultaneously test DNS functions with site availability. An uptime monitor will produce a report for each test and store those results for analysis. An uptime monitor is particularly important to have if your Web hosting service offers an uptime guarantee.
Using response time monitors
Response time monitors give more detailed reports on a site’s performance and it is possible to get data for each page on a site. However, you probably won’t need to measure the response times of every page on the site and you won’t need to run response times as frequently as uptime monitors.
Response time services are very similar to uptime monitors because they are cloud-based and charge a subscription for a number of tests per month. The user can usually select the locations from which tests should be run, the device, whether the tests should be run with a WebCrawler or through a browser, and it is also necessary to specify the frequency of scheduled tests.
Response time monitoring services allow the customer to alter all parameters for tests at any time and most of them also offer the facility for on-demand testing.
Using transaction monitoring services
Transaction monitoring services are more complicated because they conduct tests in a series of steps. Each step will be completed with a report. Setting up a transaction monitoring test takes more time than running uptime or response time monitoring. Transaction monitors are more expensive than uptime monitors and response time monitors.
Transaction monitors check for availability from one remote site before launching the synthetic monitoring script. If the target Web host fails to respond, it will next try from a different data center. So, if a site is down, the monitoring service doesn’t attempt to launch the transaction monitor.
Synthetic monitoring packages
Many synthetic monitoring services offer bundles of services that include all three types of synthetic monitors for a package price. Be careful to read the pricing structure, though because each step in a transaction monitor script could use up one subscription credit.
Usually, a bundle will give a greater number of uptime credits than response time and transaction monitoring credits. Often transaction monitoring and response time monitoring have the same price per transaction (or step).
Large businesses set their synthetic monitoring test launches at different frequencies according to monitoring type:
- Uptime monitoring: every minute
- Response time monitoring: every five minutes
- Transaction monitoring: every 15 minutes
Smaller businesses with tighter budgets might choose to forego regular transaction monitoring and lengthen the time between uptime and response time tests.
Synthetic monitoring tools
It would be possible to set up your own synthetic monitoring system by renting server processing time at several data centers around the world – such as a cluster of EC2 servers from AWS. However, that would actually cost a lot more than just taking out a subscription to a synthetic monitoring service.
Here are four synthetic monitoring services that you could consider.
A package of uptime, response time, and transaction monitoring services with a user-selected number of testing credits per month. Each package includes ten times the number of uptime tests as the combined allowance for response time and transaction monitoring. The service offers a 14-day free trial that includes both synthetic monitoring and real user monitoring.
Offers TCP, SSL, DNS, and HTTP uptime monitoring from multiple locations to test the availability of a website. Browser-based transaction monitoring services are also available. The pricing of these two services is set per thousand tests per month at a rate of $5 for WebCrawler uptime and response time tests and at $12 for browser-based transaction monitoring. Datadog offers an unlimited 14-day free trial.
Offers synthetic monitoring from 110 locations and has services for uptime, response time, and transaction monitoring. Subscription bundles include automated Ping tests and browser-based response time monitoring plus transaction monitoring credits. The cheapest bundle monitors ten websites for $9 per month. You can get a 30-day free trial of that service.
Applications Manager covers a long list of applications and virtual services and it is particularly strong at monitoring Web applications and websites. The package includes availability and response time monitoring and it also has a section of synthetic monitoring tools. There are three editions of applications Manager and the highest of these, called Enterprise, includes distributed tracing for monitoring APIs and microservices, which are notoriously difficult to track. Applications Manager installs on Windows Server and Linux and it is available for a 30-day free trial.
This monitoring system includes both synthetic monitoring and real user monitoring utilities. The user can choose to launch uptime monitoring with a frequency of up to five minutes. The response time monitor in this system includes drill-down root cause analysis to identify the problems that slow download times. This tool also includes synthetic transaction monitoring. You can access the Web Performance Monitor on a 30-day free trial.