6 function domain_name_sort(a,b) {
7 parts_a = a.split(".");
8 parts_b = b.split(".");
9 parts_a = parts_a.reverse();
10 parts_b = parts_b.reverse();
11 a = parts_a.join(".");
12 b = parts_b.join(".");
13 return ((a < b) ? -1 : ((a > b) ? 1 : 0));
16 jQuery.fn.dataTableExt.oSort['domain-name-asc'] = function(a,b) {
17 return domain_name_sort(a,b);
20 jQuery.fn.dataTableExt.oSort['domain-name-desc'] = function(a,b) {
21 retuirn -domain_name_sort(a,b);
24 function updateCDNNodeData(data) {
25 $('#tabs-6').html( '<table cellpadding="0" cellspacing="0" border="0" class="display" id="dynamic_cdn_nodes"></table>' );
26 var actualEntries = [];
30 hostname = rows[row]['hostname'];
31 bytes_sent = rows[row]['sum_bytes_sent'];
32 bytes_hit = rows[row]['sum_bytes_hit'];
33 elapsed = rows[row]['sum_elapsed'];
34 healthy = rows[row]['sum_healthy'];
37 hit_ratio = parseInt( bytes_hit * 100.0 / bytes_sent );
42 Mbps = parseInt(rows[row]['sum_computed_bytes_sent_div_elapsed'] * 8.0 / 1024.0 / 1024.0);
50 actualEntries.push([hostname, healthyStr, Mbps, hit_ratio]);
52 oTable = $('#dynamic_cdn_nodes').dataTable( {
54 "aaData": actualEntries,
57 { "sTitle": "Hostname", sType: "domain-name" },
58 { "sTitle": "Healthy" },
59 { "sTitle": "Mbps" , sClass: "alignCenter"},
60 { "sTitle": "Hit Ratio" , sClass: "alignCenter"},
65 function updateCDNNodes() {
66 var url= '/analytics/bigquery/?event=hpc_heartbeat&sum=@bytes_sent,@bytes_hit,@healthy,@elapsed&computed=@bytes_sent/@elapsed&groupBy=@hostname&cached=1&cachedGroupBy=@hostname';
72 success: function(newData)
74 updateCDNNodeData(newData);
77 setTimeout(updateCDNNodes, 30000);
80 setTimeout(updateCDNNodes, 5000);