AnsweredAssumed Answered

Tracer vs. TracerDifferentMethods vs. TracerDifferentInstances

Question asked by Screen.Name on Nov 7, 2014
Latest reply on Nov 10, 2014 by oscar.atienza

I am looking for some colour around the differences between the DifferentInstances, DifferenceMethods and normal versions of a tracer. Taking the verbiage from the tracer type definitions we have:


  • BlamePointTracer -- This tracer will factor in every method invocation
  • BlamePointTracerDifferentInstances -- This tracer is applied to the first method invoked in the object - any successive calls within that object will be ignored until the first method finishes
  • BlamePointTracerDifferentMethods -- This tracer will run on the first method invoked in an instance with a given method name but any successive calls to other methods with the same name will be ignored until the first method finishes. This applies to calls to another method with the same name but different signature, recursive calls to the exact same method and calls to a method with the same name in the superclass


The specific use case I have is tracing the execute method of classes that implement the org.quartz.Job interface. I know in similar cases I sometimes seen method calls being double counted with BlamePointTracer and it feels like DifferentInstance may be the fix. I have a pbd that looks like this, but I am really not sure that BlamePointTracerDifferentInstances is the right one. Can anyone expand a little on the differences?

SetFlag: QuartzJobTracing
TurnOn: QuartzJobTracing

IdentifyInheritedAs: org.quartz.Job QuartzJobTracing
TraceOneMethodIfFlagged: QuartzJobTracing execute BlamePointTracerDifferentInstances "Quartz Jobs|{classname}|execute"
TraceOneMethodIfFlagged: QuartzJobTracing execute ExceptionErrorReporter "Quartz Jobs|{classname}|execute:Errors Per Interval"