Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Best Practices for Synthetic Monitoring

DZone's Guide to

Best Practices for Synthetic Monitoring

Synthetic monitoring is a way to see the performance of SaaS and web apps and networks using scripting to emulate the paths that end users take as they experience an app.

· Performance Zone
Free Resource

Synthetic monitoring provides IT staff with performance context for business-critical SaaS and web apps. Except for company-wide deployments, IT staff rarely has cause to interact with SaaS apps until something goes wrong. Synthetic monitoring helps you in IT to understand the baseline performance over time and match that expectation with the issue you heard about from users.

Many synthetic providers offer basic availability checks as the first line of alerting for these apps, but in our modern world, apps rarely go down. Rather, app performance will often slow due to myriad factors including local networks, wide area networks, and congestion. While some SaaS providers will underprovision apps, this occurs less and less often in the auto-scaling world of AWS, Azure, and Google Cloud. Availability checks also fail because IT teams target the homepage of a company instead of the login page of the app. Additionally, the login page is often a poor substitute for a script that actually logs into the app to be monitored and loads data like an actual user would.

Best Practices for Synthetic Monitoring

There are a few ways to find the right synthetics setup for your business. IT teams should consider these details when configuring a synthetic monitoring solution.

Do a Ticket Analysis

Take a look at the past month or quarter of tickets and analyze which apps were the most troublesome. Whether apps have unreproducible issues, have common performance problems, or are high-profile, you’ll want to have a list ready for synthetic monitoring.

Find the Expensive Apps

When you are paying top dollar for an app, a bad user experience can spell disaster for productivity or confidence in the app. Identifying these apps up front and proactively monitoring to them can help mitigate these issues.

Consider the App’s Footprint

Performance issues with apps like G Suite or Office 365 likely affect your entire employee base. You have to monitor them appropriately. Availability checks on the Office 365 login screen aren’t going to cut it. Each of these massive apps is actually an ecosystem of apps that perform independently and are most often hosted on different clusters of machines within the same location.

Set Trackable Goals

Setting up a synthetic monitoring solution can seem like a set-it-and-forget-it endeavor. While that’s mostly true, you’ll need to do some legwork up front to determine what you need out of synthetic monitoring. Often synthetic scripts are used to show the normal performance of an app over time so that IT teams can alert on deviations and take action instead of waiting for user complaints. Taking action, however, requires more information. Network context is extremely important for monitoring SaaS and web apps because while apps traverse between source and user, they travel the LAN and WAN with routing that changes dynamically. Correlating the route, app and end user at the time of the incident is crucial to understanding the root cause of an issue. 

The goal of synthetic monitoring should be to closely simulate user interactions so that alert thresholds are triggered when users could conceivably be impacted. This means ignoring the marketing-generated homepage and gateway login screens of applications. Creating more complex scripts is the secret to getting accurate and useful results out of synthetic monitoring. The end result should be the IT Ops team’s ability to solve issues faster. Tracking ticket resolution times for common complaints is a great way to assess your synthetic monitoring success.

Topics:
monitoring ,synthetic monitoring ,performance

Published at DZone with permission of Alec Pinkham, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}