From bc10d24bcf564e5b562cc0ac6643ca5cae9febdb Mon Sep 17 00:00:00 2001 From: AnthorNet Date: Thu, 7 May 2015 14:16:49 +0200 Subject: [PATCH] Finalize first monitor html version --- contrib/monitor/index.html | 124 ++++++++++++--- contrib/monitor/js/eddn.js | 316 +++++++++++++++++++++++++++++++++---- 2 files changed, 389 insertions(+), 51 deletions(-) diff --git a/contrib/monitor/index.html b/contrib/monitor/index.html index 1a7284b..fa0c96d 100644 --- a/contrib/monitor/index.html +++ b/contrib/monitor/index.html @@ -37,10 +37,11 @@ @@ -59,14 +60,14 @@ -
+
-

Gateway

+

Gateways

- +
@@ -119,7 +120,7 @@

- EDDN version N/A. + EDDN version: N/A.

@@ -129,24 +130,25 @@

- Last updated N/A. + Last updated: N/A.

+
-
+
-

Relay

+

Relays

- +
@@ -194,7 +196,7 @@

- EDDN version N/A. + EDDN version: N/A.

@@ -204,20 +206,21 @@

- Last updated N/A. + Last updated: N/A.

+
-
+
-

Software

+

Softwares

@@ -225,17 +228,38 @@
- + +
+
+ + + + + + + + + + + + +
Today hitsYesterday hitsTotal hits
+
+
+
+
+
+
-
+
-

Uploader

+

Uploaders (Top 20)

@@ -243,7 +267,67 @@
- + +
+
+ + + + + + + + + + + + +
Today hitsYesterday hitsTotal hits
+
+
+
+
+
+ +
+
+
+ +
+ +
+
+
+

Schemas

+
+
+ +
+
+
+
+ +
+
+ + + + + + + + + + + + +
Today hitsYesterday hitsTotal hits
+
+
+
+
+
+
diff --git a/contrib/monitor/js/eddn.js b/contrib/monitor/js/eddn.js index 2d082fe..631f9bb 100644 --- a/contrib/monitor/js/eddn.js +++ b/contrib/monitor/js/eddn.js @@ -6,15 +6,19 @@ var updateInterval = 60000, relayBottlePort = 9090, relays = [ - 'eddn-gateway.elite-markets.net', - 'eddn-gateway.ed-td.space' + 'eddn-relay.elite-markets.net', + 'eddn-relay.ed-td.space' ]; // Must find a way to bind them to monitor var stats = { - 'gateway' : {}, - 'relay' : {} + 'gateways' : {}, + 'relays' : {} }; // Stats placeholder +formatNumber = function(num) { + return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,") +} + secondsToDurationString = function(seconds) { var hours = Math.floor(seconds / 3600); @@ -40,6 +44,192 @@ secondsToDurationString = function(seconds) { } +var doUpdateSoftwares = function() +{ + var yesterday = Date.parse('yesterday').toString("yyyy-MM-dd") + var today = Date.parse('today').toString("yyyy-MM-dd") + + $.ajax({ + dataType: "json", + url: monitorEndPoint + 'getSoftwares/?dateStart=' + yesterday + '&dateEnd = ' + today, + success: function(softwares){ + $.ajax({ + dataType: "json", + url: monitorEndPoint + 'getTotalSoftwares/', + success: function(softwaresTotal){ + var chart = $('#softwares .chart').highcharts(), + series = chart.get('softwares'); + + $('#softwares .table tbody').empty(); + + $.each(softwaresTotal, function(software, hits){ + $('#softwares .table tbody').append( + $('').attr('data-name', software).append( + $('').html('' + software + '') + ) + .append( + $('').addClass('stat today').html(formatNumber(softwares[today][software] || 0)) + ) + .append( + $('').addClass('stat yesterday').html(formatNumber(softwares[yesterday][software] || 0)) + ) + .append( + $('').addClass('stat total').html('' + formatNumber(hits) + '') + ) + ); + + var alreadyInChart = false; + for( var i = 0, len = chart.get('softwares').data.length; i < len; i++ ) + { + if(chart.get('softwares').data[i]['name'] == software) + { + chart.get('softwares').data[i].update(parseInt(hits), false); + alreadyInChart = true; + break; + } + } + + if(alreadyInChart === false) + series.addPoint({name: software, y: parseInt(hits)}, false); + }); + + chart.redraw(); + + $('#softwares').find(".stat").removeClass("warning").each(function() { + if ($(this).html() == "0") + $(this).addClass("warning"); + }); + } + }); + } + }); +} + + +var doUpdateUploaders = function() +{ + var yesterday = Date.parse('yesterday').toString("yyyy-MM-dd") + var today = Date.parse('today').toString("yyyy-MM-dd") + + $.ajax({ + dataType: "json", + url: monitorEndPoint + 'getUploaders/?dateStart=' + yesterday + '&dateEnd = ' + today, + success: function(uploaders){ + $.ajax({ + dataType: "json", + url: monitorEndPoint + 'getTotalUploaders/', + success: function(uploadersTotal){ + var chart = $('#uploaders .chart').highcharts(), + series = chart.get('uploaders'); + + $('#uploaders .table tbody').empty(); + + $.each(uploadersTotal, function(uploader, hits){ + $('#uploaders .table tbody').append( + $('').attr('data-name', uploader).append( + $('').html('' + uploader + '') + ) + .append( + $('').addClass('stat today').html(formatNumber(uploaders[today][uploader] || 0)) + ) + .append( + $('').addClass('stat yesterday').html(formatNumber(uploaders[yesterday][uploader] || 0)) + ) + .append( + $('').addClass('stat total').html('' + formatNumber(hits) + '') + ) + ); + + var alreadyInChart = false; + for( var i = 0, len = chart.get('uploaders').data.length; i < len; i++ ) + { + if(chart.get('uploaders').data[i]['name'] == uploader) + { + chart.get('uploaders').data[i].update(parseInt(hits), false); + alreadyInChart = true; + break; + } + } + + if(alreadyInChart === false) + series.addPoint({name: uploader, y: parseInt(hits)}, false); + }); + + chart.redraw(); + + $('#uploaders').find(".stat").removeClass("warning").each(function() { + if ($(this).html() == "0") + $(this).addClass("warning"); + }); + } + }); + } + }); +} + + +var doUpdateSchemas = function() +{ + var yesterday = Date.parse('yesterday').toString("yyyy-MM-dd") + var today = Date.parse('today').toString("yyyy-MM-dd") + + $.ajax({ + dataType: "json", + url: monitorEndPoint + 'getSchemas/?dateStart=' + yesterday + '&dateEnd = ' + today, + success: function(schemas){ + $.ajax({ + dataType: "json", + url: monitorEndPoint + 'getTotalSchemas/', + success: function(schemasTotal){ + var chart = $('#schemas .chart').highcharts(), + series = chart.get('schemas'); + + $('#schemas .table tbody').empty(); + + $.each(schemasTotal, function(schema, hits){ + $('#schemas .table tbody').append( + $('').attr('data-name', schema).append( + $('').html('' + schema + '') + ) + .append( + $('').addClass('stat today').html(formatNumber(schemas[today][schema] || 0)) + ) + .append( + $('').addClass('stat yesterday').html(formatNumber(schemas[yesterday][schema] || 0)) + ) + .append( + $('').addClass('stat total').html('' + formatNumber(hits) + '') + ) + ); + + var alreadyInChart = false; + for( var i = 0, len = chart.get('schemas').data.length; i < len; i++ ) + { + if(chart.get('schemas').data[i]['name'] == schema) + { + chart.get('schemas').data[i].update(parseInt(hits), false); + alreadyInChart = true; + break; + } + } + + if(alreadyInChart === false) + series.addPoint({name: schema, y: parseInt(hits)}, false); + }); + + chart.redraw(); + + $('#schemas').find(".stat").removeClass("warning").each(function() { + if ($(this).html() == "0") + $(this).addClass("warning"); + }); + } + }); + } + }); +} + + var doUpdates = function(type){ $("select[name=" + type + "] option").each(function(){ var currentItem = $(this).html(), @@ -65,7 +255,7 @@ var doUpdates = function(type){ shift = chart.get('outbound').data.length > 60; chart.get('outbound').addPoint([d.getTime(), (data['outbound'] || {})['1min'] || 0], true, shift); - if(type == 'gateway') + if(type == 'gateways') { shift = chart.get('invalid').data.length > 60; chart.get('invalid').addPoint([d.getTime(), (data['invalid'] || {})['1min'] || 0], true, shift); @@ -83,7 +273,7 @@ var showStats = function(type, currentItem){ el.find(".inbound_5min").html((currentItemStats["inbound"] || {})['5min'] || 0); el.find(".inbound_60min").html((currentItemStats["inbound"] || {})['60min'] || 0); - if(type == 'gateway') + if(type == 'gateways') { el.find(".invalid_1min").html((currentItemStats["invalid"] || {})['1min'] || 0); el.find(".invalid_5min").html((currentItemStats["invalid"] || {})['5min'] || 0); @@ -130,21 +320,20 @@ var start = function(){ gateway = gateway.replace('tcp://', ''); gateway = gateway.replace(':8500', ''); - $("select[name=gateway]").append($('