summaryrefslogtreecommitdiff
path: root/python/gras/stats/main.js
blob: 696c0615be18bac78cde832e31438db31462921a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/***********************************************************************
 * visuals
 **********************************************************************/

var gras_setup_individual_charts = function(point)
{
    var charts = $('#individual_charts').get(0);
    $('block', point).each(function()
    {
        $('<input>').attr({
            type: 'checkbox',
            name: $(this).attr('id'),
            value: '1',
            checked: '1',
            onclick: function()
            {
                
            }
        }).appendTo(charts);
        $(charts).append($(this).attr('id') + '&nbsp;');
    });
}


var gras_update_throughput_chart = function(data)
{
    if (data.history.length == 1) return gras_setup_individual_charts(data.history[0]);
    if (data.history.length < 2) return;

    var ids = data.getBlockIds();
    var data_set = [['Throughput'].concat(ids)];
    for (var i = Math.max(data.history.length-10, 1); i < data.history.length; i++)
    {
        var row = new Array();
        row.push(i.toString());
        for (var j = 0; j < ids.length; j++)
        {
            row.push(gras_extract_throughput_delta(data.history[i-1], data.history[i], ids[j])/1e6);
        }
        data_set.push(row);
    }


    var data = google.visualization.arrayToDataTable(data_set);

    var options = {
        title: 'Throughput per block over time',
        vAxis: {title: "rate (MIps)"},
        hAxis: {title: "time (seconds)"}
    };

    var chart = new google.visualization.LineChart($('#overall_charts').get(0));
    chart.draw(data, options);

}

/***********************************************************************
 * Query stats
 **********************************************************************/
var gras_query_stats = function(data)
{
    $.ajax({
        type: "GET",
        async: true,
        url: "/stats.xml",
        dataType: "xml",
        success: function(xml)
        {
            if ($(xml, "gras_stats") !== undefined)
            {
                data.appendPoint(xml);
                gras_update_throughput_chart(data);
            }
            var onceHandle = window.setTimeout(function() {
              gras_query_stats(data);
            }, 500);
        }
    });
}

/***********************************************************************
 * Init
 **********************************************************************/
var gras_stats_main = function()
{
    var data = new GrasStatsRegistry();
    gras_query_stats(data);
}