1 google.load('visualization', '1', {'packages' : ['controls','table','corechart','geochart']});
3 function renderChart(newStyle, dialog, container, dataSourceUrl, yColumn, xColumn, aggFunc, options) {
5 $(dialog).dialog("open");
9 $(dialog).modal('show');
10 $('.modal-body').scrollTop(0);
13 console.log(dataSourceUrl);
15 var query = new google.visualization.Query(dataSourceUrl);
16 query && query.abort();
17 query.send(function(response) {handleResponse_psg(container, response, yColumn, xColumn, aggFunc, options);});
20 // NOTE: appended _psg to showLine() and handleResponse() to prevent conflict
21 // with Sapan's analytics page.
23 function agg_bandwidth(arr) {
25 for (var i = 0; i < arr.length; i++) {
26 ret+=arr[i]*8.0/1024.0/1024.0/1024.0;
31 function showLine_psg(container, dt, options) {
32 console.log("showline_psg");
39 'backgroundColor': 'transparent',
40 'titleTextStyle': {"color": "black"},
42 'hAxis': {"baselineColor": "darkBlue",
43 "textStyle": {"color": "black"}},
44 'vAxis': {"baselineColor": "darkBlue",
45 "textStyle": {"color": "black"}},
48 options = $.extend(true, {}, base_options, options);
50 var lineChart = new google.visualization.ChartWrapper({
51 'chartType': 'LineChart',
52 'containerId': container.substring(1),
53 'view': {'columns': [0, 1]},
56 lineChart.setDataTable(dt);
61 function fixDate(unixDate) {
62 return new Date(unixDate*1000);
65 function fixDate2(unixDate) {
66 return new Date(unixDate);
69 function handleResponse_psg(container, response, yColumn, xColumn, aggFunc, options) {
70 var supportedClasses = {
71 'Table':google.visualization.Table,
72 'LineChart':google.visualization.LineChart,
73 'ScatterChart':google.visualization.ScatterChart,
74 'ColumnChart':google.visualization.ColumnChart,
75 'GeoChart':google.visualization.GeoChart,
76 'PieChart':google.visualization.PieChart,
77 'Histogram':google.visualization.Histogram};
79 var proxy = new google.visualization.ChartWrapper({
81 'containerId': 'graph_work',
90 'view': {'columns': [0,1]}
93 google.visualization.events.addListener(proxy, 'ready', function () {
94 var dt = proxy.getDataTable();
95 var groupedData1 = google.visualization.data.group(dt, [{
103 label: dt.getColumnLabel(xColumn),
104 aggregation: aggFunc}]);
106 console.log(groupedData1.getColumnRange(0))
107 console.log(groupedData1.getColumnRange(1))
108 showLine_psg(container, groupedData1, options);
111 proxy.setDataTable(response.getDataTable());
116 $('.nodesLabel, .nodesValue').click(function() {
117 renderChart(false,"#chartsModal", "#graph", window.pageAnalyticsUrl, 0, "Number of Nodes", 2, "Node Count", google.visualization.data.sum);
120 $('.cpuLabel, .cpuValue').click(function() {
121 var jsonData = window.pageAnalyticsData;
122 renderChart(false,"#chartsModal", "#graph", window.pageAnalyticsUrl, 0, "Average CPU", 1, "Average CPU", google.visualization.data.sum);
124 $('.bandwidthLabel, .bandwidthValue').click(function() {
125 var jsonData = window.pageBandData;
126 renderChart(false,"#chartsModal", "#graph", window.pageBandUrl, 0, "Total Bandwidth (Gbps)", 1, "Total Bandwidth", agg_bandwidth);