I am using dT 5.5. The definition of Auto Sensor as stated in the detail information of the tree nodes in the PurePath dashlet is: "Auto Sensors automatically retrieve additional call hierarchy information. Since Auto Sensors do not inject code into the monitored application, the timing information that is provided is not as accurate as the timing information delivered by explicitly placed sensors.".
If the "Auto Sensor" method is subsequently inluded in the sensor rules, can the timing be more accurate? Moreover, must all the "Auto Sensor" methods above and below the the one targeted be instrumented as well?
Regards,
Anoh Brou
Answer by Christian S. ·
Anoh,
well, what you can already see in your PurePath is that the socketRead0 contributes basically all the time to the HTTP request. if there were other methods e.g. for setting up the connection which have significant contribution, you would already see them via auto sensors.
if you want to know exactly, you'd have to instrument the method(s) which are responsible for setting up the connection, so you'd see how much time this takes.
best,
Christian
Answer by Christian S. ·
when you instrument getProjectReport(), you will get exact total exec times for this method. when you instrument socketRead() as well, you will most probably get a lot of socketRead0() calls, so i would not do that.
the question is basically: what do you want to achieve? if you want to see how long the getProjectReport() method takes, then you're fine with just instrumenting this one. however, i will tell you that it will just about take as much time as the doGet() above. and i will also tell you that the socketRead0() methods will take as much time as the executeMethod() above, because it's just an external HTTP request. i'm assuming that there is not much logic behind that code except calling getProjectReport() for creating a report which just calls a REST service for actually creating the report (on a tier which does not seem to be instrumented).
so i'm again wondering: what do you want to achieve here?
best,
Christian
Answer by Anoh B. ·
Christian,
We are interested in the exact exec time of the children' methods. For example, in the attached Purepath tree, I am interested in the exact times of getProjectReport(ProjectReportCache, String, RequestContext) with all its children, including and mostly socketRead0(). Are you saying that I have to instrument every single one of them to have accurate exec times?
Regards,
Anoh BrouAuto Sensors.png
Answer by Christian S. ·
no, what i'm saying is the opposite.
it's quite easy: we can only measure the total execution time of a method by measuring the time at method entry and exit. so if you want to know the time which is directly spent in this method, without the time spent in its children's methods (= exec time), you would also have to instrument all directly called child methods, so that we can subtract their total exec times.
best, Christian
Answer by Christian S. ·
exactly, if you include methods with sensor rules, you will get more accurate information in terms of
what you will not get, is exact (self) exec times for this method as you would have to instrument all child methods to get this exactly.
hope this helps,
Christian
JANUARY 15, 3:00 PM GMT / 10:00 AM ET