MFlib Overview

The Measurement Framework library (MFlib) enables experimenters to “instrumentize” their slice by automatically adding monitoring software and services to the slice. These services are designed to measure common information about the slice (e.g., cpu loads, number of packets sent over an interface, etc.) as well as system and custom logs. The library consists of a set of python calls that can be invoked from a Jupyter notebook or from any python program.

The easiest way to get started using MFLib is to use the example Jupyter notebooks that are preinstalled in the FABRIC JupyterHub. You may also clone the jupyter-examples repository yourself. See the start_here.ipynb notebook in the root directory of jupyter-examples. Look for the “Monitoring MFlib” section.

MFLib uses Prometheus and ELK to gather metrics and logs.

MFLib uses Grafana and Kibana to visualize the gathered metrics and logs. See Grafana and Kibana knowledge pages for details on how to access and use the dashboards with your experiment.

MFLib consists of several classes. Click on the links for method documentation.

  • Core – Core makes up the base class that defines methods needed to interact with the nodes in a slice, most notably with the special Measurement Node. This class is used by higer-level classes so the average user will not need to use this class directly.
  • MFLib – MFLib is the main class that a user will use to instrumentize a slice and interact with the monitoring systems.
  • MFVis – MFVis makes it easy to show and download Grafana graphs directly from python code. MFVis requires that the slice has been previously instumentized by MFLib

Source code is available at

Updated on September 15, 2022

Was this article helpful?

Related Articles

Need Help?
Can't find the answer you're looking for? Search and ask questions in the forum!

Leave a Comment