Is there a way to send the Query Parameters and possibly the headers to AppDynamics?
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.
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:
It displays the following columns:
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.
If these URL's are using basic URL parameters, you should at least see the full URL's e.g
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.
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
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
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.
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.
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.