What is Synthetic Monitoring?
How Does Synthetic Monitoring Work?Active vs. Passive Monitoring: Synthetic and Real User MonitoringThe Goal of Synthetic MonitoringTypes of Synthetic Monitoring: Use CasesWeb/Application Performance MonitoringPage Load TestingTransaction MonitoringAPI MonitoringNetwork and Routing TestsAutonomous (Automated) TestingDNS Server MonitoringGeographic Distribution of Synthetic TestsWhy Synthetic Monitoring is ImportantPerformance ValidationEstablish Baseline BenchmarksUser-specific TestingCost Considerations in Synthetic Monitoring ToolsAbout Kentik’s Synthetic Monitoring Solution
Synthetic monitoring is a proactive approach to assessing the performance and availability of network-accessible resources by simulating user interactions. This method involves generating virtual user requests to imitate real-life user behaviors, enabling the measurement of vital performance metrics, such as response time and resource availability. Using synthetic monitoring, businesses gain valuable insights into their applications’ uptime and overall performance, allowing IT development and operations teams to optimize critical business transactions and enhance user experiences.
Increasingly, modern Network Performance Monitoring solutions are incorporating synthetic monitoring features, which are traditionally associated with a process/market called “Digital Experience Monitoring”. In contrast to flow or packet capture (which we might characterize as passive forms of monitoring), synthetic monitoring is a means of proactively tracking the performance and health of networks, applications, and services.
How Does Synthetic Monitoring Work?
Synthetic monitoring works by creating and executing scripted or pre-defined tests that simulate real user interactions with an application or service. This process involves:
- Developing test scripts: Design scripts that mimic common user behaviors and actions, such as clicking buttons, filling out forms, or navigating the application.
- Generating traffic types: Simulate various network conditions by generating diverse traffic types, including network, DNS, HTTP, and web traffic.
- Targeting specific resources: Direct the generated traffic to particular targets, such as IP addresses, servers, hosts, or web pages.
- Measuring performance metrics: Collect data on response times, availability, and other relevant metrics during the test.
- Establishing KPIs: Analyze the collected data to build key performance indicators (KPIs) for monitoring and optimizing the application or service’s performance.
Synthetic tests are automated and periodic, performed at regular intervals to ensure continuous monitoring of application or service performance. Advanced synthetic monitoring solutions, like Kentik Synthetics, can execute tests at sub-one-minute intervals for more accurate insights and real-time performance monitoring.
When researching synthetic monitoring, the related topic of passive “Real User Monitoring” (RUM) will likely turn up. Real User Monitoring involves capturing and analyzing each user transaction/interaction with an application. The idea is to track and monitor the actual usage of an application and record what happened (after the fact). In contrast to synthetic monitoring, RUM is a form of passive monitoring.
Active vs. Passive Monitoring: Synthetic and Real User Monitoring
It’s not a matter of which is better. It depends on what you’re trying to accomplish. Here are a couple of short definitions for both of these terms as they pertain to monitoring:
Active: A proactive test simulates a user by accessing a resource, waiting for a response, and interpreting any results from the communication. Synthetic monitoring is a form of active monitoring. A network management station that polls devices on a network is also an active monitor.
Passive: Passive monitoring reactively monitors actual/authentic user interactions with a resource and then measures and interprets the communications. Real user monitoring is a form of passive monitoring. Placing a packet analyzer on the network and observing traffic is also a form of passive monitoring.
Both active and passive monitoring are helpful and, while they are alternatives, combining both enables improvements and optimizations in the end-user digital experience.
(For a more detailed comparison of Synthetic Monitoring and Real User Monitoring, see “Synthetic Monitoring vs Real User Monitoring”.)
The Goal of Synthetic Monitoring
On the surface, the goal of active synthetic monitoring is to ensure that an application or service (e.g., web page, DNS) is up and responding to actual end users in a timely manner. It can answer questions such as:
- Is the DNS responding to end users in under 50 milliseconds?
- Is the website up and loading in under 1500 milliseconds?
- Are shopping cart transactions working?
- Are API endpoints available and responding in the expected manner?
To accomplish this, the synthetic transaction monitor generally measures two things:
- The availability of the resource over time (e.g., 99.999% up-time)
- The responsiveness in milliseconds of the resource over time
This reliable routine operation can provide more details than the above implies. Trending and alerting also play significant roles in this topic. These details are below. (See also: “What is Synthetic Transaction Monitoring?” for more detail about monitoring specific web transactions that result from user actions in a site or web application.)
Types of Synthetic Monitoring: Use Cases
Synthetic monitoring solutions (such as Kentik Synthetics) and the synthetic tests they enable have a wide variety of use cases—including network performance monitoring, web application monitoring, and monitoring/improving user experience.
Web/Application Performance Monitoring
Synthetic monitoring enables web application developers and operations professionals to better understand web application availability, API performance, and user experience. The availability and proper operation of GET, HEAD, PATCH, POST, and PUT methods for various API endpoints can be ensured using HTTP-based synthetic tests. The availability of an endpoint and its HTTP response status codes (e.g., ensuring that authentication is working as expected) can be monitored. Other metrics such as average time to last byte, size of the response, etc. can also be observed.
Additionally, synthetic tests can be used to analyze and alert on application/network health and performance metrics such as ping latency, jitter, packet loss, HTTP latency and certificate expiry. Solutions like Kentik also allow automatically running traceroute tests to understand metrics such as the maximum number of hops between various network destinations.
Page Load Testing
Page load speed is an essential component of user experience in web applications. Synthetic tests can be used to automatically and periodically test load times for various pages in a web application. These tests can provide a granular breakdown of how every component on the page is loading. Using that information, web app developers can easily track down precisely what’s impacting a site’s performance—whether it’s a site hosted on-premises, in the cloud, or by a SaaS provider.
In Kentik, these tests analyze a full browser page load using Headless Chromium run by any number of Kentik app agents, which then return detailed statistics about how the page loaded—showing the status codes and load times for various page components as well as times for initial response, navigation, domain lookup, etc.
For a short video overview of how page load testing works, see “Solving Slow Web Applications with the Kentik Synthetics Page Load Test“.
In addition to testing the basic response/loading behavior of a website, network service, or application, synthetic monitoring can simulate a user’s interactions with a web application. A “transaction” in this context is a series of actions that a user might take (e.g., logging in, searching for some product, adding that product to a shopping cart, and checking out).
After creating a clickpath script or recording a clickpath that represents the transaction, remote agents can replay that script (simulating the user requests) to test the performance and availability of the various steps and collect performance data about the transaction.
For example, in Kentik, such tests are a series of actions that are driven by a Google Puppeteer script (created using the Recorder tab in Chrome Developer Tools) that is executed by an agent running Headless Chromium. The results of such tests include the health status and total transaction time for each agent from which tests are being run and can show any screenshots that the script creator specified as actions in the script.
Learn more about this topic in our article, “What is Synthetic Transaction Monitoring?”
Though it’s just a special case of web application monitoring, it’s worth mentioning that synthetic monitoring can be used to automatically test the availability and proper operation of any REST API (a collection of API endpoints) or an individual API endpoint. As in web performance monitoring, the availability and proper operation of GET, HEAD, PATCH, POST, PUT methods for various API endpoints can be tested. In Kentik Synthetics, ping, traceroute, and BGP (border gateway protocol) data can also be collected.
Network and Routing Tests
Synthetic monitoring can also be used to monitor network performance to IP addresses, hostnames, and mission-critical SaaS services or to set up tests between agents themselves.
Additionally, solutions like Kentik Synthetics can monitor BGP prefixes and reachability and automatically notify network operators about potential route leaks and BGP route hijacks.
Autonomous (Automated) Testing
A unique feature in Kentik’s synthetic monitoring solution allows for “autonomous testing”, whereby the platform intelligently leverages actual network traffic data (provided by data sources such as netFlow) to automatically generate tests towards the most frequent network sources and destinations.
By analyzing flow records along with correlated network traffic data (such as SNMP, BGP, GeoIP, etc.), the platform can automatically select IP addresses to test from or toward. Types of tests that can be automatically configured include ASN tests, CDN tests, and tests to and from various geographic locations.
DNS Server Monitoring
Synthetic monitoring can also be used to measure the availability and responsiveness of DNS Servers or to verify the DNSSEC keychain. In this application, tests report on the performance of one or more DNS servers associated with a hostname, showing the address resolution time and the resulting IP address provided by those servers.
Geographic Distribution of Synthetic Tests
Connections to online resources might originate from anywhere in the world. This means we can’t monitor a cloud-hosted resource for availability and responsiveness from just a single location. Synthetic tests typically measure from multiple, geographically diverse locations, using testing agents located in different datacenters worldwide.
For example, Kentik has built out a global network of synthetic testing agents that customers use to verify performance levels of all major public or private cloud-based applications and SaaS applications. These agents are located inside Amazon Web Services, Google Cloud Platform, Microsoft Azure, Alibaba Cloud, and IBM Clouds. Additionally, customers can easily install custom agents in their own geographically-diverse data centers.
With numerous network and infrastructure elements that need to be tested and a user population that is geographically dispersed, the number of testing combinations and permutations can grow to be very large. As a result, the configuration of synthetic tests can become complex and time-consuming when, for example, you want to test between multiple cloud regions (such as AWS regions). See also: “Using Synthetics for Your Cloud Monitoring Needs” and “A Guide to Cloud Monitoring Through Synthetic Testing”.
To manage this complex environment, vendors have developed tools that make implementing and monitoring synthetic tests possible on a large scale. In the following video, Kentik Synthetics expert, Anil Murty, demonstrates the easy configuration of a synthetic testing “mesh” between a variety of cloud services:
This video is a brief excerpt from “How to Continuously Monitor Inter- and Intra-Cloud Performance”—you can watch the entire presentation here.
Why Synthetic Monitoring is Important
Reputation and service level agreement validation are two big reasons why staying ahead of performance issues is a must. It’s straightforward—poor connections can lead to unhappy customers and declining revenue. The sooner NetOps can detect an availability issue, the faster they can react.
Many users today see excessive application latency as a form of outage. Understanding and monitoring when a critical service drops below a minimum level of performance is paramount. A global network of agents that allows for omnidirectional synthetic transaction monitoring is one of the best ways to ensure that all users, regardless of physical location, are experiencing an acceptable level of service.
Some of the most prominent benefits of synthetic monitoring include:
Using synthetic monitoring, organizations can continuously validate the performance of network, web, and application components, track changes over time, and be alerted to anomalies or problems before they impact the experience of actual end-users.
Establish Baseline Benchmarks
Continually testing various components of a network or application can establish a baseline for expected behavior under normal conditions. Having set baseline metrics, operations personnel can be alerted when the performance of any particular component drops below an acceptable threshold.
Synthetic monitoring can be used to perform tests from the perspective of specific users by their role (e.g., a logged-in user, a logged-out user, an admin user, etc.) or by geographic location, helping to ensure system performance in a global sense (both literally and metaphorically).
Cost Considerations in Synthetic Monitoring Tools
Synthetic monitoring can be costly due to several reasons:
Scale and Frequency of Testing: The more extensive your infrastructure and the more often you run tests, the higher the cost. Synthetic monitoring involves running simulated user interactions continuously or at regular intervals. The costs can quickly increase if you have numerous web pages, applications, or services and need frequent monitoring.
Location of Monitoring Agents: Monitoring performance from different geographic locations is essential for businesses with a global user base. This usually involves deploying monitoring agents in various regions, which can increase costs.
Complexity of Simulations: Simulated user interactions can range from simple to complex, with the latter requiring more resources. For example, transactional tests that mimic a multi-step process, like completing a purchase on an e-commerce site, are more complex than a simple ping test to check if a site is available.
Data Storage and Analysis: All the data generated by synthetic monitoring needs to be stored, processed, and analyzed. The volume of data can be considerable, especially for large-scale, frequent tests. Depending on the service provider, costs may increase with the amount of data generated.
Tools and Licenses: Some synthetic monitoring tools or platforms charge based on the number of tests or scripts, the number of applications monitored, or the number of users. Costs may also rise with the sophistication of the tool, such as AI-driven analysis or advanced alerting capabilities.
Maintenance and Staff Training: Maintenance costs of the tools, as well as staff training to interpret the results, can also contribute to the overall cost.
Hence, businesses need to find a balance between the cost and their monitoring needs. This is where flexible, scalable solutions like those offered by Kentik can come in handy, providing a predictable pricing structure while allowing comprehensive synthetic monitoring. Kentik’s approach to pricing synthetic monitoring helps mitigate these potential cost hurdles in several ways:
Predictable and Scalable Pricing: Kentik offers simple pricing that allows network teams to run more tests at a lower cost than competing tools. This helps to control the costs related to the scale and frequency of testing.
Automated Cost Management: The Kentik management console automatically calculates the number of credits needed per test and alerts you ahead of time if you may be running out of credits. This feature aids in preventing unexpected costs and helps manage resources efficiently.
Flexible Plans: Kentik Pro and Premier customers receive a substantial number of monthly credits, enabling regular and extensive testing without worrying about additional costs. Should there be a need for more, additional credits are available by purchasing a SyntheticPak.
Comprehensive Solution: Kentik’s solution also includes advanced capabilities such as AI-driven analysis, which can provide more insight and value without necessitating additional investment in multiple tools or licenses.
Kentik’s approach to pricing synthetic monitoring is designed to provide transparency, flexibility, and efficiency, thereby helping to manage and reduce the potential costs associated with synthetic monitoring.
About Kentik’s Synthetic Monitoring Solution
The Kentik Network Observability Cloud offers a modern, SaaS-based approach to digital experience monitoring. In addition, Kentik delivers network performance monitoring and diagnostics that combine flow-based monitoring, cloud network observability, and synthetic monitoring features to enable for proactive monitoring of all types of networks.
Start a free trial to try it yourself. Kentik’s 30-day free trial includes a generous allotment of synthetic testing credits that can be used to perform real-world testing on the applications and services essential to your organization.