What kind of performance impact on the server can I expect by enabling server-side transaction tracing with SQL query plans and error collection? We have not been utilizing a lot of the features of the .NET agent and I am working to change that but without impacting our systems.
Thanks for your excellent question, @asavage!
It’s hard to estimate any additional overhead that might be the result of enabling transaction tracing and explain plans, but I wouldn’t expect too much of a difference in most cases.
While slow SQL tracing and explain plans can add additional overhead, they can also be one of the more effective ways to uncover slowness and speed up your app’s performance in general.
The agents also limit the number of transaction traces and error traces that are collected to protect your app’s performance. Here’s a quick breakdown of that:
At the end of that minute, the New Relic agent selects the slowest transaction in that pool and performs a transaction trace on it.
If you are unsure, you can start out by adding some configuration that will limit the extra resource cost of that additional instrumentation.
You can set a higher transactionThreshold so that only the slowest traces are captured.
You can also start out with a pretty high threshold for explain plans:
A similar option exists for limiting the number of error events that are collected:
More transaction tracer config options:
I hope that helps you get things started. Let me know of any further questions!