From 5083f008143063d28ccb94fb4ccaa0f5cf1f97ba Mon Sep 17 00:00:00 2001 From: Matthias <m.blohm@etermio.com> Date: Sat, 17 Dec 2016 15:40:11 +0100 Subject: [PATCH] traceFile path fix, axis description added, C & I filter fix --- .../JPetStore/SelectService.dql | 2 +- .../JPetStore/SelectUtilization.dql | 2 +- .../dql/connector/kieker/KiekerHelper.java | 34 +++++++++++++------ .../PerformanceMetricsQueryConnectorImpl.java | 4 +++ .../filter/ClassAndInterfaceFilter.java | 6 +++- 5 files changed, 34 insertions(+), 14 deletions(-) diff --git a/tools.descartes.dql.connector.kieker.examples/JPetStore/SelectService.dql b/tools.descartes.dql.connector.kieker.examples/JPetStore/SelectService.dql index 81e7491..a387da2 100644 --- a/tools.descartes.dql.connector.kieker.examples/JPetStore/SelectService.dql +++ b/tools.descartes.dql.connector.kieker.examples/JPetStore/SelectService.dql @@ -1,3 +1,3 @@ SELECT srv1.ResponseTime.DEFAULT -FOR SERVICE 'org.mybatis.jpetstore.web.actions.CatalogActionBean' AS srv1 +FOR SERVICE 'org.mybatis.jpetstore.web.actions.CatalogActionBean.getItem()' AS srv1 USING kieker@'JPetStore.properties'; \ No newline at end of file diff --git a/tools.descartes.dql.connector.kieker.examples/JPetStore/SelectUtilization.dql b/tools.descartes.dql.connector.kieker.examples/JPetStore/SelectUtilization.dql index 83a42a5..722883d 100644 --- a/tools.descartes.dql.connector.kieker.examples/JPetStore/SelectUtilization.dql +++ b/tools.descartes.dql.connector.kieker.examples/JPetStore/SelectUtilization.dql @@ -1,3 +1,3 @@ SELECT res1.utilization.SAMPLE -FOR RESOURCE 'cpu1' AS res1 +FOR RESOURCE 'cpu3' AS res1 USING kieker@'JPetStore.properties'; \ No newline at end of file diff --git a/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/KiekerHelper.java b/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/KiekerHelper.java index e7ec803..a66f2bb 100644 --- a/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/KiekerHelper.java +++ b/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/KiekerHelper.java @@ -241,7 +241,7 @@ public class KiekerHelper { Configuration readerConfig = new Configuration(); for (int i = 0; i< traceFolders.length; i++){ - readerConfig.setProperty("TRACE_"+i, outputPath+File.separator+traceFolders[i]); + readerConfig.setProperty("TRACE_"+i, traceFolders[i]); } for (Entity e : request.getEntities()) { @@ -287,6 +287,19 @@ public class KiekerHelper { return new File(current, name).isDirectory(); } }); + if (directories.length > 0){ + return directories; + } + // if no folders found, files might be directly under this path and not in a subfolder + String[] files = file.list(new FilenameFilter() { + @Override + public boolean accept(File current, String name) { + return (name.endsWith(".map") || name.endsWith(".dat")); + } + }); + if (files.length > 1){ + directories = new String[]{file.getAbsolutePath()}; + } return directories; } @@ -331,15 +344,14 @@ public class KiekerHelper { public static boolean checkTraceFilesExist(String path){ File file = new File(path); - return true; -// if (!file.exists() || ! file.isDirectory()){ -// return false; -// } -// String[] folders = getTraceFolders(path); -// if (folders.length>0){ -// return true; -// } else { -// return false; -// } + if (!file.exists() || ! file.isDirectory()){ + return false; + } + String[] folders = getTraceFolders(path); + if (folders.length>0){ + return true; + } else { + return false; + } } } diff --git a/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/PerformanceMetricsQueryConnectorImpl.java b/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/PerformanceMetricsQueryConnectorImpl.java index 1a73b7d..3e2f89d 100644 --- a/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/PerformanceMetricsQueryConnectorImpl.java +++ b/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/PerformanceMetricsQueryConnectorImpl.java @@ -79,6 +79,8 @@ public class PerformanceMetricsQueryConnectorImpl extends if (KiekerHelper.METRIC_UTILIZATION.equalsIgnoreCase(dqlProbe.getMetricName())) { if (st.getTypeName().equals("DEFAULT") || st.getTypeName().equals("SAMPLE")){ ContinuousSeriesResult result = domainFactory.createContinuousSeriesResult(); + result.setXAxisDescription("ms"); + result.setYAxisDescription("% (between 0 and 1)"); if (resources != null && resources.size() > 0) { try { for (ResourceRecord record : resources) { @@ -100,6 +102,8 @@ public class PerformanceMetricsQueryConnectorImpl extends } else if (KiekerHelper.METRIC_RESPONSE_TIME.equalsIgnoreCase(dqlProbe.getMetricName())) { if (st.getTypeName().equals("DEFAULT") || st.getTypeName().equals("SAMPLE")){ ContinuousSeriesResult res = domainFactory.createContinuousSeriesResult(); + res.setXAxisDescription("ms"); + res.setYAxisDescription("ms"); if (services != null) { try { Component comp = new Component(KiekerHelper.getComponentString(ent.getIdentifier())); diff --git a/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/filter/ClassAndInterfaceFilter.java b/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/filter/ClassAndInterfaceFilter.java index bdf26fe..0295c50 100644 --- a/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/filter/ClassAndInterfaceFilter.java +++ b/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/filter/ClassAndInterfaceFilter.java @@ -53,6 +53,7 @@ public class ClassAndInterfaceFilter extends AbstractFilterPlugin { final String hostName = opExRecord.getHostname(); final String signature = opExRecord.getOperationSignature(); + final long exTime = opExRecord.getTout()-opExRecord.getTin(); final String classPattern = "[\\p{Graph}]+((\\.)(\\w)*[<(].*[>)])";//String-pattern to extract the component information final String interfacePattern = "((\\.)(\\w)*[<(].*[>)])";//String-pattern to extract the component information @@ -70,7 +71,10 @@ public class ClassAndInterfaceFilter extends AbstractFilterPlugin { String[] redundantInfo=signature.split(classPattern); //(redundantInfo + classAndInterfaceString) - redundantInfo = classAndInterfaceString - String classAndInterfaceString = signature.substring(redundantInfo[0].length()); + String classAndInterfaceString = signature; + if (redundantInfo.length > 0){ + classAndInterfaceString = signature.substring(redundantInfo[0].length()); + } //extraction of the class information String[] componentSeparatedByNonWordChar = classAndInterfaceString.split(interfacePattern); -- GitLab