Requirements
This page details UC-specific requirements in addition to those detailed expressed for the Reference demonstration environment.
Hardware list
- A Linux PC (for running the probe and the reasoner)
- A set of servers (at least 3) for running the repository.
Software list
Components
Repositories
Reasoner
Software dependency
In order to run the use case the following software is needed.
- Software:
- Python (>=3.3.x)
- java runtime environment (>=1.7) (JAVA_HOME set)
- Apache Flume
- Linux packages
- for the probe:
- dh-autoreconf
- python-numpy
- sqlite3
- for the repository:
Root access is needed to compile and run Tstat at the probe side.
Software installation
- Probe:
- Follow the instructions provided on the probe home page
- For Ubuntu Linux a install.sh is provided. On others Linux systems follow the instruction in the "usage of standalone probe" subsection on the probe home page
- Repository:
- Pre-requisites: A OpenStack-Sahara cluster
- Navigate to the OpenStack web interface
- Go to: Compute/Access & Security: Create Key Pair
- Go to: Data Processing/Plugins: verify if Apache Spark plugin is installed, if not install it
- Go to: Compute/Images:
- Create Image using this image
- Check the "Public" checkbox
- Go to: Data Processing/Image Registry
- User name: ubuntu
- Plugin Spark 1.5 -> add plugin tags
- Go to: Data Processing/Node Group Template
- Create template master (master + namenode)
- Create template worker (slave + datanode)
- Go to: Data Processing/Cluster Template
- Create cluster
- Assign 1 master + 3 slaves
- Launch cluster (use generated authentication)
- On each cluster machine:
- sudo apt-get install libpq-dev
- download the DB for retrieving data from HDFS from here, unpack.
- All the software is now ready to be configured.
- Reasoner:
- The web qoe reasoner is based on the mpcli script, so it will run as any other component in the mPlane framework.
Software configuration
Components
- Change directory to [PROTOCOL_RI_DIR]/mplane/components/phantomprobe
- edit conf/firelog.conf: add username, modify paths of the local tstat, flume and phantomjs binaries
- edit conf/flume.conf for the sink ip/port
- edit conf/firelog-tstat.conf specifying ip/subnet to sniff from (e.g., 192.168.13.0 / 255.255.255.0 )
Repositories
- On all nodes edit /etc/hadoop/conf/hdfs-site.xml
<property>
<name>dfs.datanode.data.dir.perm</name>
<value>755</value>
</property>
Reasoner
- Make sure that params in webqoe/extract.py point to the master node on the repository
Demonstration environment
- Browsing session with no impairments
- Browsing session with impairments
Step-by-step walkthrough
Warmup - Setting up the QoE Use case: first browsing session
- Download and install the probe
- Register the probe to the supervisor
- Execute:
runcap firelog-diagnose
when: now + 1s
destination.url = www-selected-url
show-meas firelog-diagnose-0
- No error should be reported.
Trigger:
- In order to raise errors, impairments should be put on the path between the probe and the web server. The easier way is to use tools like netem on a proxy machine (e.g., the gateway)
Observe:
- Re-running the same measurements in presence of impairments will highlight the root cause identified by the diagnosis algorithm on the probe side
- Executing the reasoner:
export PYTHONPATH=.
python3 mplane/components/qoe_reasoner.py --config conf/firelog-reasoner.conf --url www-selected-url
will cause the diagnosis algorithm to be run on the data available on the repository, so to provide further details on the selected web site behaviour.