Synthetic monitoring is the use of software to simulate user interaction with a given system rather than simply gathering data about real-world transactions.
Synthetic monitoring makes it possible to detect issues so they can be dealt with before they arise with actual users or cause other problems with a system that could hamper performance or availability. The practice is used for many different systems including websites, databases, applications, services and various network components.
Synthetic monitoring is also known as active monitoring. Passive monitoring, in contrast, records data from actual transactions, such as the actions of a website or app user. There are benefits and drawbacks to both methods. On a basic level, passive monitoring identifies problems as they occur but doesn't enable a comprehensive view of how a system is functioning, and synthetic monitoring can enable an end-to-end view of a system's behavior but can increase overhead and affect system performance as a result.
Passive end user performance monitoring is useful for troubleshooting issues because the data gathered can inform an administrator about the precise conditions at the time of an event, and those conditions might not be replicated exactly in synthetic monitoring. A passive monitoring product for apps might track business transactions and capture data about errors, crashes, network requests and other metrics. That information can guide development to help create a better future user experience.
A synthetic monitoring tool, on the other hand, might run behavioral scripts that follow all paths that a user would be likely to take. These scripts mimic typical user activities and can help make predictions about how a new component of the system will perform. Many application performance monitoring (APM) tools include both passive and active monitoring modules.