diff --git a/lib/appmetrics-dash.js b/lib/appmetrics-dash.js index 8118731..6506870 100644 --- a/lib/appmetrics-dash.js +++ b/lib/appmetrics-dash.js @@ -27,6 +27,7 @@ var latestCPUEvent; var latestMemEvent; var latestGCEvent; var latestLoopEvent; +var latestMysqlQueries = []; var aggregateHttpEvent; var aggregateHttpOutboundEvent; var aggregateHttpsEvent; @@ -448,6 +449,10 @@ exports.monitor = function(options) { }); monitoring.on('mysql', function(data) { + while (latestMysqlQueries.length>300){ + latestMysqlQueries.shift(); + } + latestMysqlQueries.push({query:data.query,duration:data.duration}); addProbeEvent('MySQL', data); }); @@ -515,6 +520,9 @@ function emitData() { io.emit('https-outbound', JSON.stringify(aggregateHttpsOutboundEvent)); aggregateHttpsOutboundEvent = null; } + if (latestMysqlQueries){ + io.emit('mysql', JSON.stringify(latestMysqlQueries)); + } if (aggregateProbeEvents.length > 0) { io.emit('probe-events', JSON.stringify(aggregateProbeEvents)); aggregateProbeEvents = []; diff --git a/public/index.html b/public/index.html index 40c3c84..cb8b4dc 100644 --- a/public/index.html +++ b/public/index.html @@ -114,7 +114,8 @@
-
+
+
@@ -194,6 +195,7 @@ + @@ -210,6 +212,7 @@ let envTable = new TextTable('#envDiv', '#summary', localizedStrings.envTitle); let summaryTable = new TextTable('#summaryDiv', '#summary', localizedStrings.summaryTitle); let httpSummary = new HttpSummary('#httpSummaryDiv', '#summary', localizedStrings.httpSummaryTitle); + let mysqlSummary = new MysqlSummary('#mysqlSummaryDiv', '#summary', localizedStrings.mysqlSummaryTitle); httpSummary.setHttpSummaryOptions({host: hostname, filteredPath: dashboardRoot}); socket.emit('connected'); @@ -245,6 +248,9 @@ socket.on('https', function(data) { updateHttpsData(data); }); + socket.on('mysql', function(data) { + mysqlSummary.updateData(data); + }); socket.on('http-urls', function(data) { httpSummary.updateURLData(data); }); @@ -310,6 +316,7 @@ envTable.resizeTable(); summaryTable.resizeTable(); httpSummary.resizeTable(); + mysqlSummary.resizeTable(); } else { refreshFlameGraph(); }