Introducing tc Server Developer Edition – with Spring Insight

We are proud to present the Spring community with a new tool which helps get their applications to production even faster: tc Server Developer Edition is the standard 100% Tomcat you know and love, plus a new Spring Insight console.
Spring Insight gives deep visibility into your application’s real activity on a request-by-request basis. For any request you can see all the JDBC queries it made, how much time it took to render, or timings for any of your major Spring beans.
This fine grained information is very valuable when you are looking at a specific request in isolation, but it can be difficult to find a specific request in a mountain of millions. Fortunately, Spring Insight also has a 10k foot view and can quickly point you to problem areas.
Spring Insight’s Application Health screen works great in a performance-testing environment. It will show you which Spring MVC controllers are unhealthy and allow you to drill down into specific problem requests. With a few clicks you can navigate from the 10k foot view to a specific remote web-service call.
To see tc Server Developer Edition in action, just click on the image below to start the screencast:

We think this tool is valuable for both developers and QA who want to get runtime visibility into the application’s inner workings. Spring Insight gives QA engineers a rear view mirror. They can test their application as normal, and when they experience a problem simply navigate to Spring Insight to see the cause.
Now for some technical goodies..
Spring Insight uses AspectJ to load-time weave your web application. This means that you are not required to make any changes to your application to use Spring Insight. Zero.
Spring Insight collects its data in memory and does not require a database or disk access — this makes it trivial to try out! When deploying an application to Spring Insight, you will need to give it more memory to accommodate the storage of traces, response times, etc. As the internal limits are reached, Spring Insight will discard traces to keep the memory footprint low. It provides configuration options to tune the memory footprint.
Spring Insight should not to be used in production. It has no concept of security and is able to display sensitive, low-level information.
The Application Health provides some very useful information about response times. All web requests are grouped by the Spring MVC controller which ultimately handled the request. These groupings are called Endpoints and represent the major points of entry into the application. The Preview release only supports Spring MVC endpoints, but we plan on adding a lot more types before the final release.
That brings me to a nice feature of the architecture: pluggability. The ability to analyze Hibernate or JDBC or Spring-MVC all comes from a set of plugins which get dropped into a directory within tc Server. We had numerous requests during SpringOne 2GX to open up this plugin architecture & give people access to write their own plugins. This is a high priority for us, and something we will work on for future releases.
The project is moving quickly and the feedback we’ve received has been excellent. Please give it a shot and let us know what you think. Definitely let us know if it didn’t work with your application.
Performance insight, here we come!
Similar Posts
- Introducing SpringSource tc Server 2.0
- Using Yourkit to Find a Memory Leak
- Optimising and Tuning Apache Tomcat – Part 2
- Runtime Error Analysis in the SpringSource Tool Suite
- Working with SpringSource Application Platform's provisioning repository











Kiril says:
Added on October 22nd, 2009 at 1:17 amThe screencast looks absolutely great! Thank you!
Is it possible to track down executions triggered by smth else than an HTTP request, e.g. a JMS message, i.e. where the entry point is a MessageListener inside the MessageListenerContainer?
Jon Travis says:
Added on October 22nd, 2009 at 9:26 amWe do not have a plugin for JMS at the moment, but it's on the short list of things to add.
That being said, you still may be able to see some things in Spring Insight which were triggered by a JMS message. If your message listener ends up invoking any Spring @Service, @Respository, or @Controllers, or hitting the DB, it will show up.
Sam says:
Added on October 22nd, 2009 at 11:46 amDoes this work with vanilla Tomcat ?. ( i.e. a non forked version of Tomcat ).
Jon Travis says:
Added on October 22nd, 2009 at 1:33 pmWorks fine in a vanilla tomcat, provided all the correct files are in place (i.e. support files & war)
Sudheer Krishna says:
Added on October 24th, 2009 at 12:59 amI have tried many times but never was able to see the screen cast.
The new window opens but gets stuck all the time though i have a very good internet connection.
Jon Travis says:
Added on October 26th, 2009 at 12:27 pmSudheer,
Yes, the file is quite large & some people seem to be unable to play it.
You can download it via the following link:
http://s3.springsource.com/MRKT/spring-metrics/Spring_Insight_Preview-final2.mov
I'd recommend CURL or wget to pull it down. If it is a quicktime issue, I plan on having a YouTube version up soon which will address that concern.
Lubos Pochman says:
Added on October 27th, 2009 at 5:31 pmHow do you get/install tc server to existing Eclipse/STS, I have STS version 2.2.0.200910210131-RELEASE, but STS Dashboard just offers Tomcat server and dm server?
Anatoly says:
Added on October 28th, 2009 at 5:37 pmSTS 2.2 comes with Insight built in:
tc-server-6.0.20.C$ tree ..
`– webapps-lib
|– insight-jdbc-1.0.0-SNAPSHOT.jar
|– insight-springcore-1.0.0-SNAPSHOT.jar
|– insight-springtx-1.0.0-SNAPSHOT.jar
|– insight-springweb-1.0.0-SNAPSHOT.jar
`– spring_insight_collection-1.0.0-SNAPSHOT.jar
When you deploying your app to tc Server, via STS, you should see "INFO: Deploying web application archive insight.war", that means that you are good to go.
After your app is deployed, go to "localhost:8080/insight" and have fun.
For the older STS, I would just pointed your Tomcat (tc) installation to this new directory that has insight, and give it a try. But I just tried with the version you provided: "2.2.0.200910210131-RELEASE", and Insight is built in there.
/Anatoly
Anatoly says:
Added on October 28th, 2009 at 7:19 pmThis should help: Spring Insight in Action – 5 Minutes From Scratch
/Anatoly
Brian says:
Added on October 30th, 2009 at 8:58 amYou mentioned tc Server uses plugins so Insight can analyze certain resources. My datasources are setup using Hibernate and Insight is not showing any of the queries. Do I need a Hibernate plugin? If so, where would I get the plugin and where would I install it?
Thanks!
Lubos Pochman says:
Added on October 31st, 2009 at 10:32 amI installed STS to an existing Eclipse installation via Software Update… (P2), not the full STS/Eclipse combo, and I might have missed some options, but I do not see any TC server in eclipse directory.
But I downloaded standalone TC server, created insight instance, and then added it to Eclipse Servers with Spring layout option and insight instance selected. That seems to work.
memoire pc says:
Added on November 6th, 2009 at 5:47 amAs a Developer, i would find the lean and powerful combination of Tomcat and Spring a natural fit that keeps their application code free of needless Java EE complexity. And the key component of tc Server Developer Edition is the Spring Insight console, a dashboard view of real-time Spring application performance metrics. Without changing their code, developers can use Spring Insight to detect, analyse and diagnose application performance issues right from their desktops.