You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Introduction

The PingER Metrics Intensity Mapsare intensity maps of the Internet performance as measured by PingER. Having gathered data since 1998, the charts enable the users to study the trends and significant improvements as well as degradations. The different sets of charts (w.r.t. regions) enables the users to study the progress made by countries in comparison to their neighbours as well as the world in general.

These charts were made from the Google Visualization API for intensity maps.

Below are some examples of observations made from Stanford Linear Accelerator Center (SLAC), USA:

Average RTT (ms)
(World, 2008)

Minimum RTT (ms)
(Africa, 2006)

Normalized Throughput (Kbps)
(World, 2008)

Unreachability (%)
(World, 2008)

Interpretation

Each of the intensity maps (also known as heat maps) present a single metric as observed by PingER monitoring nodes. Each country is coloured with respect to the measured performance by selecting colours from the gradient defined at the bottom. The measurement at the left bottom (white) defines the minimum value observed, where as the measurement at the right bottom (solid colour) defines the maximum value observed. The tabs are labeled with the metric name along with their units.

Implementation Details

HTML output

To create the intensity maps, the data must be loaded in a data structure (as explained by the Google Visualization API and) shown below:

<html>
  <head>
    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load("visualization", "1", {packages:["intensitymap"]});
      google.setOnLoadCallback(drawChart);
      function drawChart() {
        var data = new google.visualization.DataTable();
        data.addColumn('string', '', 'Country');
        data.addColumn('number', 'Average RTT (ms)', 'a');
        data.addColumn('number', 'Normalized Throughput (Kbps)', 'b');
        data.addColumn('number', 'Internet Users (#)', 'c');
        data.addColumn('number', 'Internet Penetration (%)', 'd');
        data.addColumn('number', 'Minimum RTT (ms)', 'e');
        data.addColumn('number', 'Packet Loss (%)', 'f');
        data.addColumn('number', 'Unreachability (%)', 'g');
        data.addColumn('number', 'Jitter (ms)', 'h');

        data.addRows(3);

        data.setValue(0, 0, "AF");
        data.setValue(0, 1, 743.925);
        data.setValue(0, 2, 2029.71824405769);
        data.setValue(0, 3, 25000);
        data.setValue(0, 4, 0.1);
        data.setValue(0, 5, 690.421);
        data.setValue(0, 6, 1.115);
        data.setValue(0, 7, 6.217);
        data.setValue(0, 8, 12.922);

        data.setValue(1, 0, "DZ");
        data.setValue(1, 1, 251.264);
        data.setValue(1, 2, 1818.78324078846);
        data.setValue(1, 3, 845000);
        data.setValue(1, 4, 2.6);
        data.setValue(1, 5, 208.571);
        data.setValue(1, 6, 1.103);
        data.setValue(1, 7, 8.006);
        data.setValue(1, 8, 4.764);

        data.setValue(2, 0, "AD");
        data.setValue(2, 1, 167.507);
        data.setValue(2, 2, 11732.2839646154);
        data.setValue(2, 3, 24500);
        data.setValue(2, 4, 35.7);
        data.setValue(2, 5, 158.672);
        data.setValue(2, 6, 0.033);
        data.setValue(2, 7, 1.734);
        data.setValue(2, 8, 0.765);

        var chart = new google.visualization.IntensityMap(document.getElementById('chart_div'));
        chart.draw(data, {});
      }
    </script>
  </head>

  <body>
    <div id="chart_div"></div>
  </body>
</html>

The data must comply with the formatting requirements (as stated by Google Visualization API and copied below):

  • The first column should be a string, and contain country ISO 3166-1-alpha-2 codes.
  • Any number of columns can follow, all must be numeric. Note that each numerical column defines a separate tab on the chart.

Relevant files

Following are the files involved in the process of generating the HTML page:


  • No labels