Moving Beyond Synthetic Monitoring
If you’ve been following the recent financial crisis in Europe, you may have read a headline or two this month about how some European banks failed stress tests.
Without getting too much into the mechanics of the world of high finance, a stress test for a bank is pretty much what it sounds like: an outside organization runs a series of “what if” simulations that tests the institution’s capability to stand on its own should the worst happen.
Synthetic monitoring isn’t about checking out the latest fashions in polyester or rayon; it’s the process of simulating user transactions in an application to get a picture of how that application will respond. Multiple use cases are tossed at the application to prove (or disprove) that it won’t break. It is typically done on web applications by programming a browser with scripts that simulate user interaction.
There’s a definite place for synthetic monitoring in APM: it can be used to establish a baseline performance level before an application goes live on a production website or other deployment infrastructure. Basically, synthetic monitoring is useful for determining if the app’s metaphorical engine will start and at least drive down the road without blowing up.
But there’s a big gap between not blowing up and actually running smoothly. Synthetic monitoring only gets to the big highlights of application monitoring, not the fine details.
For truly complete APM, actual end user experience monitoring is essential, because only a real person will be able to communicate the intangibles to developers and testers. How responsive did the application “feel”? Did the transaction work as expected in a timely manner? What happened when you click the wrong thing?
These are all important questions, and they’re not something that synthetic monitoring can report well. End user monitoring can find all the subtle little bugaboos that can trip up an application’s performance because, frankly, human beings are great at breaking things.
But in this case, it’s a good thing. Knowing how an application can break or slow down when something is incorrectly done is just as important as knowing how it handles when things go right.
Synthetic monitoring has its place in APM, but like everything else in APM, it cannot be relied upon as the singular tool. Business transaction monitoring and end to end monitoring must also be in the mix, to get a complete picture of how an application performs.