We found some slow transactions that boiled down to a single function (e.g., SqlConnection.Open) taking 60 seconds. This function call could be impacting many other transactions. Is there a way in NR to show all transactions where a certain function takes more than X seconds?
Thanks for asking this question, @aht.
While the answer is ‘no’, this probably won’t be an issue in most cases. Please allow me to explain. In this example, I am going to take an imaginary slow function
There are several ways to sort your transactions in the web UI. These are:
- Most time consuming
- Slowest average response time
- Apdex most dissatisfying
- Highest throughput
The workflow our UI encourages is to examine the transactions themselves by looking at their breakdown table and transaction traces. When trying to improve overall user experience you will usually focus on the most time consuming and/or highest throughput transactions. If
foo() is a function shared by the most significant transactions, this will be easy to see. The transaction traces and breakdown tables should contain
foo() as you view these slow, time consuming and high-throughput transactions.
On the other hand, if
foo() is very slow but is called very infrequently, it will show up in ‘Slowest average response time’ but not in the other three sort views. Searching for this slow function (again, which isn’t possible) would reveal everywhere it is present. But if it is only present in infrequently used transactions, fixing this function isn’t going to make a significant improvement to overall user experience.
The two ways of approaching slow transactions are almost opposites. One is much like top-down development and the other much like bottom-up. Both can be useful and which to use depends on the problem being solved.
I do agree with you that there are cases where sorting/filtering transactions by the presence of a function/method would be useful. I am happy to enter a feature request for this. Before I do so, do you have other thoughts about how you would like this searching/filtering to work? I want the feature request to be accurate with respect to your vision of this feature.
I moved a post to a new topic: Chart a particular (internal) API call across all transactions on a dashboard