Your data. Anywhere you go.

New Relic for iOS or Android


Download on the App Store    Android App on Google play


New Relic Insights App for iOS


Download on the App Store


Learn more

Close icon

Transaction Trace for Application code


#1

To get more in depth transaction trace for application code,
Are there any global custom configurations to increase tracing ? Now most of the degradation in the app code are grouped with out much information and if i want to add custom instrumentation then i have to do it for each and every transaction.

Please advice if there are any other options to increase trace across application?


#2

Hi, @Balasubramaniam.Thia: Which language agent are you using?


#3

Hi , we are using java agent


#4

First, make sure that you have set an appropriate Apdex threshold for your application. By default, transactions are eligible to be traced when their duration exceeds 4 times the Apdex threshold, so it is important that your threshold is set correctly.

If that doesn’t solve the problem, you can adjust the transaction_threshold setting in your newrelic.yml file; you may change the default from apdex_f to a fixed number of milliseconds.

If you are seeing a lot of time spent in uninstrumented “Application code“, you may use the thread profiler to see where the time is being spent.


#5

Thank you,

Expecting all transaction and trace having more than 4x times the transaction_threshold will get captured , we set a very low apdex T value in New relic UI(0.1 seconds) . So per our understand, the all transactions taking more than .4 seconds are expected to be captured. But in actual it didn’t. In fact for few transaction even the requests that took max time were not captured ( these requests took 10s). Not sure what we are missing. Is there a way i can verify why not all transaction taking more than 4X the apdex T values are not getting captured.

Regd. Instrumenting “application code” , running thread profile and configuring custom instrumentation is the only options, we wont be able to do a global configuration to capture traces for uninstrumented “Application code“ across multiple transactions??


#6

No, there is no global option to capture traces for uninstrumented code; thread profiler and/or custom instrumentation are the only options.

Traces are not captured for every transaction that exceeds the trace threshold; those transactions are added to a pool of eligible transactions, then the slowest transaction in the pool is traced at the end of each minute. Details here: https://docs.newrelic.com/docs/apm/transactions/transaction-traces/introduction-transaction-traces.


#7

Just to clarify, say i have a shopping cart app. and for a 1 min harvest window there are 3 different transactions like," Add to cart" , “View Cart” and “Edit Cart” were performed. if all 3 transaction are taking more time than usual ( say Add Card - 11 Sec, View Cart - 12 Sec and Edit Cart - 13 sec.) then only the Edit Cart will have transaction trace captured and other two might get ignored.

if all statement is true, And if i want trace to be captured for all transaction that are super bad ( something like all transaction running for more than 10 s requires transaction trace captured) Do i have an option.

Thanks


#8

No, that is not correct; the trace threshold is evaluated for each transaction. So all instances of “Add to cart” that exceed the trace threshold will go in one pool; all instances of “View cart” will go in another pool, etc. At the end of the minute, the slowest instance of each transaction will be traced.

If that is not the behavior you are seeing, we will likely need to open a support ticket to look at your specific data.