Abstract
This paper investigates two aspects of using dynamic binary instrumentation for real-time instrumentation of a distributed software systems. First, this paper investigates techniques for achieving different levels of visibility (i.e., ensuring all parts of a system are represented, or visible, in final results) into a software system without compromising software system performance. Secondly, this paper investigates how using reservoir sampling can be used to further reduce instrumentation overhead. The results of the research show that reservoir sampling can be used to reduce instrumentation overhead when compared to regular sampling methods like Constant, Percentage and Exhaustive sampling while also providing the desired system visibility.