Synthetic or directed monitoring is a method to monitor your applications by simulating users – directing the path taken through the application. This directed monitoring provides information as to the uptime and performance of your critical business transactions, and most common paths in the application. The simple reality is that there is no easy way to combine the accessibility, coherence, and manageability offered by a centralized system with the sharing, growth, cost, and autonomy advantages of a distributed system. It is here, at this intersection, that businesses turn to IT development and operations teams for guidance—APM tools enable them to negotiate these gaps.
How Does Synthetic Monitoring Work?
Synthetic monitoring works by issuing automated, simulated transactions from a robot client to your application in order to mimic what a typical user might do. Synthetic monitoring can be applied inside the firewall - within the data center to ensure that all the machines are running properly, or outside the firewall to provide information about availability and performance from a global perspective. These server calls and testing scripts become “monitoring” tools by running at set, regular intervals—say, every 15 minutes—and can be issued from a single designated synthetic monitoring client browser or from multiple browsers at different server locations to better gauge site availability and responsiveness, globally.
In this way, you get a steady, solid baseline on which to monitor server and application performance, 24/7, even during periods of low user engagement. Moreover, because it consists of test scripts— simulating an end-user’s clickstream through basic navigation, form submission, shopping-cart transactions, or even online gaming—synthetic monitoring can run in private test environments before deploying new features or during regular offline maintenance, revealing potential obstacles before real users have the chance to run into them. The activity can either simulate a browser or drive an actual browser.
Browser simulation is straightforward and takes up little resources, but it does not provide an accurate picture of the user experience. Simulated browsers cannot follow dynamic, rich websites and therefore may not provide accurate user experience data. While synthetic tests provide a baseline and monitor your applications regardless of the time of day or the traffic on the website, they do not cover everything that is happening on the site. The tests can be running fine but your end users could be having issues. This is due to the tests not simulating the network, geographical location, band with browser or device properly or users doing things on the site you aren’t testing for. In general, synthetic tests are indicative of user experience but not definitive.
Synthetic Monitoring Answers Following Key Questions
- Is my website up?
- How fast is my site at this momment?
- Are transactions working?
- Are 3rd Part components still operating?
- How cost effective is my performance?
- If there is a slow down or failure: where is it?
The Nature of Modular Software
The first step to understand the challenge is to understand the nature of how all these applications are built and delivered to the end user.
Application architecture and delivery used to be a fairly controlled exercise, build the application in house with your own code and then deliver it from a data center to a user in house or on a desktop. Applications are now created with a variety of components held together with APIs and distributed over multiple servers, databases, and services coming together only when it reaches the user’s browser/device. The exercise is no longer a controlled one, but is highly distributed, involving third parties and many moving parts.
This means a couple of things when trying to monitor the application. It’s complex and you need to be able to see each part.It is important to look at the end result first- to look at the performance from the end user’s perspective because that is the only time the application comes together.
Because this is such an important and complicated problem, there exists a large number of vendors all claiming to provide a solution at a variety of price points. If you don’t understand what the various techniques are and what piece of the problem they solve, it can be overwhelming to wade through the offerings to find the right solution.
There are two main techniques used to monitor applications: Synthetic and Real-User Monitoring
Synthetic monitoring, also called directed or active monitoring, and real user monitoring also called passive monitoring; with each method there can be variations in the specifics of performing the task. Synthetic monitoring means that a script is used to create activity that is monitored- the activity can be anything from a simple ping to determine if a server is up, to an emulated user transaction which uses a real browser.
Real monitoring is a technique to collect the data coming in from real user transactions so what is monitored is only what actual users are doing. Simple synthetic monitoring, such as up/down monitoring or partial transaction monitoring can’t provide a view into the impact on users or the performance of the system. Real monitoring can show you what is happening to users, but the problem is that if a user isn’t using the system- then you are not monitoring it.
Offerings range from tools that simply ping a server to solutions that drive browsers to those that look at a complete end-to-end transactions. Prices range from free to many thousands of dollars.
So what can synthetic monitoring do for you ?
Synthetic monitoring lets you find problems before your customers do. If the right techniques are employed, synthetic monitoring can provide a view from the same perspective as end users, to tell you what the performance is – and whether customers will be satisfied with the experience.
This means that you can see the performance of your applications and APIs before launching them or at 3am after applying changes, as well as during peak times. A fully featured synthetic monitoring system will provide performance measurements from the browser, measurements such as first paint time, above the fold load times and specific object load times.
Those granular measurements are what tell you specifically what users will see-and how long until they see it, i.e. what the performance is of your applications. The right system will run tests that emulate the users so closely that the only difference, between a real live customer and the test, is that the navigational path of the test doesn’t vary. Using this method provides a baseline for performance and therefore a basis to understand if there is a problem.
Looking at a performance problem with synthetic monitoring means shorter MTTR. This is because you understand the test being run and can therefore more easily reproduce issues and study them.
The top 7 reasons why you need synthetic monitoring?
Find and fix issues before they impact your end users
Synthetic monitoring helps you emulate user interactions and run them as tests from global monitoring locations or from behind your firewall. Synthetic monitoring proactively watches over your APIs, websites, web, mobile and SaaS applications, even during the low-traffic periods, and alerts your operations team in case of performance degradation or availability issues. So you get enough bandwidth to identify the problem, engage subject matter experts, find the root cause and fix issues before they impact the end users.
Baselining and Benchmarking
Synthetic monitoring gives you the ability to monitor your APIs and applications at frequency and location(s) of your choice, at all times. Over time, this monitoring data can be used for baselining your application’s performance, identifying areas of improvement and developing performance improvement strategies. You can also use synthetic monitoring to benchmark your applications availability and performance with your historic self or against competitors.
Prepare for the peak traffic season or a new market
Synthetic monitoring gives you a unique ability to monitor the area of your website or application which doesn’t have real user traffic yet. Imagine a new marketing campaign driving traffic to a new area of the application. Synthetic monitoring allows you to proactively simulate traffic to that area and help you ensure availability and performance. The other use case is when you are launching your services in a new geography. Synthetic monitoring enables you to check your applications performance from that geography and address performance issues, if any, before your real end users encounter them
Monitor complex transactions and business processes
Only checking availability and uptime of your APIs and applications is not sufficient when you are striving to deliver a high quality application performance. Synthetic monitoring allows you to emulate business processes or user transactions such as logging in, searching, filling form, adding items to cart and check out etc. from different geographies, and monitor their performance. You can then compare performance stats between geographies and steps in the transactions and formulate your performance improvement plans.
Measure and Adhere to SLAs
Service level agreements are critical to modern business. No matter what side of the SLA you are, measuring and adhering to the agreed upon level of service is beneficial for both client and vendor parties. For vendors, synthetic monitoring helps understand the availability and performance limitations of the application better. Armed with this data, vendors can set up realistic service level objectives and avoid unforeseen penalties.
Hold your 3rd party vendors accountable
Modern applications depend on multiple 3rd party components for functionality and data. The most common 3rd party integrations are CDNs, payment processing solutions, site search and recommendations plugins, business intelligence and analytics solutions etc. Synthetic monitoring enables the consumers of such 3rd party services to monitor service level objectives, performance degradations and unavailability incidents to hold the vendors accountable.
Test from the end users perspective
By monitoring your website or applications at the real browser level, where all the dynamic components of your applications come together, synthetic monitoring enables you to measure the true end user experience. The monitors are run from different geographical locations, different browsers running on real internet service providers and devices. Such realistic monitoring provides insight into response time components and the end user experience metrics such as page load, DOM load, first paint and above the fold. By testing your websites and applications from the end users perspective, you can be ready for all diverse user scenarios.