Hi,
in order to monitor the responstime of our in-house developed IMSL-transactions (aka middleware services), we have developed 3 business transactions for monitoring specific javamethod usage. These 3 BT's are for:
-monitoring a client-side synchronous service call
-monitoring a client-side asynchronous service call
-monitoring a server-side asynchronous service call
The service-name is passed as the first parameter in the calling javamethod.
The BT's for asynchronous calls work as expected, the BT for synchronous calls does not: this BT seems to report the responstime for the complete purepath in which it is called, instead of the time it takes to process the service call.
The BT is defined as follows:
The java method issueing the service call (mwSendReqMsg) can be in one of 2 packages (MwDienst or MwHandleImpl), the result should be split by service name, which is the first parameter of the method (ARG_mwSendReqMsg).
Result:
We want to know the average responsetime for GET_BRANCHNBR_EMPLID. The BT dashboard shows this as 188.34 msec. It seems that 188.34 is not the average responstime for GET_BRANCHNBR_EMPLID, but it is the average responsetime of the complete purepaths that are calling GET_BRANCH_AMPLID.
Now drill-down purepaths for GET_BRANCHNBR_EMPLID, this shows 159 purepaths:
Instead of showing only the processing belonging to the java method (mwSendReqMsg), dT shows the complete purepath. This is not what we want, the BT dashboard should show approx 52 msec for responsetime, not 188.
What is wrong with the BT definition? Any help is appreciated.
Wim.
Answer by wim d. ·
After some extensive testing and trying several suggestions from Wolfgang, it seems this 'works-as-designed'
This leaves me with the fact that dynaTrace cannot give me the information I want, so I raise this as enhancement request : ability to see correct responsetime and execution counts for specific method calls.
Wim.
Answer by wim d. ·
I still have some doubts: the timing I get from the measure don't make any sense. My testcase has 24 purepaths. Each purepath calls SEL_LEV_LOKATIES 1 time per pp and GET_AANLEVERINGSINFO 2 times per pp.
The business transaction overview shows average responsetime as:
SEL_LEV_LOKATIES 33.05 msec
GET_AANLEVERINGSINFO 22.02 msec.
However, in the purepath trees different times are shown: SEL_LEV_LOKATIES has responsetimes between 47 and 52 msec, GET_AANLEVERINGSINFO has 2 ranges: the first call in each pp is between 8 and 42 msecs, the second call between 2 and 5 msecs:
Also, the reporting dashboard has other confusing data:
This dashboard shows numbers for average responstime that are totally different from the numbers that can be found in the purepath trees:
So the question is: which responstime is correct?
Wim.
Answer by wim d. ·
Hi Rick,
I created the time measures, but they show up empty:
Did I forget something?
Wim.
Hi,
Since the Time measure is a "normal" measure you could try to chart it to verify that the measure definition actually provides any data (I always make creative typos in the class name, so I try to stay away from "specify manually" and go with the class browser). Do you see anything there?
-Wolfgang
Answer by Rick B. ·
Hi Wim,
As Business Transactions are transaction-based, you will always get information per-PurePath, per-User Action, or per-Visit. Here is what you can do to get what you want: create a "Time" measure for the method in question and add it to the middle section "Calculate Results" of the BT. You can make this show the avg or sum of the time spent in this method per-PurePath (so if it is only called once per-PurePath it will not matter as avg = sum).
Hope that helps,
Rick B
JANUARY 15, 3:00 PM GMT / 10:00 AM ET