learn

The guide to synthetic monitoring

Overview of Synthetic Monitoring

Synthetic monitoring (also known as active monitoring or active testing) is a proactive monitoring methodology based on emulating the behavior of real users. Synthetic monitoring solutions robotically generate user transactions on demand then analyze the response of the system under monitoring.

Active monitoring allows administrators to detect availability and performance issues on their websites or applications without waiting for a real user to be impacted by a system outage. This greatly reduces the risk of poor digital user experience. As a result, synthetic monitoring has become one of the most critical components of observability and digital experience monitoring.

To help you better understand synthetic monitoring, in this article, we will cover:

  • The key functionality of synthetic monitoring and its role in observability.
  • Core features and functionality of synthetic monitoring tools.
  • Best practices for choosing and implementing a synthetic monitoring tool.

{{banner-16="/design/banners"}}

Synthetic monitoring and its key functionality

To conceptualize how synthetic monitoring works, let’s consider an example of a typical online store.

A successful customer journey in this online store might look something like this:

1) Opening the main page of the store.

2) Searching for a product.

3) Adding this product to the cart.

4) Creating orders and processing payments.

5) Receiving order notification.

Using synthetic monitoring, an administrator can set up an automated test case that will execute this journey step by step. The tool will follow a script while measuring the response of the online store. Ultimately, the data gathered will enable you to answer the following questions:

1) Is the store's website accessible and fast enough?

2) Is the product search engine working?

3) Is the function of adding items to the cart executing correctly?

4) Are the checkout features performing?

5) Is the payment service available?

6) Is the notification service functioning?

7) Are DNS, CDN, and network connectivity functioning correctly?

Because synthetic monitoring is highly extensible, you can get answers to these and many other user experience questions.

You can also isolate specific online store features (such as viewing the product catalog, canceling an order, removing items from a shopping cart, etc.) You can then check each element with one script. Synthetic monitoring also provides the option to check multiple functions at once with a single script.

A synthetic test is successful only if all of the relevant front-end application components (JavaScript, HTML) and backend infrastructure (database, application messaging) work correctly. Additionally, a successful test requires that all essential services - such as Domain Name Service (DNS), Content Delivery Network (CDN), local internet service provider, and backbone internet service provider - function as reliably as expected.

{{banner-17="/design/banners"}}

Synthetic monitoring tools features and functionality

Now that you know the basics of synthetic monitoring, we can look at the core features and functionality. The table below summarizes primary synthetic monitoring functionality and modules, and the following sections explain them in-depth.

Engine

An advanced synthetic monitoring tool allows configuring monitoring scenarios of different types. The monitoring service must support multiple client types and test different path stages between users and the application backend.

Modern web applications adapt to the user’s device (such as desktop, mobile), browser (Safari, Chrome, Firefox, etc.), the screen size (for example, high-resolution desktop monitor, iPhone, iPad, Android), and aspect ratio (for instance, a tablet held vertically or horizontally). Mobile apps require specialized synthetic monitoring since they don’t rely on standard mobile browsers.

Combining different types of tests improves the diagnosis of the root cause of potential problems by triangulation. Every application requires a stable and performing domain name service (DNS), without which users can’t access the website. The website’s performance is dependent on the use and speed of a content delivery network (CDN). Separately testing each of these services helps establish performance baselines for websites or applications and pinpoint a bottleneck during a peak usage window - when it matters most - or alert the administrator of an outage.

{{banner-18="/design/banners"}}

Analytics and reporting

Perhaps one of the most significant benefits of using synthetic monitoring is the ability to calculate accurate metrics for your SLA. Implementing this in the classical monitoring paradigm is challenging because the impact of a particular technical problem on the business functionality is not always clear. Synthetic monitoring checks business functionality directly, so we can say with confidence whether it works or not.

Another great feature is the storage and analysis of historical data. This feature is handy when deploying updates to an application. With this capability, you can track the impact of updates on the business functionality of your application. The data aggregation granularity and the algorithms used to process the raw data often distinguish between tools that identify an issue or those that miss it.

An advanced synthetic monitoring tool should have the ability to visualize data. It, therefore, needs features for creating and configuring dashboards based on the data it collects. The histogram below is an example of such a visualization.

Histogram showing page load times clustered around the 3 – 5 seconds.

Reachability

Another important key feature of synthetic monitoring is the ability to perform checks from different locations. Testing reachability identifies bottlenecks in a site or application and helps improve accessibility in critical regions.

The effectiveness of synthetic monitoring depends directly on the number and location of its global test points. New entrants in the market deploy points of presence on public cloud platforms because it’s fast and easy. However, a comprehensive monitoring platform must utilize test points with hundreds of global and regional service providers, including backbone, cloud, wireless, and last-mile locations. The goal is to closely emulate actual end user behavior.

For example, a stock trading application service may be reachable and fast from a public cloud provider’s data center locations. While it’s fast from inside of a data center, it may be slow when measured from the vantage point of a mobile user using a particular carrier’s wireless network. This requirement for simultaneously testing digital experiences from multiple vantage points requires hundreds of test points around the world.

Another valuable synthetic monitoring feature is the option to deploy customized test sites. For example, a customer may choose to deploy a test point within their own data center or an office location to provide a set of proprietary triangulation vantage points that help in rapid troubleshooting.

{{banner-19="/design/banners"}}

Standard functionality

A synthetic monitoring tool’s functionality must include standard features applicable to all types of tests. For example, its functionality must include the ability to set a flexible interval for test execution, setting up data rotation, launching a test on-demand, logging, recording alongside other configuration and data manipulation tasks.

Additional important features include a Script Editor, which allows editing scripts recorded in automatic mode, and a Custom Scripts Module, which provides the ability to create and implement complex code and monitor custom protocols or endpoints.

Administration

This group of functionality includes the following features:

  • Security: A synthetic monitoring tool must ensure a secure platform with encryption for critical business data, such as credentials used in scenarios. It should be possible to flexibly configure access rights to the platform based on the role/team model.
  • Notification Channels: All tools support the standard way of notification via email. However, it is convenient to integrate with various collaboration platforms, such as PagerDuty, Opsgenie, Slack, or even Telegram, with modern communication trends. Therefore, tools that have a native implementation of interaction with these channels gain an advantage over competitors.
  • API: Interface for setting up integration with other products used in a company.
  • Maintenance Periods/Schedules: Allows administrators to suspend monitoring during periods agreed by the business for maintenance or in moments when the service does not work according to its schedule. In this way, you can avoid false alerts.
  • Webhooks: This allows the solution to act as a client for the external APIs, generating or transmitting a message when some event occurs.
  • Import/Export feature: Automates configuration, backup creation, and report generation.
  • Customer Support: The technical support’s speed and quality are critical, as is the ability to view the current status (self-check) on the platform or receive timely notifications of status changes.

{{banner-3="/design/banners"}}

Best practices for choosing and implementing a synthetic monitoring tool

Here are some essential tips on how to select and implement the best synthetic monitoring tool:

1) Prepare a plan of transactions you want to cover with synthetic monitoring and analyze the plan carefully.

Pay special attention to scenarios where additional actions or devices are required. The most common example is two-factor authentication (2FA). Ideally, a synthetic monitoring tool should be able to pass 2FA. Otherwise, you’ll have to disable 2FA for the test accounts.

2) Review your customers and their behavior. Where are they from? What devices do they use?

This will help you determine which features of a synthetic monitoring tool are most critical.

3) Customize your scenarios to minimize false positives.

Use smart thresholds and multiple locations. You might need to configure different settings depending on schedules.

4) Use a synthetic monitoring tool in your production and test environments.

Testing in staging and QA environments provides baseline data and enables you to catch problems before they reach production. Continuous testing in productions allows you to quickly identify performance problems when the system detects performance deviations from your baseline.

5) Expand and integrate your synthetic monitoring solution throughout your business.

As much as practical, expand synthetic monitoring into other monitoring or accounting systems in your organization. Share it with the management and increase the transparency of the quality of your IT products/services for all stakeholders.

The best synthetic monitoring tools provide APIs that allow data integrations with other observability tools like APM. Make sure your monitoring tool allows easy integrations with your existing tool stack.

{{banner-sre="/design/banners"}}

Conclusion

In today’s competitive landscape, businesses must monitor in a way that allows them to find out about problems before users notice. Synthetic monitoring is the only true proactive monitoring approach and enables a company to improve its monitoring maturity.

A synthetic monitoring approach allows teams to directly and reliably determine how digital user experience can be optimized by removing bottlenecks and inefficiencies from any web application. Synthetic monitoring also significantly contributes to a holistic observability strategy for an enterprise and can dramatically affect the quality of digital services and user experience.

When choosing a synthetic monitoring solution, think broadly and anticipate as many possible scenarios for this solution as you can in advance. Anticipating future needs will allow you to make the right choice for the long term and avoid disruptive tool migrations.

Chapters