Massimo Candela

New RIPE Atlas Tool: LatencyMON

Massimo Candela
10

LatencyMON is a new RIPE Atlas web application that you can use to easily visualise and compare multiple latency trends collected by groups of RIPE Atlas probes.


Introduction

One of the most common uses of RIPE Atlas is monitoring latencies to a target machine from many vantage points located all over the world.  Usually the analysis of latencies requires plotting and comparing charts, where each chart is a group of vantage points that have something in common, such as being located in the same country or in the same Autonomous System.

We are happy to announce a brand new tool in the RIPE Atlas tool set that will help you with this task.  LatencyMON is an interactive tool designed to easily visualise and compare multiple latency trends collected by groups of RIPE Atlas probes.

LatencyMON allows you to group arbitrary sets of probes and merge and compare different measurements - even measurements to different targets.  It  uses the RIPE Atlas streaming system to update the charts in real time.

We designed the tool based on a number of use cases indicated by RIPE Atlas users:

  • Performance comparisons to reach a service or website from different countries or providers
  • Measuring the spread of a network outage
  • Measuring and comparing CDN or DNS resolution in multiple geographic areas
  • Re-using already created measurements - even for measurement types other than ping - to get information about latencies
  • Comparing multiple ISPs or hosting providers at the same time, from vantage points with characteristics similar to those at the user or customer end
  • Creating views that are easily shareable and can be embedded in reports

Overview

Figure 1 below shows the main view of LatencyMON.

The widget is embedded by default In the detail page of all the supported measurements, but it can be embedded in any external HTML page.

main view latencymon Figure 1: LatencyMON interface

The various trends are represented by means of stacked charts, each chart representing a single RIPE Atlas probe or group of probes.  By default, each chart will show Min, Med, and Max values of the collected latencies with three coloured lines. Each dot represents the exact time a sample was retrieved, and a filled dot means the original value was an outlier falling  outside the y-axis domain.

One of the main features of LatencyMON is the auto-tuning algorithm used to optimise the visualisation of multiple trends, often with big variations, on a common axis. This feature improves the readability of the entire scene without requiring the user to manually tune user interface controllers.

By hovering over a node, you can get all the information available about that sample, including the raw data.

When no data has been collected, an empty spot in one or more charts will appear. The red dashed lines represent the positions of the samples affected by packet loss. A protracted 100% packet loss will appear as a red dashed area.

Main Features

Latencymon allows multiple ping, traceroute, DNS, SSL and HTTP(S) measurements to be loaded at the same time.

All the probes involved in the loaded measurements appear in a list, as shown in Figure 3 below.

search probes

Figure 3: List of probes for loaded measurements

Grouping Probes

The user can filter probes by different attributes and select a set of probes to be displayed individually or as a group.  The grouping aggregates samples coming from different probes, allowing for a drastic reduction of the number of line charts displayed.  The charts can be  dragged to change their order, deleted or expanded. When a measurement is loaded at initialisation, an algorithm will automatically try to guess what the best grouping is for the measurement. For example, if multiple probes in multiple countries are available, a groping by country will be selected by default. If instead multiple targets are involved, a grouping by target is performed.  On the right of each chart, information about the element in the group is shown.

Navigating in Time

While a particular time frame for the measurement is represented, the time bar underneath the graph can be used to easily navigate throughout the measurement's lifetime. The selected time window can be expanded or reduced accordingly via the time bar or the controls on the top right of the window. It is also possible to zoom in or out by selecting a portion of a chart.

Real-time Monitoring

When the selected time frame is recent enough, the streaming feature will be activated and the current scene will be updated with the new samples coming in real time from the probes . An indicator on the bar on top marks the streaming status while the new samples appear from the left.  The axis may vary during the redraws since they are automatically calculated by the auto-tuning algorithm based on the samples available in the current time frame.

Permalink

The URL in the address bar of the browser is a permalink that can be used at any time to share the current scene.

Case Study: AMS-IX Outage

On 13 May 2015 at around 10:00 UTC, the Amsterdam Internet Exchange (AMS-IX) was involved in an outage that occurred during maintenance. As reported by the official source , an  engineer accidentally placed a loop on the platform and the AMS-IX Internet traffic was partially paralysed.

The RIPE Atlas network has multiple anchors placed around the world. All the anchors are constantly measured by a subset of the 8,800+ probes in the RIPE Atlas network.

The effects of the outage are visible by selecting one of those measurements, such as the ping measurement  1402318 It involves the anchor nl-ams-as1101.anchors.atlas.ripe.net, located in Amsterdam. Figure 4 below shows the result of loading this measurement in LatencyMON.

AMS_IX latencymon Figure 4: LatencyMON showing the AMS-IX outage on 13 May 2015

Some of the probes are grouped by country.  From 10:00 to 11:00 UTC, the various groups experienced 50% to 100% packet loss, depicted by the red areas. LatencyMON allowed us to see the effects of the outage on the rest of the world in real time, thanks to the streaming service.

See LatencyMON in action for the above example .

Upcoming Features

One of the most requested features was to be able to compare multiple trends in the same chart. Although this feature is not yet available in the beta version, it will soon become available via a comparison chart option while creating a group. In this case, the various probes involved in the group will be represented by a specific coloured line, as shown in the bottom chart in Figure 2 below. 

Figure 2: Different chart types are available

We will further investigate smart-sorting features for automatic ordering of the charts based on performance parameters or similarity among the charts. 

Source Code and Documentation

You can get the source code - and contribute - on GitHub.

If you just want to use the tool, you don't need the source code. LatencyMON can be embedded in any HTML page.

Please refer to the LatencyMON documentation for more details.

Feedback

We always want to hear what you think about the tools and services we offer. And we would especially like to hear about your own use cases for LatencyMON.

Here's how to get in touch:

  • If you want to report a bug or problem: atlas [at] ripe [dot] net
  • Please subscribe to the RIPE Atlas mailing list for discussions with active users and RIPE Atlas developers: ripe-atlas [at] ripe [dot] net
  • For direct feedback: Contact Massimo Candela at mcandela [at] ripe [dot] net
10

You may also like

View more

About the author

Massimo Candela Based in Amsterdam

Massimo Candela is a Senior Software Engineer, focusing on developing web applications that provide a visual and interactive representation of large amounts of network data. From 2013 to 2019 he has been part of the R&D department of RIPE NCC. Some of the tools he’s played a key role in developing are the go-to resources for network operators to monitor certain aspects of Internet performance, including RIPE IPmap, RIPE Atlas, RIPEstat, BGPlay, TraceMON and DNSMON.

Comments 10