Jun 6th, 2012, 02:29 PM
Insight Developer not always showing the full trace for a Web Service request
I am just getting started using Insight Developer and I am trying to profile a SOAP web service in my application. I am getting some weird behaviour and was hoping someone may have an idea what is going on.
First, depending on the request I make I get one of two traces:
1) Trace starts at the servlet POST and then shows full stack (* see next issue).
2) Trace starts at one of the DAO methods and only shows the stack for that call, nothing surrounding it.
The second issue is the trace does not show private method invocations and instead shows any public methods invoked internally at the same level as the previous public method. i.e.
is shown as:
Any help would be greatly appreciated.
Jun 7th, 2012, 12:49 AM
Insight weaves into a specific set of APIs based on the plugins that you have deployed. It could be that we currently don't cover the framework you're using. That also explains why you see your DAO without the rest of the stack or why you don't see calls to private methods.
The easiest way to fix this is to add the @InsightOperation annotation to your code to instruct Insight to collect more data or to write your own plugin that will collect the information you need.
You can find more details and examples on github: https://github.com/SpringSource/spring-insight-plugins
Jun 8th, 2012, 01:53 PM
I don't thinks its a matter of an unsupported framework as the same end point is profiled when I provide one set of parameters and not (only DAO) when I give it a different set. As an example (method names and values made up to protect the innocent):
1) Call to GetUserItems with UserID = 1234 is profiled starting at the End point but some method calls are not shown but calls within those methods are.
2) Call to GetUserItems with UserID = 12345 only profiles some of the DAO request.
Thanks for the info on @InsightOperation, I will take a look but I was hoping to not have to modify the code to profile it.
Jun 11th, 2012, 10:52 PM
It's hard to tell without knowing which frameworks you are using.
Another thing to note is that Insight will only show calls related to one of its plugins. You may see a call to a servlet and JDBC but if your code uses some framework that we don't support between the servlet and JDBC code, you will not see it in the trace.
Could it be that the code might be taking a different path according to the UserID parameter?
Which version of Insight are you using?