Spring Insight Developer answers the question "What just happened?" It is a VMware® Web application that gives you real-time visibility into application behavior and performance.
In development and testing stages, developers can use Spring Insight Developer to verify immediately whether their newly-written code is behaving as designed. QA engineers can pinpoint specific causes for "what just happened" and relay detailed information to developers.
Stress testing an application typically tells you which URL areas are slow. By combining Spring Insight Developer with your existing tools (such as JMeter), you can see not only which URLs are slow, but why, thus accelerating your time to production.
The following sections provide an overview of Spring Insight:
The following topics discuss specific use cases:
Web application developers realize a massive increase in productivity when they can make changes and see the effect immediately. Typically, a developer makes changes to HTML or JSP and reloads the browser to verify that the modified application renders the web page as desired. However, developers often lack a centralized tool that shows how their changes affect:
Spring bean interaction
Calls to external services
Large, popular frameworks such as Hibernate and Spring Web push much of the code that developers formerly wrote manually into a convenient library. This process saves time and improves maintainability. The downside is relinquishing control, which means that the developer may not know exactly what is going on behind the scenes:
How many database transactions did a web request create?
How expensive is it to use complex web parameter binding?
What are the HTTP headers being sent to the developer's REST application?
The Spring Insight Trace view solves these problems. It allows developers to make changes and verify their effectiveness immediately.
Spring Insight gives QA a richer picture of an application's performance, eliminating much of the work required to diagnose problems. As QA tests an application, typical problems include:
As these problems arise, QA engineers can browse to the Spring Insight dashboard, review all recent operations, and access in-depth information that helps them track down bugs. The dashboard provides information such as:
A list of all database queries and their performance
A detailed description of the web request, its parameters, and headers
A list of component method calls and their parameters
A list of all Spring components that were used and their performance
QA forwards this information to the developer, thus improving the turnaround time for identifying and resolving root causes.
Web applications must be loaded and stressed before being deployed in a production setting. Spring Insight works with your existing load-testing tools to answer two main questions:
What was slow?
Why was it slow?
After running a load test, Spring Insight displays a breakdown of all requests to Spring Web. It shows you:
The response time trend over a designated period
A histogram that identifies response time patterns and outliers
Detailed statistics, such as 95th percentile response time
Using this information, you can drill down to specific information about why a request was slow:
Did the request execute an extremely slow database query?
Did it make a call to a remote system that locked up?
Did it spend a long time rendering the result?
The request trace information that you access in the Trace view is also available when you analyze a performance test.
Spring Insight uses a plug-in architecture to collect, correlate, and analyze performance metrics from your application and from different pieces of third-party software and libraries that interact with the application. You can create plug-ins that are tailored to the needs of your application with the Spring Insight Developer Kit. Using the Developer Kit, you can extend Spring Insight functionality to collect trace details such as Hibernate flush times and JSP render times; render custom HTML for an operation detail frame; and analyze traces to produce new types of End Points, such as a JMS message queue.
The Developer Kit is a separate download. It includes a copy of the source code for all plug-ins shipped with Spring Insight and a sample plug-in that serves as a starting point for creating your own plug-ins. See:
SpeedTracer is a Google Chrome extension that analyzes how your application is performing inside the browser. It measures how long the browser takes to render, transform CSS, show images, and so on. VMware and Google partnered to integrate Spring Insight data into SpeedTracer, thereby tying browser performance to backend performance with a robust client-server application performance tool. If your web application uses Ajax and other rich open web technologies, we recommend you try SpeedTracer with Spring Insight.
For details, see Viewing Spring Insight Data in Google Speed Tracer.