cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Tomcat Java Agent - Query Parameters

Wayne.Gibson
Producer

Hi,

Is there a way to send the Query Parameters and possibly the headers to AppDynamics?

Thanks

 

7 REPLIES 7

Mario.Morelli
Architect

Hi Wayne

 

What type of Java application are you referring to?

 

AppDynamics has the built in capability to collect the Parameters, headers & Cookies using the Data Collector section within the Controller.

 

This will work for most supported servlets, webservices etc.

 

Ciao



Found something helpful? Click the Accept as Solution button to help others find answers faster.
Liked something? Click the Thumbs Up button.

Learn more about me in the Community Member Spotlight Q & A

hi @Mario.Morelli 

This is a tomcat server, in the app dynamics console we are seeing the servlet but not the query parameters or headers..  

This could just be me not being familiar with AppDynamics, but when I go to:

  • Application Dashboard
    • Top Business Transactions
      • From the By Response Time panel
        • double click onthe first item in the list
        • then click Slow Response Times

It displays the following columns:

  • Time
  • Exe Time(ms)
  • URL
  • Business Transaction
  • Tier
  • Node

But the URL and business transaction only show the URL and not the query parameters.  In our case the query parameters are needed to help determine the actual endpoint.


If I double click on the item on this table to see the detail, I see the stack trace and SQL calls which is great.  

So I'm curious if this is as designed or a configuration issue.

 

 

Thanks

 

 

 

 

 

Hi Wayne

 

If these URL's are using basic URL parameters, you should at least see the full URL's e.g

www.example.com/search?make=civic

 

A quick way to check is to navigate as follows

From main application Screen, click on the relevant applictaion

> Click on Configuration

>> Click on Instrumentation

>>> Click on Transaction Detection

>>>>Click on the "Add +" and click Next and then Live Preview, it will give you an option to select a node, select one which has traffic

 

Once the screen loads, change the option from "Preview Business Transactions" to "Tools", which will default to "HTTP Requests".

 

Now just ensure that you can simulate to drive traffic to the application, it will show the incoming URL's being hit, click on them, and on the right it will show the Headers, Cookies and parameters.

 

Live_Preview.png

 

If you find the parameters you require you can then use that to do one of 3 things

 

1. In the Instrumentation > Data collector section add them to be collected in the transaction snapshots.

This will show these values in the collected snapshots when viewing them.

 

The next option depends on the amount of unique parameters you want to split on. As there is a limit on the number of Business Transactions for every application it's always best practice to rather split the servlets within Service Endpoints for tracking them seperately.

 

You can go to Instrumentation > Transaction Detection and use the split Transaction using parameter value, or you go to Instrumentation > Service Endpoints and again, split the servlets based on a parameter value

 

Ciao

 

 

 



Found something helpful? Click the Accept as Solution button to help others find answers faster.
Liked something? Click the Thumbs Up button.

Learn more about me in the Community Member Spotlight Q & A

Hi Wayne

 

Normally the parameters would show in the URL section.

 

The quickest way to check is to run a live preview on the Java Node, using the HTTP Requests section, to view live data coming into the system.

 

In this view you would be able to see the parameters, cookies & Headers for the live requests. as below

 

Live_Preview.png

 

You can then use the Transaction Detection rules or Service Endpoints rules, to split out the transactions according to these parameters. If you wish to view them separately.

 

If the split according to parameters is more than 150-200, rather split them out in the Service Endpoints section.

 

Ciao



Found something helpful? Click the Accept as Solution button to help others find answers faster.
Liked something? Click the Thumbs Up button.

Learn more about me in the Community Member Spotlight Q & A

@Mario.Morelli   Ok so silly question.. How to get that via the UI, as can seem to find it 

Hi Wayne

 

No problem:)

 

You navigate to the application itself then follow these steps

 

1. Click on Configuration in the bottom left, then > Instrumentation > Transaction Detection.

Click on the Add "+" button as if you are going to create a new rule, and keep the default there for Java & Servlet, click on next and then select a node that has traffic and click live preview.

Live_Preview_1.pngLive_Preview_2.png

 

Once it's running, switch the view from Business Transactions, to HTTP requests, this will show the live endpoints being called in the application, along with the cookies, headers & parameters.

 

You can then identify if you can see the parameters you require and then create rules to split out the traffic using the params or whichever way you want to visualize the data.

 

 

 

 

 



Found something helpful? Click the Accept as Solution button to help others find answers faster.
Liked something? Click the Thumbs Up button.

Learn more about me in the Community Member Spotlight Q & A

@Mario.Morelli Sorry for the delay..  The information you provided let me see the parameters on the live query..

 

As you can probably tell I'm new to AppDynamics and taking over something that somebody has configured.

 

So I have a couple of things I'm trying to resolved:

  1. Goto Business Transactions
    1. Pick an item by double clicking
    2. Go to Transaction snapshots
    3. Double click on one of the items
    4. You get a page like this..

      appDynamics-Transaction.png

    5. But can't see any parameter passed, so my question is this possible.
  2. The App I'm trying to get the full path, it  would appear to have an unusual path. Which is something along lines of /root/endpoint#/root/action?param1=xxx&param2=xxxx
    1. Currently AppDynamics would appear to be truncating when it hits the # so was wondering if there was a way to either get the full path or ability to get the path after the #