Why Synthetic Monitoring and End-to-End Testing Belong Together
March 21, 2023

Hannes Lenke
Checkly

Share this

Synthetic monitoring is crucial to deploy code with confidence as catching bugs with E2E tests on staging is becoming increasingly difficult. It isn't trivial to provide realistic staging systems, especially because today's apps are intertwined with many third-party APIs.

That's why nowadays, the low-hanging fruit is to set up checks that constantly monitor your production environment from an end-user perspective. This allows you to quickly find and fix issues on production before they become a problem for your customers. However, you need both testing in pre-production and monitoring on production.

Whether e-commerce shops or complex banking setups, systems are becoming increasingly intertwined and also distributed. They do not only rely on internal services but also on many external APIs such as payment APIs. It's nearly impossible to spin up production-like staging systems for these architectures. However, developers are, for many reasons, tasked to ship small pieces of new software numerous times a day. And this requires automation that ensures changes do not introduce bugs and break crucial flows while still delivering at speed and scale.

So on one side, we have complex systems that are nearly impossible to test fully in pre-production, and on the other, we have an increasing need for faster software delivery. These two things are like two trains on the same track heading for a collision. Thankfully, synthetic monitoring is here for the rescue!

But what is testing, and what is synthetic monitoring?

Let's look at synthetic monitoring and testing and what both could learn from each other. I'm sure ChatGPT can help us to define both terms:

Synthetic Monitoring

Synthetic monitoring tests and examines websites, applications, or services to ensure all components, including APIs, function as expected. It helps identify potential issues before they become a problem for the user or connected systems. It can be done from worldwide distributed remote locations. In simple terms, synthetic monitoring is having automated scripts checking your assets constantly to see if they are working correctly.

E2E testing

E2E testing helps to ensure the complete flow of an application or website works as expected before it gets deployed to production. It involves running tests to ensure all components work correctly from start to finish, as a real user would. In other words, it's like having an automated virtual tester check your web app to see if it works how it should.

Synthetics + Testing

In theory, synthetic monitoring and E2E testing are quite similar. While monitoring is meant to test your app on production constantly, E2E testing is intended to catch bugs before you deploy. The main difference in the past was that quality assurance (QA) teams performed testing while monitoring was the responsibility of operations (OPS), so the responsibility was split between two siloed teams. Not anymore!

Testing matured during the last decade from proprietary algorithms to open-source-based code hosted in your repository next to your application code. Today, cross-functional DevOps teams continuously run automated E2E tests in their CI/CD pipeline instead of isolated QA teams testing new versions of your app for three months before release.

Synthetic monitoring is also evolving similarly. It follows the transition E2E testing has already made: From proprietary scripts living in closed monitoring platforms to open-source-based scripts embedded in your repository. Monitoring is shifting left, as testing did, and is becoming integral to your developer's pipeline. The industry should encourage and enable developers to use the same scripts for pre-production tests and production monitoring. Doing so will blur the lines between E2E testing and synthetic monitoring.

So what does modern synthetic monitoring look like? Monitoring as code (MaC) is the next evolution of synthetic monitoring. To be successful in a MaC approach, we need to look at three essential pillars that make up the MaC concept: code, test, and deploy:

1. Code: Automated tests are defined as code and live in a repository, often close to your application code. When I write code, I mean code, not just configuration files saved in a repository. With that approach, MaC enables flexibility and programmability, allowing you to test your backend and UI by supporting complex API and browser checks.

2. Test: Synthetic monitoring was traditionally meant to run on production only. Now, checks as code enable us to run all or some of these checks locally and in a CI/CD flow to be tested on staging before a new version gets deployed. Monitoring is becoming testing, and testing is becoming monitoring, blurring the lines between the two.

3. Deploy: The main difference between testing and monitoring is scheduling. MaC enables us to schedule our tests, executing these constantly, 24/7, in distributed remote locations worldwide. In other words, your tests are deployable. In addition, deploying your tests via your CI/CD process allows monitors to be updated with application code changes.

Synthetic monitoring has been evolving quickly during the last months. We see many exciting approaches to enable developers to ensure that their apps are reliable and resilient. Monitoring as code is the only logical next step, as it has many advantages and enables you to reuse your tests.

Hannes Lenke is CEO and Co-Founder of Checkly
Share this

The Latest

May 25, 2023

Developers need a tool that can be portable and vendor agnostic, given the advent of microservices. It may be clear an issue is occurring; what may not be clear is if it's part of a distributed system or the app itself. Enter OpenTelemetry, commonly referred to as OTel, an open-source framework that provides a standardized way of collecting and exporting telemetry data (logs, metrics, and traces) from cloud-native software ...

May 24, 2023

As SLOs grow in popularity their usage is becoming more mature. For example, 82% of respondents intend to increase their use of SLOs, and 96% have mapped SLOs directly to their business operations or already have a plan to, according to The State of Service Level Objectives 2023 from Nobl9 ...

May 23, 2023

Observability has matured beyond its early adopter position and is now foundational for modern enterprises to achieve full visibility into today's complex technology environments, according to The State of Observability 2023, a report released by Splunk in collaboration with Enterprise Strategy Group ...

May 22, 2023

Before network engineers even begin the automation process, they tend to start with preconceived notions that oftentimes, if acted upon, can hinder the process. To prevent that from happening, it's important to identify and dispel a few common misconceptions currently out there and how networking teams can overcome them. So, let's address the three most common network automation myths ...

May 18, 2023

Many IT organizations apply AI/ML and AIOps technology across domains, correlating insights from the various layers of IT infrastructure and operations. However, Enterprise Management Associates (EMA) has observed significant interest in applying these AI technologies narrowly to network management, according to a new research report, titled AI-Driven Networks: Leveling Up Network Management with AI/ML and AIOps ...

May 17, 2023

When it comes to system outages, AIOps solutions with the right foundation can help reduce the blame game so the right teams can spend valuable time restoring the impacted services rather than improving their MTTI score (mean time to innocence). In fact, much of today's innovation around ChatGPT-style algorithms can be used to significantly improve the triage process and user experience ...

May 16, 2023

Gartner identified the top 10 data and analytics (D&A) trends for 2023 that can guide D&A leaders to create new sources of value by anticipating change and transforming extreme uncertainty into new business opportunities ...

May 15, 2023

The only way for companies to stay competitive is to modernize applications, yet there's no denying that bringing apps into the modern era can be challenging ... Let's look at a few ways to modernize applications and consider what new obstacles and opportunities 2023 presents ...

May 11, 2023
Applications can be subjected to high traffic on certain days, which, if not taken into account, can lead to unpredictable outcomes and customer dissatisfaction. These may include slow loading speeds, downtime, and unpredictable outcomes, among others ... Hence, applications must be tested for load thresholds to improve performance. Businesses that ignore load performance testing and fail to continually scale these applications leave themselves open to service outages, customer dissatisfaction, and monetary losses ...
May 10, 2023

As online penetration grows, retailers' profits are shrinking — with the cost of serving customers anytime, anywhere, at any speed not bringing in enough topline growth to best monetize even existing investments in technology, systems, infrastructure, and people, let alone new investments, according to Digital-First Retail: Turning Profit Destruction into Customer and Shareholder Value, a new report from AlixPartners and World Retail Congress ...