Many applications include instrumentation, which refers to an ability to: monitor or measure the application's level of performance, diagnose errors or record information regarding the execution of the application. The instrumentation can consist of application code for monitoring specific components in a system, for example, the code may output logged measurements associated with the performance of a system component to a log repository. An event log is a file (e.g., a table) with entries for events taking place in the execution of an application, such as transactions between a server and users of the application. The entry for each of the transactions (or other application activities) logged in the file is referred to as an “event”. An event log can include sequential entries for successive application activities as a series of nested events to indicate a hierarchy of events (e.g., an application activity that invokes another activity), with each entry describing a type, content, start time, end time, or other attribute of the application activities.
Event logs are important for understanding the activities of complex systems. However in complex client-server systems the number of transactions can be very large and it may be difficult to analyze the large volume of data in an event log for an execution of an application of such a system. For example, parallel processing of client-server transactions is often desired, however a failure to process application transactions in parallel (e.g., due to application misconfiguration or faulty application logic) can be difficult to detect from a simple examination of an event log for an execution of the application.