Towards Extensible, Auditable, and Modular Measurement Specification and Execution in Computer Networking
We present the Measurement Template Library (Mtl), a Go library and runtime for specifying and executing measurements. Mtl provides a framework for specifying and executing extensible, modular, and auditable measurements using generic programming techniques. By leveraging the notion of polymorphic measurement programs, we show how to lift measurement tools/probes into a typed computational context and model. This lifting supports the structured definition and refinement of common data structures, algorithms, and concurrency and interleaving semantics which appear in measurement work. In short, we show that measurement points (i.e., the Linux ping utility, scamper, or RIPE Atlas) are types, and measurements are type expressions.