There are two kinds of probes: method probes and callsite probes.
Method probes are inserted into the body of a target method. For method probes, the byte-code instrumentation (BCI) engine instruments the class or jar files that contain the target method.
Callsite probes are inserted into the body of any method that calls the target method. In other words, they are inserted at the call site, into the calling method, and not the called method. For callsite probes, the BCI engine instruments the class or jar files containing the methods that call the target methods.
Callsite probes are often used when you want to monitor calls from your project to a system library, or to other support classes outside your project. Callsite probes are also useful when it is difficult or impossible to instrument the class files containing the methods that you want to target.
Whether a probe is a method probe or a callsite probe depends on the probe fragment type. For an annotated list of probe fragment types, see Probe fragment types.
A Probekit source file (probe file) can contain both method probes and callsite probes. An individual probe, however, cannot contain a mixture of method and callsite probe fragments; all probe fragments in a probe must be of the same category.