Agents are a common mechanism for APM products to gather data about application performance, and many products require them. Agents provide deep visibility into application code problems and are essential for detecting performance problems resulting from the application itself. In our recent survey, 64% of respondents use agents, which is about the same as in 2009.
However, agents can also be problematic. They can affect the application itself because they reside directly on the system with the application and must use system resources to operate. Agents also place a burden on IT operations because they have to be installed, monitored, and patched.
While agents can measure performance on a local system, APM products also need to measure the response time of a specific application transaction across the infrastructure. Vendors often collect this data via synthetic transaction polling.
Synthetic transactions track application performance from the perspective of a "user," but they're entirely automated so that no human has to sit in front of a computer and test the app over and over. Synthetic transactions don't require agents. Instead, the transaction server resides on your network, simulates a user request, and logs the performance results. Testing intervals are typically set at around five minutes.
Synthetic transactions are very useful for testing public cloud environments where your IT organization may not be able to deploy other instrumentation. Synthetic transactions are simple to deploy, generally inexpensive, and easy to maintain. In our survey, 39% of respondents use synthetic transactions for data collection, putting it at No. 2.
On the downside, synthetic transactions may place an additional load on the application being monitored. You may also need to deploy multiple transaction servers to capture the full spectrum of how users access and interact with an application. In addition, they're not ideal for pinpointing root causes of application problems, because they lack the fine detail you can get from agents and other methods. Finally, you may need to adjust your application if you use synthetic transactions--for example, if you have an e-commerce site and you simulate ordering a DVD, you don't want to actually ship the DVD.