1. A method for instrumenting an application across a distributed system, the method comprising: instrumenting a collection of subsystems from a plurality of subsystems within a distributed system comprising the plurality of subsystems, each subsystem within the distributed system comprising a state of an application utilizing the distributed system to process transactions and each state traversed by the transactions processed by the application, wherein instrumenting a given subsystem modifies at least one of inputs to or outputs from that subsystem to include a sufficient amount of transaction monitoring to monitor transaction instances traversing that subsystem by assigning a unique identification to each transaction instance to allow active monitoring only in the collection of subsystems and the collection of subsystems comprises a subset of the plurality of subsystems, the subset chosen such that a cost associated with instrumenting the collection of subsystems is within a pre-defined cost budget and a desired reduction in transaction monitoring uncertainty in the distributed system that is attributable to the instrumentation of the collection of subsystems is achieved, the inputs to and outputs from subsystems comprising links between states of the application.