By Joe Yeager
Splunk Synthetic Monitoring’s new Business Transaction Monitoring feature is the next evolution of synthetic transaction monitoring, where you can mark the steps within a transaction as a part of each business flow, and monitor the performance of each business transaction independently. Let’s first take a step back and understand how we got here.
What is Availability Monitoring?
In the past, businesses monitored whether websites were up or down – basic availability monitoring. If a website was up, that was good. If it was down, that was bad. As time went on businesses realized that monitoring needed to be more nuanced: if a website did not load in a certain amount of time, it didn’t matter whether it was officially up or down, users were not sticking around – performance monitoring via synthetic monitoring was born. Synthetic monitoring is the process of using test agents to visit a website to determine whether it is available and performs well.
What is Synthetic Transaction Monitoring?
All was good in the world until it was realized that a webpage was usually online, but oftentimes if a user attempted to progress through a flow, something along the way was broken. Synthetic monitoring evolved into synthetic transaction monitoring, to monitor the flow through an application to ensure a full transaction was available.
And then, of course, it became important to understand whether that flow was performing well, since if a user could not get through the flow in a timely fashion, they would bounce and go elsewhere. So performance was layered on top.
Why Business Transaction Monitoring?
Now we are reaching a point where many users of Splunk Synthetic Monitoring and other tools are wanting to break up these complex step-by-step flows into a group, so they can monitor part of a transaction. These steps apply to different areas of their business, such as login, add to cart, checkout, etc. and each one of these business transactions need to be monitored independently. Business Transaction Monitoring is born.
As the process to build web applications morphs from multi-page apps to single page apps, so too does the process of scripting. In the past, scripted steps focused on individual pages and would often require going through multiple pages in order to complete a flow. Now, with a modern application, the flow may only go through perhaps only 1 page to complete the entire transaction. This script would have multiple steps grouped logically into the selecting, picking, paying, and confirming transactions.
Why does Business Transaction Monitoring matter?
Once you group a set of steps into a business transaction, you can answer these type of questions:
- How long would it take to go through this process?
- What was the customer experience like? (using filmstrips and videos)
- Where are my performance bottlenecks across this business transaction? (using waterfalls)
- Can you alert me if there are any performance issues with this business transaction?
These questions are not answered by looking at the whole script, since the entire script can be long and cross many different parts of the application. Plus, there may be multiple different engineering teams that work on different parts of the application, and only certain teams want to be alerted to issues about their part of the application flow.
An Example Application for Business Transaction Monitoring
Spend a few seconds looking over the steps of the example below from a fairly normal e-commerce flow.
Adding an item to the cart and checking out takes place over multiple steps, many of which navigate to a new page. Therefore, looking at page-level metrics will only give you one perspective on the transaction, requiring you to sum the individual page metrics. Looking at graphs of traditional “page -oriented” metrics, it easy to answer the question “What is Speed Index of /view-cart, but its hard to answer the business-oriented question “How long does it take to add an item to my cart? Is that getting better or worse?” This is how business transactions helps.
Here is a graph and we can see that “Adding to Cart” is about the same time as “Checkout”, but “Search for Product” is much slower. Splunk Synthetic Monitoring allows you to not only break out each business transaction separately, but to filter on only the parts of the transaction that matter to you.
We have seen that grouping a set of actions in a flow into a business transaction, and measuring, trending, and alerting on the performance of that business transaction is a new and valuable way to approach performance monitoring. When you are looking for a new performance solution, or looking for ways to get more business value of an existing tool, make sure that Business Transactions are a key capability.