OML Overview » History » Version 36

« Previous - Version 36/115 (diff) - Next » - Current version
Thierry Rakotoarivelo, 01/05/2012 05:21 PM


OML is an instrumentation tool that allows application writers to define customizable measurement points inside applications. Experimenters running the applications can then direct the measurement streams from these measurement points to storage in a remote measurement database.

OML was originally conceived to provide measurement facilities for OMF-enalbed testbeds, such as the Wireless ORBIT Testbed. It is now a stand-alone tool which can also be run independent of OMF.

OML consists of three main components:

  • OML client library: the OML client library provides a C API for applications to collect measurements that they produce. The library includes a dynamically configurable filtering mechanism that can perform some processing on each measurement stream before it is forwarded to the OML Server.
  • OML Server: the OML server component is responsible for collecting and storing measurements inside a database. Currently, SQLite3 is supported as the database backend.
  • OML Proxy Server: similar to an HTTP proxy, this component can buffer OML measurements locally and send them to full OML server later. This has several uses, such as for mobile experiments where the experiment node might be disconnected from the network some of the time.

We also have a bundle of client applications that perform measurements and filter and collect them using OML, including an OML-capable version of Iperf that we have created, together with wrapper applications for libsigar and libtrace.

The OML architecture is also explained in an article published at TridentCom 2010 and available here.

Mailing List

The archives are available there, containing many frequently asked questions.

You can click here to subscribe to our mailing list and post your questions.

Quick Links

oml.png (6.38 KB) Olivier Mehani, 17/12/2012 06:13 PM

oml.bib (8.27 KB) Olivier Mehani, 11/04/2014 10:21 AM