kieker-monitoring / kieker

Kieker's main repository
Apache License 2.0
70 stars 41 forks source link

[KIEKER-429] Some filters do not provide valid default Configurations #1321

Closed rju closed 20 hours ago

rju commented 6 days ago

JIRA Issue: KIEKER-429 Some filters do not provide valid default Configurations Original Reporter: Andre van Hoorn


As identified today:

1. ExecutionTraceWriterFilter
2. InvalidExecutionTraceWriterFilter
3. MessageTraceWriterFilter

rju commented 2 days ago

author André van Hoorn -- Thu, 19 Jul 2012 14:13:00 +0200

Replying to KIEKER-429 Done :
> As identified today:
>
> 1. ExecutionTraceWriterFilter
> 2. InvalidExecutionTraceWriterFilter
> 3. MessageTraceWriterFilter

Fixed these 3 filters in changeset:9aa82efb136e40d685a4a445c05da862e6a32d00/kieker-git

The default files, written to the working directory, are now:

  1. executionTraces-yyyymmdd-hhmmsssSSS.txt
    2. invalidTraceArtifacts-yyyymmdd-hhmmsssSSS.txt
    3. messageTraces-yyyymmdd-hhmmsssSSS.txt
    With yyyymmdd-hhmmsssSSS being the date/time when getDefaultConfiguration is invoked by the framework.

Example implementation from ExecutionTraceWriterFilter:

#!java
    Override
    protected Configuration getDefaultConfiguration() {
        final DateFormat date = new SimpleDateFormat("yyyyMMdd'-'HHmmssSSS", Locale.US);
        date.setTimeZone(TimeZone.getTimeZone("UTC"));
        final String dateStr = date.format(new java.util.Date()); // NOPMD (Date)
        final String defaultFn = Constants.EXECUTION_TRACES_FN_PREFIX + "-" + dateStr + ".txt";

        final Configuration configuration = new Configuration();
        configuration.setProperty(CONFIG_PROPERTY_NAME_OUTPUT_FN, defaultFn);
        return configuration;
    }

Test

Temporarily disabled the file name configuration in the TraceAnalysisTool:

voornpc-vanhoorn:0:~/git_work/kieker <master> $ git diff src/tools/kieker/tools/traceAnalysis/TraceAnalysisTool.java
diff --git a/src/tools/kieker/tools/traceAnalysis/TraceAnalysisTool.java b/src/tools/kieker/tools/traceAnalysis/TraceAnalysisTool.java
index 2f1ffe6..88d939c 100644
--- a/src/tools/kieker/tools/traceAnalysis/TraceAnalysisTool.java
+++ b/src/tools/kieker/tools/traceAnalysis/TraceAnalysisTool.java
 -454,10 +454,10  public final class TraceAnalysisTool {
                                numRequestedTasks++;
                                final Configuration componentPrintMsgTraceConfig = new Configuration();
                                componentPrintMsgTraceConfig.setProperty(AbstractPlugin.CONFIG_NAME, Constants.PRINTMSGTRACE_COMPONENT_NAME);
-                               componentPrintMsgTraceConfig.setProperty(MessageTraceWriterFilter.CONFIG_PROPERTY_NAME_OUTPUT_FN, new File(TraceAnalysisTool.outputDir
-                                               + File.separator
-                                               + TraceAnalysisTool.outputFnPrefix + Constants.MESSAGE_TRACES_FN_PREFIX + ".txt")
-                                               .getCanonicalPath());
+                               // componentPrintMsgTraceConfig.setProperty(MessageTraceWriterFilter.CONFIG_PROPERTY_NAME_OUTPUT_FN, new File(TraceAnalysisTool.outputDir
+                               // + File.separator
+                               // + TraceAnalysisTool.outputFnPrefix + Constants.MESSAGE_TRACES_FN_PREFIX + ".txt")
+                               // .getCanonicalPath());
                                componentPrintMsgTrace = new MessageTraceWriterFilter(componentPrintMsgTraceConfig);
                                analysisInstance.registerFilter(componentPrintMsgTrace);
                                analysisInstance.connect(mtReconstrFilter, TraceReconstructionFilter.OUTPUT_PORT_NAME_MESSAGE_TRACE,
 -474,10 +474,10  public final class TraceAnalysisTool {
                                numRequestedTasks++;
                                final Configuration componentPrintExecTraceConfig = new Configuration();
                                componentPrintExecTraceConfig.setProperty(AbstractPlugin.CONFIG_NAME, Constants.PRINTEXECTRACE_COMPONENT_NAME);
-                               componentPrintExecTraceConfig.setProperty(ExecutionTraceWriterFilter.CONFIG_PROPERTY_NAME_OUTPUT_FN, new File(TraceAnalysisTool.outputDir
-                                               + File.separator
-                                               + TraceAnalysisTool.outputFnPrefix + Constants.EXECUTION_TRACES_FN_PREFIX + ".txt")
-                                               .getCanonicalPath());
+                               // componentPrintExecTraceConfig.setProperty(ExecutionTraceWriterFilter.CONFIG_PROPERTY_NAME_OUTPUT_FN, new File(TraceAnalysisTool.outputDir
+                               // + File.separator
+                               // + TraceAnalysisTool.outputFnPrefix + Constants.EXECUTION_TRACES_FN_PREFIX + ".txt")
+                               // .getCanonicalPath());
                                componentPrintExecTrace = new ExecutionTraceWriterFilter(componentPrintExecTraceConfig);
                                analysisInstance.registerFilter(componentPrintExecTrace);
                                analysisInstance.connect(mtReconstrFilter, TraceReconstructionFilter.OUTPUT_PORT_NAME_EXECUTION_TRACE,
 -495,10 +495,11  public final class TraceAnalysisTool {
                                final Configuration componentPrintInvalidTraceConfig = new Configuration();
                                componentPrintInvalidTraceConfig.setProperty(AbstractPlugin.CONFIG_NAME,
                                                Constants.PRINTINVALIDEXECTRACE_COMPONENT_NAME);
-                               componentPrintInvalidTraceConfig.setProperty(InvalidExecutionTraceWriterFilter.CONFIG_PROPERTY_NAME_OUTPUT_FN, new File(TraceAnalysisTool.outputDir
-                                               + File.separator
-                                               + TraceAnalysisTool.outputFnPrefix
-                                               + Constants.INVALID_TRACES_FN_PREFIX + ".txt").getCanonicalPath());
+                               // componentPrintInvalidTraceConfig.setProperty(InvalidExecutionTraceWriterFilter.CONFIG_PROPERTY_NAME_OUTPUT_FN, new
+                               // File(TraceAnalysisTool.outputDir
+                               // + File.separator
+                               // + TraceAnalysisTool.outputFnPrefix
+                               // + Constants.INVALID_TRACES_FN_PREFIX + ".txt").getCanonicalPath());
                                componentPrintInvalidTrace = new InvalidExecutionTraceWriterFilter(componentPrintInvalidTraceConfig);
                                analysisInstance.registerFilter(componentPrintInvalidTrace);
                                analysisInstance.connect(mtReconstrFilter, TraceReconstructionFilter.OUTPUT_PORT_NAME_INVALID_EXECUTION_TRACE,

Broke the example log from the examples:

voornpc-vanhoorn:0:~/git_work/kieker <master> $ git diff examples/userguide/ch5--trace-monitoring-aspectj/testdata/kieker-20100830-082225522-UTC/kieker-20100830-082225582-UTC-Thread-2.dat
diff --git a/examples/userguide/ch5--trace-monitoring-aspectj/testdata/kieker-20100830-082225522-UTC/kieker-20100830-082225582-UTC-Thread-2.dat b/examples/userguide/ch5--trace-monitoring-aspectj/testdata/kieker
index 1beac69..c7fc2dd 100644
--- a/examples/userguide/ch5--trace-monitoring-aspectj/testdata/kieker-20100830-082225522-UTC/kieker-20100830-082225582-UTC-Thread-2.dat
+++ b/examples/userguide/ch5--trace-monitoring-aspectj/testdata/kieker-20100830-082225522-UTC/kieker-20100830-082225582-UTC-Thread-2.dat
 -1,4 +1,4 
-$0;1283156545581511026;0;bookstoreTracing.Catalog.getBook(boolean);N/A;6488138950668976130;1283156498771185344;1283156498773323582;SRV1;1;1
+$0;1283156545581511026;0;bookstoreTracing.Catalog.getBook(boolean);N/A;6488138950668976130;1283156498771185344;1283156498773323582;SRV1;1;17
 $0;1283156545582989159;0;bookstoreTracing.Catalog.getBook(boolean);N/A;6488138950668976129;1283156498770900902;1283156498773404399;SRV1;1;1
 $0;1283156545583183369;0;bookstoreTracing.Catalog.getBook(boolean);N/A;6488138950668976131;1283156498771217428;1283156498773467142;SRV0;1;1
 $0;1283156545583394575;0;bookstoreTracing.Catalog.getBook(boolean);N/A;6488138950668976133;1283156498771886455;1283156498773909331;SRV1;1;1

Execution of the trace analysis:

voornpc-vanhoorn:0:~/git_work/kieker <master> $ bin/trace-analysis.sh -i examples/userguide/ch5--trace-monitoring-aspectj/testdata/kieker-20100830-082225522-UTC/ -o tmp/ --print-Execution-Traces --print-Message-Traces --print-invalid-Execution-Traces --ignore-invalid-traces
#
# Configuration
--inputdirs: examples/userguide/ch5--trace-monitoring-aspectj/testdata/kieker-20100830-082225522-UTC/
--outputdir: tmp//
--output-filename-prefix: 
--plot-Deployment-Sequence-Diagrams: false
--plot-Assembly-Sequence-Diagrams: false
--plot-Deployment-Component-Dependency-Graph: false
--plot-Assembly-Component-Dependency-Graph: false
--plot-Container-Dependency-Graph: false
--plot-Deployment-Operation-Dependency-Graph: false
--plot-Assembly-Operation-Dependency-Graph: false
--plot-Aggregated-Deployment-Call-Tree: false
--plot-Aggregated-Assembly-Call-Tree: false
--plot-Call-Trees: false
--print-Message-Traces: true
--print-Execution-Traces: true
--print-invalid-Execution-Traces: true
--print-Deployment-Equivalence-Classes: false
--print-Assembly-Equivalence-Classes: false
--select-traces: <select all>
--ignore-invalid-traces: true
--max-trace-duration: 600000 ms
--ignore-executions-before-date: Thu, 1 Jan 1970 00:00:00 +0000 (UTC) (Thu, 1 Jan 1970 01:00:00 +0100 (local time))
--ignore-executions-after-date: Fri, 11 Apr 2262 23:47:16 +0000 (UTC) (Sat, 12 Apr 2262 01:47:16 +0200 (local time))
--short-labels: false
--include-self-loops: false

#
# Plugin: 
Wrote HTML output of system model to file '/home/voorn/git_work/kieker/tmp/system-entities.html'

#
# Plugin: Print message traces
Trace processing summary: 1634 total; 1634 succeeded; 0 failed.
Wrote 1634 traces to file 'messageTraces-20120719-120750667.txt'

#
# Plugin: Print execution traces
Trace processing summary: 1634 total; 1634 succeeded; 0 failed.
Wrote 1634 execution traces to file 'executionTraces-20120719-120750669.txt'

#
# Plugin: Print invalid execution traces
Trace processing summary: 1 total; 1 succeeded; 0 failed.
Wrote 1 execution trace artifact to file 'invalidTraceArtifacts-20120719-120750671.txt'

#
# Plugin: Trace reconstruction (execution records -> execution traces)
Trace processing summary: 1635 total; 1634 succeeded; 1 failed.
First timestamp: 1283156498770302094 (Mon, 30 Aug 2010 08:21:38 +0000 (UTC),Mon, 30 Aug 2010 10:21:38 +0200 (local time))
Last timestamp: 1283156499363031606 (Mon, 30 Aug 2010 08:21:39 +0000 (UTC),Mon, 30 Aug 2010 10:21:39 +0200 (local time))

#
# Plugin: Trace reconstruction (event record traces -> execution traces)
Trace processing summary: 0 total; 0 succeeded; 0 failed.

See 'kieker.log' for details

real    0m1.763s
user    0m2.716s
sys     0m0.148s

Files written to the current directory:

voornpc-vanhoorn:0:~/git_work/kieker <master> $ ll *.txt
-rw-r--r-- 1 voorn voorn 1034322 2012-07-19 14:09 executionTraces-20120719-120955017.txt
-rw-r--r-- 1 voorn voorn     635 2012-07-19 14:09 invalidTraceArtifacts-20120719-120955019.txt
-rw-r--r-- 1 voorn voorn 3098064 2012-07-19 14:09 messageTraces-20120719-120955015.txt

Reset changes to log and TraceAnalysisTool

voornpc-vanhoorn:0:~/git_work/kieker <master> $ git checkout -- examples/userguide/ch5--trace-monitoring-aspectj/testdata/kieker-20100830-082225522-UTC/kieker-20100830-082225582-UTC-Thread-2.dat src/tools/kieker/tools/traceAnalysis/TraceAnalysisTool.java
voornpc-vanhoorn:0:~/git_work/kieker <master> $ git status
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   src/tools/kieker/tools/traceAnalysis/filter/traceWriter/ExecutionTraceWriterFilter.java
#       modified:   src/tools/kieker/tools/traceAnalysis/filter/traceWriter/InvalidExecutionTraceWriterFilter.java
#       modified:   src/tools/kieker/tools/traceAnalysis/filter/traceWriter/MessageTraceWriterFilter.java
rju commented 2 days ago

author André van Hoorn -- Thu, 19 Jul 2012 14:29:12 +0200

The following filters also do not provide valid default configurations:

However, they belong to the kieker.tools.logReplayer to be refactored/removed ( KIEKER-694 Done ).

Hence, we should close this ticket after KIEKER-694 Done is closed (including the removal of the above-mentioned classes).

rju commented 2 days ago

author nils-christian -- Sat, 21 Jul 2012 20:09:19 +0200

Just for the protocol: I do confirm that the three filters in question (ExecutionTraceWriterFilter , InvalidExecutionTraceWriterFilter, MessageTraceWriterFilter) are now usable in the Kieker.WebGUI.

rju commented 2 days ago

author André van Hoorn -- Thu, 2 Aug 2012 10:12:18 +0200

Replying to [avh|comment:2]:
> The following filters also do not provide valid default configurations:
>
> * RealtimeReplayDistributor
> * RecordDelegationPlugin
>
> However, they belong to the kieker.tools.logReplayer to be refactored/removed ( KIEKER-694 Done ).
>
> Hence, we should close this ticket after KIEKER-694 Done is closed (including the removal of the above-mentioned classes).

The classes no longer exist, as a result of the refactoring in KIEKER-694 Done