GLIMPSE is an active end host-based network measurement tool. It is written in C++ with Qt and is cross-platform by design. The main focus of GLIMPSE is troubleshooting.
The key features are
There are two different usage scenarios for the GLIMPSE probe at the moment:
Metrics
Capabilities
The JSON capabilities for GLIMPSE can be found on the following pages. Note that no temporal
scope is given in this listing, the following are supported:
The GLIMPSE-registry defines the parameter and result columns needed which are not specified by the mPlane-core-registry and can be found at http://www.measure-it.eu/static/glimpse_registry.json. Details for the parameters can be obtained from there and from the mPlane core registry.
{ "capability": "measure", "label": "glimpse-ping", "parameters": { "destination.port": "*", "destination.url": "*", "glimpse.ping.interval.ms": "*", "glimpse.ping.payload": "*", "glimpse.ping.timeout.ms": "*", "glimpse.ping.type": "*", "packets.ip": "*", "source.port": "*", "ttl": "*" }, "registry": "https://www.measure-it.net/static/glimpse_registry.json", "results": [ "rtt.ms.min", "rtt.ms.max", "rtt.ms.avg", "rtt.ms.stdev", "packets.ip.sent", "packets.ip.received" ], "version": 0, }, { "capability": "measure", "label": "glimpse-httpdownload", "parameters": { "destination.url": "*", "glimpse.http.thread.count": "*" }, "registry": "https://www.measure-it.net/static/glimpse_registry.json", "results": [ "glimpse.http.bandwidth.imputed.bps.avg", "glimpse.http.thread.count", "untainted" ], "version": 0, }, { "capability": "measure", "label": "glimpse-dnslookup", "parameters": { "destination.url": "*" }, "registry": "https://www.measure-it.net/static/glimpse_registry.json", "results": [ "glimpse.dns.record-name", "ttl", "glimpse.dns.record-value", "glimpse.dns.record-type" ], "version": 0, }, { "capability": "measure", "label": "glimpse-traceroute", "parameters": { "destination.port": "*", "destination.url": "*", "glimpse.ping.interval.ms": "*", "glimpse.ping.payload": "*", "glimpse.ping.timeout.ms": "*", "packets.ip": "*", "source.port": "*" }, "registry": "https://www.measure-it.net/static/glimpse_registry.json", "results": [ "glimpse.traceroute.start-time", "glimpse.traceroute.hop-ip", "ttl", "rtt.ms.min", "rtt.ms.max", "rtt.ms.avg", "rtt.ms.stdev", "packets.ip" ], "version": 0, }, { "capability": "measure", "label": "glimpse-reversednslookup", "parameters": { "destination.ip4": "*" }, "registry": "https://www.measure-it.net/static/glimpse_registry.json", "results": [ "glimpse.dns.record-name", "glimpse.dns.record-value" ], "version": 0, }
GLIMPSE can be executed on every environment supporting Qt5 (http://www.qt.io/). This includes:
Note that not all measurement tools might be available on all platforms at the moment due to technical limitations of certain platforms. At the moment the development version is mainly tested on Linux and Android.
There are two GLIMPSE-releases available: the standard release of GLIMPSE found at http://www.measure-it.net and the Github repository (https://github.com/HSAnet/glimpse_client) automatically connects to the GLIMPSE infrastructure and does multiple things which are out of scope of mPlane (for example user- and device-registration). To use this version follow the instructions under "Installation of standalone probe (standard release)".
The infrastructure-less release of GLIMPSE was stripped of all additional server-communication and can connect to any mPlane compliant supervisor. Infrastructure-less, since the GLIMPSE live infrastructure is not involved, but any mPlane-compliant infrastructure components can be used in this release. Using this version, no registration is required and it allows to do arbitrary testing with GLIMPSE. This release enables a user to set up a GLIMPSE probe, connect it to the mPlane reference implementation supervisor and interact with it through the mPlane command line interface by sending specifications and receiving results. To use this release follow the instructions under "Integration into an mPlane environment (infrastructure-less release)".
The following restrictions apply to the infrastructure-less release at the moment (this might change in the future):
Both relases of GLIMPSE (standard and infrastructure-less) can be installed with the help of pre-build binary packages or by compiling it yourself.
Pre-build packages can be found at http://distributor.measure-it.net/packages/, note that the Windows installer was not fully tested yet. We recommend using the ubuntu-trusty packages for which the detailed installation process is described here:
The GLIMPSE console client will start automatically after a reboot (initial setup as described in the next section has to be completed). To change this you can disable the service glimpse-console.
If you want to use the GUI version install glimpse-gui and stop the glimpse-console background service before using it:
To compile the software you should download and install Qt and QtCreator from here. At the time of this writing, GLIMPSE was tested with Qt 5.2.1. The requirements for the different platforms are:
Clone and initialize the GLIMPSE Github repository:
Run QtCreator, open the client.pro from the source-code, add your Qt configuration and select the "mobile" (= GUI version) or "console" project near the "Play" button. Hit "build" to compile GLIMPSE.
This section is divided into the execution of the application itself including the setup on the first run and how to run measurements within GLIMPSE.
After the installation you need to register a GLIMPSE-account or login into an existing one. The GUI version does this on startup with a wizard, for the console version execute the following commands (the program will promt for the password to register with or to login with and exist afterwards):
Note: if you have compiled the software yourself you don't need to use sudo and you can just execute glimpse-console directly.
To start the GLIMPSE console version (prebuild):
Note: if you have compiled the software yourself you don't have the start up service.
To start the GLIMPSE GUI version (prebuild):
To start the GLIMPSE console or GUI version from within the Qt Creator:
GLIMPSE will receive specifications from our servers and execute them in the background. You can execute specifications yourself in the GUI version with the help of the Toolbox and view results on the Results page (the later is still a working in progress). The console version does not display results or allow the execution of own measurements, but the results from remotely scheduled measurements can be viewed in the project directory (~/.local/share/HS-Augsburg/mPlaneClient/results/).
Apply the same installation-steps as described for the pre-build console version above but use "http://distributor.measure-it.net/packages_mplane/" as package repository. You don't need to do the first time setup for this version.
To start GLIMPSE and connect it to an mPlane compliant supervisor use
*if using https you have to set the client certificate file (--client-cert), client private key file (--private-key) and the root ca cert file (--ca-cert)
This pushes the available capabilities to the supervisor and pulls new specifications regularly. Here are the steps to use the reference implementation with GLIMPSE
GLIMPSE was completely developed as part of the mPlane project.
The mPlane proxy interface was replaced by an infrastructure-less release version which can connect to any mPlane compliant supervisor. This makes it possible for other partners to use GLIMPSE with their own mPlane infrastructure.
The DNS and reverse DNS lookup measurements were added.
The GUI version now displays results in a table view instead of just dumping JSON files.
GLIMPSE Github project (standard release)
GLIMPSE Github project (infrastructure-less release)