The fundamental concepts to understand about Spring Insight are:
Target application: A Web application for which you want to monitor the run-time performance.
Operation: An interface
Operation.java) that plug-ins can implement to store
information about the captured work being done. An Operation
implementaton is an item of work, for example, a socket opening, a cache
miss, a method call, or a JDBC SELECT. Operations are defined by
plug-ins and contain all the information needed to capture the work
Operations must be serializable and can contain only fields that are classes within the JDK or the plug-in itself.
Frame: Represents a unit of execution within a call hierarchy. Typically a frame equates to a method call in a stack, but this is not always necessary. A frame can be created for any logical event that a plug-in dictates. A frame holds information about when an event occurred and about the frame's nested relationship to other frames. The meat of the frame lies within the Operation.
Trace: A recording of a single thread of execution for an application. A trace can represent a single web request (and all the work it did), or it could represent a JMS message listener's processing times. A trace contains a nested tree of frames, which contain the details of the work done.
Endpoint: Logical grouping of similar traces within an application. Health and response time metrics are calculated for End Points based on the traces that match that End Point. End Points for a given trace are identified by EndPointAnalyzers that post-process a trace after it is collected. All EndPointAnalyzers known to Insight process each trace. The analyzer with the highest score—that is, the analyzer that the plug-in determines has most closely identified the End Point—defines the trace as belonging to a particular End Point.
End Points are visible in the Insight dashboard under the Browse Resources tab. For example, in a Spring MVC application, End Points are defined by the @RequestMapping method that receives the request dispatch. All traces dispatched to the same method are members of the same End Point. In a production-ready application, a trace potentially matches multiple End Points. For web requests, the Spring MVC controller defines End Points, but not all web requests are processed by Spring MVC. The raw Servlet to which the request was initially mapped can also define an End Point. In this case, the more specific End Point contains the trace; the Spring MVC End Point trumps the Servlet End Point.
Aspect: Primary mechanism used by Spring Insight plug-ins to collect runtime data about a user's application. Aspects in Spring Insight typically have the role of collecting data about the target application and storing it into implementations of an Operation.
Spring Insight: The entirety of Operation collection, End Point analysis, trace storage, and the user interface.
This diagram illustrates the relationship among Spring Insight objects. A trace contains a hierarchical list of frames, each with an associated Operation.
This diagram illustrates the relationship between the plug-ins and the core objects of Spring Insight, with respect to operations.