Tracetest Monitors: Trace-based testing meets Synthetic Monitoring 🔥
Tags: monitoring, testing, programming, productivity
Published: 2024-06-26 11:42:05

Are you ready to get your mind blown!? 🧠💥

Trace-based synthetic monitoring is here! You can now create “Monitors” for Tracetest tests and test suites.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1fxav1yec82whzzh2n80.png)

Tracetest Monitors is a framework for creating scheduled runs of tests and test suites, and getting alerted when they fail. With native support for webhooks, you can choose how to integrate with you favorite alerting tools!

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nzrz6gaj0aku7e6y22w5.png)

We’re dedicated to user experience and giving customers the easiest way of automating test runs without needing external CI tools. We want to give you the best possible tooling to embrace the “test in production” mindset too! Let’s be honest, we all do it! 😎

> [*Join our demo environment to try it out yourself!!*](https://app.tracetest.io/organizations/ttorg_2179a9cd8ba8dfa5/invites/invite_760904a64b4b9dc9/accept)

## The Problem — Scheduled Testing is Not as Simple as it Sounds

Test observability and trace-based testing has become a staple in the OpenTelemetry community. Having the power of distributed tracing at your fingertips when troubleshooting tests and writing assertions is immense. It’s highly advocated by the OpenTelemetry contributors in the official demo repository. While they, and all our other customers, are rolling their own automation with CI, to get the full benefit of trace-based testing, we’ve noticed it can often be a nuisance.

Configuring automated trace-based testing across multiple environments, using several tests, with a set timeframe of, let’s say, every 15 minutes, is not as simple as it sounds. You’d “just” need a CI tool of sorts, like GitHub Actions, or Jenkins. You’d maybe even settle for “just” creating a Kubernetes Job and defining it to run as a cron.

All of this is not as simple as using the word “just”.

Let’s normalize that “just” is relative and can’t apply the same to me, you, or someone else.

DevOps work like this can get exponentially more complex the more moving parts you introduce. A lot of the time SREs can get overloaded. That’s why shifting left and enabling the entire engineering team to perform synthetic testing in production, and across all your environments, is so powerful.

## The Idea — The Beginning of Synthetic Testing

We introduced the `Automate` tab back in July of 2023 including this [guide about simulating synthetic monitoring with GitHub Actions](https://tracetest.io/blog/github-actions-observability-slack-synthetic-api-tests).

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wnhfgpoahn0lr0dhznqt.png)

Making trace-based synthetic monitoring a reality has been a dream since then. But, waking up from dreams takes you back to reality. Back in July of last year we were hyper-focused on releasing Tracetest Open Beta and making Tracetest widely available for our users as a cloud-based managed platform.

We’ve grown and matured since then. Finally, reaching a point where adding scheduled runs with Monitors has become reality!

## The Solution — Trace-based Synthetic Monitoring

The first-ever native synthetic monitoring tool for trace-based testing is live! Create a Monitor to run tests and test suites on a schedule.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wmaa9gknqpaoy5wqsxl9.png)

Get alerted via webhooks by integrating with your favorite alerting tools.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uoqhosr8ls4hrlw8jg35.png)

Monitors leverage the existing Runs and Run Groups resources in Tracetest and build on top of it by enabling scheduling and alerting. Every Monitor you define will be presented as a Run Group with an additional tag using the specific name of the `Monitor`.  Here you can see a list of Run Groups that include two Run Groups labeled as a `Monitor`.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gcezlf2itciapyz246mx.png)

Selecting the `#c85ea8f8-805d-4064-86ea-1aad2074e9c9` Run Group shows which tests are part of the `Monitor`.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/etb6sv4ff2bbnd2na6kr.png)

Filtering Runs by the `Monitor` tag is also available in the Runs view.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zom5b0oigogecw92s6yi.png)

Releasing Monitors as a Synthetic Monitoring feature has been a long-standing dream, and it has finally arrived. This is the culmination of almost a year of planning and laying the groundwork to launch it for you! Now you can finally get the full benefit of test observability and trace-based testing and easy-to-use test automation for both production and pre-production environments.

## How to Start Using Tracetest Synthetic Monitoring?

Make sure to use Tracetest `v.1.3.1` and above. There are no other requirements. Click on the `Monitors` tab, click `Create` and have fun!

## **What’s Next?**

First and foremost, we welcome your feedback on the initial version of Tracetest Monitors!

We recognize that there are big opportunities for improvement. Ensuring that the features we're developing meet the community's needs is our priority!

Last, but not least, do you want to learn more about Tracetest and what it brings to the table? Check the [docs](https://docs.tracetest.io/examples-tutorials/recipes/running-tracetest-with-lightstep/) and try it out by [signing up](https://app.tracetest.io/) it today!

Also, please feel free to join our [Slack community](https://dub.sh/tracetest-community), give [Tracetest a star on GitHub](https://github.com/kubeshop/tracetest), or schedule a [time to chat 1:1](http://calendly.com/ken-kubeshop/otel-user-interview-w-tracetest).