In your New Relic account for a Java application, unexpected transaction traces appear (either a greater number of traces than you were expecting, or traces for transactions that were not the slowest transactions).
This is not actually a problem. The New Relic Java agent has a variety of default settings that ensure that a representative sample of your slow transactions are traced. The agent also has a firm limit on the number of transaction traces sent per minute, so it's unlikely you will notice any performance impact due to tracing.
Here are some reasons you may see unexpected transaction traces in your New Relic account:
- By default, the agent runs transaction traces on a diverse sample of your slowest transactions, not only the absolute slowest transactions. The sampling diversity can be adjusted with the
- Occasionally, a random, non-slow transaction will be traced in order to give you a better overall picture of your system's health.
- If you have a key transaction with a custom Apdex threshold, that can result in traces being run more frequently for that key transaction.
- If you are using New Relic Synthetics to monitor your application, you will receive Synthetics transaction traces.
- The agent is able to collect one background transaction trace per minute, in addition to one web transaction trace per minute.
There are several other minor Java agent rules that can lead to additional tracing, but rest assured that the cap on transaction traces means that an impact on your server performance is unlikely.
For more on how to customize transaction trace settings, see the Java agent config.