A DTrace consumer is code that is interested in a probe and its results.
A consumer requests that the provider create one or more probes.
When a probe fires, it emits data that are managed by the kernel. Within the kernel,
actions called enabling control blocks,or ECBs, are performed when probes fire.
One probe can cause multiple ECBs to execute if more than one consumer is interested in that probe.
Each ECB contains a predicate (“if statement”)that can filter out that ECB.
Otherwise, the list of actions in the ECB is executed. The most common action is to capture some bit of data,
such as a variable’s value at that point of the probe execution. By gathering such data, a complete picture of a user or kernel action can be built.
Further, probes firing from both user space and the kernel can show how a user-level action caused kernel-level reactions.
Such data are invaluable for performance monitoring and code optimization.