Skip to content
Snippets Groups Projects
Commit b7ba68a4 authored by Florian Fittkau's avatar Florian Fittkau
Browse files

implemented traceID concept

parent 1df8f331
No related branches found
No related tags found
No related merge requests found
...@@ -14,11 +14,15 @@ public class AspectWeaver { ...@@ -14,11 +14,15 @@ public class AspectWeaver {
} }
$wnd.moduleCacheJSLines = null $wnd.moduleCacheJSLines = null
$wnd.moduleCacheJSLineLength = 0 $wnd.moduleCacheJSLineLength = -1
$wnd.functionLineMap = {} $wnd.functionLineMap = {}
$wnd.filenameMap = {} $wnd.filenameMap = {}
$wnd.monitoringCache = [] $wnd.monitoringCache = []
$wnd.currentStackDepth = 0
$wnd.traceID = 0
$wnd.orderID = 0
$wnd.lastWrite = 0 $wnd.lastWrite = 0
$wnd.jQuery.get('http://localhost:9876/gwtmonitoring/' + $strongName $wnd.jQuery.get('http://localhost:9876/gwtmonitoring/' + $strongName
...@@ -32,14 +36,16 @@ public class AspectWeaver { ...@@ -32,14 +36,16 @@ public class AspectWeaver {
+ '_sourcemap.json'); + '_sourcemap.json');
function aspectInvoc(invocation) { function aspectInvoc(invocation) {
var toSeekName = 'function ' + invocation.method; // JS source not yet fetched therefore only proceed
if ($wnd.moduleCacheJSLineLength == -1)
return invocation.proceed();
var linenumber = -1; var linenumber = -1;
if (toSeekName in $wnd.functionLineMap) { if (invocation.method in $wnd.functionLineMap) {
linenumber = $wnd.functionLineMap[toSeekName] linenumber = $wnd.functionLineMap[invocation.method]
} else { } else {
// var firstL1 = $wnd.performance.now() // var firstL1 = $wnd.performance.now()
var toSeekName = 'function ' + invocation.method;
var toSeekNameLength = toSeekName.length var toSeekNameLength = toSeekName.length
var lines = $wnd.moduleCacheJSLines var lines = $wnd.moduleCacheJSLines
...@@ -51,7 +57,7 @@ public class AspectWeaver { ...@@ -51,7 +57,7 @@ public class AspectWeaver {
&& line[9] == firstMethodChar && line[9] == firstMethodChar
&& line.startsWith(toSeekName)) { && line.startsWith(toSeekName)) {
linenumber = i + 1; linenumber = i + 1;
$wnd.functionLineMap[toSeekName] = linenumber; $wnd.functionLineMap[invocation.method] = linenumber;
// console.log("lookup of " + toSeekName + " took " // console.log("lookup of " + toSeekName + " took "
// + ($wnd.performance.now() - firstL1)) // + ($wnd.performance.now() - firstL1))
break; break;
...@@ -59,44 +65,55 @@ public class AspectWeaver { ...@@ -59,44 +65,55 @@ public class AspectWeaver {
} }
} }
if (linenumber == -1)
return invocation.proceed();
var filename = null; var filename = null;
if (linenumber in $wnd.filenameMap) { if (linenumber in $wnd.filenameMap) {
filename = $wnd.filenameMap[linenumber] filename = $wnd.filenameMap[linenumber]
} else { } else {
// var look1 = $wnd.performance.now()
var filename = $wnd.jQuery().lookupFilename(linenumber) var filename = $wnd.jQuery().lookupFilename(linenumber)
$wnd.filenameMap[linenumber] = filename $wnd.filenameMap[linenumber] = filename
// console.log("filename lookup of " + filename + " took "
// + ($wnd.performance.now() - look1))
} }
if (!filename.indexOf("kieker/monitoring/gwt/client") == 0) if (!filename.startsWith("kieker/monitoring/gwt/client"))
return invocation.proceed() return invocation.proceed()
// dont monitor self... // dont monitor self...
if (filename.indexOf("kieker/monitoring/gwt/client/monitoring") == 0) if (filename.startsWith("kieker/monitoring/gwt/client/monitoring"))
return invocation.proceed() return invocation.proceed()
$wnd.monitoringCache.push(filename + ";" + invocation.method + ";" + $wnd.performance.now()); // BEFORE; should be an record ID
$wnd.monitoringCache.push("BEFORE;" + $wnd.performance.now() + ";" + $wnd.traceID + ";" + $wnd.orderID + ";" + filename + ";" + invocation.method);
$wnd.orderID++;
$wnd.currentStackDepth++;
var result = invocation.proceed(); var result = invocation.proceed();
var afterT = $wnd.performance.now(); $wnd.currentStackDepth--;
$wnd.monitoringCache.push(afterT);
if ($wnd.monitoringCache.length >= 1) { // TODO increase for normal use // AFTER; should be an record ID
$wnd.monitoringCache.push("AFTER;" + $wnd.performance.now() + ";" + $wnd.traceID + ";" + $wnd.orderID + ";" + filename + ";" + invocation.method);
$wnd.orderID++;
if ($wnd.monitoringCache.length >= 1) { // TODO increase for normal usage
@kieker.monitoring.gwt.client.monitoring.MetaMonitoringManager::sendRecordBundle(Ljava/lang/String;)($wnd.monitoringCache.toString()) @kieker.monitoring.gwt.client.monitoring.MetaMonitoringManager::sendRecordBundle(Ljava/lang/String;)($wnd.monitoringCache.toString())
$wnd.monitoringCache = []; $wnd.monitoringCache = [];
} }
// time triggered: // time triggered:
// if (afterT - $wnd.lastWrite > 1000) { // if (afterT - $wnd.lastWrite > 1000) {
// $wnd.lastWrite = afterT // $wnd.lastWrite = afterT
// @kieker.monitoring.gwt.client.monitoring.MetaMonitoringManager::sendRecordBundle(Ljava/lang/String;)($wnd.monitoringCache.toString()) // @kieker.monitoring.gwt.client.monitoring.MetaMonitoringManager::sendRecordBundle(Ljava/lang/String;)($wnd.monitoringCache.toString())
// $wnd.monitoringCache = []; // $wnd.monitoringCache = [];
// } // }
// LESS is if we started in the middle of the trace...
if ($wnd.currentStackDepth <= 0) {
// we finished the trace
$wnd.traceID++;
$wnd.orderID = 0;
$wnd.currentStackDepth = 0;
};
return result; return result;
} }
......
...@@ -17,9 +17,6 @@ public class MetaMonitoringServiceImpl extends RemoteServiceServlet implements ...@@ -17,9 +17,6 @@ public class MetaMonitoringServiceImpl extends RemoteServiceServlet implements
if (record.contains(";")) { if (record.contains(";")) {
// BEFORE record // BEFORE record
final String[] beforeRecordSplit = record.split(";"); final String[] beforeRecordSplit = record.split(";");
String clazzName = beforeRecordSplit[0].substring(0,
beforeRecordSplit[0].lastIndexOf(".") - 1);
clazzName = clazzName.replace("/", ".");
} else { } else {
// AFTER record // AFTER record
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment