Skip to content
@SmartMonitoringSchemes

SmartMonitoringSchemes

Code for reproducing my PhD thesis titled "Robust Modelling of Internet Delay and Smart Monitoring Schemes for the Automation of Overlay Networks".

Welcome! 👋

Overlay

This organization contains the code to reproduce the figures and the results of my PhD thesis titled "Robust Modelling of Internet Delay and Smart Monitoring Schemes for the Automation of Overlay Networks" (2020).

The datasets used can be downloaded on Zenodo. These datasets are compiled from public sources (CAIDA MANIC, RIPE Atlas).

Feel free to contact me if you have any questions; my main GitHub account is @maxmouchet and my email address is max@maxmouchet.com.


Repositories

Analysis and Simulations

These repositories contains code and notebooks used to analyze datasets and perform simulations.
The tables and figures in my PhD thesis are generated in these repositories.

Repository Language(s) Tests Coverage
LargeScaleAnalysis Julia CI codecov
ModelComparison Julia, Python CI codecov
ParsimoniousMonitoring Julia CI codecov
Shao17 Julia, Python, R CI codecov

Tools and Libraries

These repositories contains libraries that can be re-used in other projects.
The Julia libraries are registered in the SmartMonitoringSchemes/Registry repository.

Repository Language(s) Tests Coverage Documentation
fetchmesh Python CI codecov Documentation
HDPHMM.jl Julia CI codecov See the tests
ThesisTools Julia, Python CI codecov N/A

Usage

The minimal requirements for using the code provided in the repositories are as follow:

  • Python 3.7+
  • Julia 1.4+
  • (Optional) IPython and IJulia, for running the notebooks
  • (Optional) tikzplotlib for producing some of the plots

Setup

# Verify Python and Julia versions
pip --version    # pip 20.1.1 from ... (python 3.7)
python --version # Python 3.7.6
julia --version  # julia version 1.5.0

# Install the optional dependencies
pip install ipython jupyterlab tikzplotlib
julia -e 'using Pkg; Pkg.add("IJulia")'

In addition, the JuliaPOMDP/Registry and the SmartMonitoringSchemes/Registry registries are required:

# Run the following in a Julia REPL
using Pkg
pkg"registry add General"
pkg"registry add https://github.com/JuliaPOMDP/Registry"
pkg"registry add https://github.com/SmartMonitoringSchemes/Registry"

General layout

Analysis and simulations repositories follows a layout similar to this one:

data/       # Small, usually textual, input files. Larger files are stored on backup1.enstb.org.
figures/    # PDF figures
notebooks/  # Notebooks, where the plots and results are generated
plots/      # TikZ (LaTeX) figures
results/    # Results, usually CSV files
scripts/    # Scripts for long running computations
src/        # Code common to the notebooks and the scripts
test/       # Unit tests for the common code

Reproducing the results

# Clone the repository, for example with the Shao17 repository:
git clone git@github.com:SmartMonitoringSchemes/Shao17.git
cd Shao17/

# Instantiate the notebooks dependencies
julia --project=notebooks/ -e 'using Pkg; pkg"instantiate"'

# Run Jupyter
jupyter lab

Pinned Loading

  1. LargeScaleAnalysis LargeScaleAnalysis Public

    Analysis of RIPE Atlas, CAIDA Manic and Orange WebView measurements.

    Jupyter Notebook 1

  2. ModelComparison ModelComparison Public

    (DP)MM vs (HDP-)HMM.

    Jupyter Notebook 1

  3. ParsimoniousMonitoring ParsimoniousMonitoring Public

    Parsimonious Monitoring in Routing Overlays.

    Jupyter Notebook 1

  4. Shao17 Shao17 Public

    (Partial) reproduction of "One-to-One Matching of RTT and Path Changes".

    Jupyter Notebook

  5. fetchmesh fetchmesh Public

    A Python library for working with the RIPE Atlas anchoring mesh.

    Python 2

  6. HDPHMM.jl HDPHMM.jl Public

    Infinite Hidden Markov Models for Julia.

    Julia 3 1

Repositories

Showing 9 of 9 repositories
  • fetchmesh Public

    A Python library for working with the RIPE Atlas anchoring mesh.

    SmartMonitoringSchemes/fetchmesh’s past year of commit activity
    Python 2 MIT 0 3 1 Updated Jun 5, 2023
  • Shao17 Public

    (Partial) reproduction of "One-to-One Matching of RTT and Path Changes".

    SmartMonitoringSchemes/Shao17’s past year of commit activity
    Jupyter Notebook 0 MIT 0 0 0 Updated Jun 5, 2023
  • ModelComparison Public

    (DP)MM vs (HDP-)HMM.

    SmartMonitoringSchemes/ModelComparison’s past year of commit activity
    Jupyter Notebook 1 MIT 0 0 0 Updated Jun 5, 2023
  • Registry Public

    Registry for Julia packages.

    SmartMonitoringSchemes/Registry’s past year of commit activity
    Julia 0 MIT 0 0 0 Updated Jun 5, 2023
  • HDPHMM.jl Public

    Infinite Hidden Markov Models for Julia.

    SmartMonitoringSchemes/HDPHMM.jl’s past year of commit activity
    Julia 3 MIT 1 0 0 Updated Jun 5, 2023
  • ParsimoniousMonitoring Public

    Parsimonious Monitoring in Routing Overlays.

    SmartMonitoringSchemes/ParsimoniousMonitoring’s past year of commit activity
    Jupyter Notebook 1 MIT 0 0 0 Updated Jun 5, 2023
  • LargeScaleAnalysis Public

    Analysis of RIPE Atlas, CAIDA Manic and Orange WebView measurements.

    SmartMonitoringSchemes/LargeScaleAnalysis’s past year of commit activity
    Jupyter Notebook 1 MIT 0 0 0 Updated Jun 5, 2023
  • ThesisTools Public

    Common code for generating plots and figures.

    SmartMonitoringSchemes/ThesisTools’s past year of commit activity
    Julia 1 MIT 0 0 0 Updated Jun 5, 2023
  • .github Public
    SmartMonitoringSchemes/.github’s past year of commit activity
    0 0 0 0 Updated Jun 5, 2023

Top languages

Loading…

Most used topics

Loading…