From 3560b3e806ea71d1e0c0bb2a418f63bdbf704ccf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaros=C5=82aw=20Pa=C5=82ka?= Date: Fri, 26 Oct 2018 12:38:35 +0200 Subject: [PATCH 1/6] initial refactoring, using to stage pass, first we extract log event decorators and then we parse message --- .../imp/DataReaderUnifiedJvmLogging.java | 106 ++++++++++++++---- .../imp/TestDataReaderUJLSafepoint.java | 95 ++++++++++++++++ .../sample-ujl-safepoint-defaults.txt | 73 ++++++++++++ 3 files changed, 254 insertions(+), 20 deletions(-) create mode 100644 src/test/java/com/tagtraum/perf/gcviewer/imp/TestDataReaderUJLSafepoint.java create mode 100644 src/test/resources/openjdk/unified-jvm-logging/sample-ujl-safepoint-defaults.txt diff --git a/src/main/java/com/tagtraum/perf/gcviewer/imp/DataReaderUnifiedJvmLogging.java b/src/main/java/com/tagtraum/perf/gcviewer/imp/DataReaderUnifiedJvmLogging.java index 48f2e0ec..b9a8fe1a 100644 --- a/src/main/java/com/tagtraum/perf/gcviewer/imp/DataReaderUnifiedJvmLogging.java +++ b/src/main/java/com/tagtraum/perf/gcviewer/imp/DataReaderUnifiedJvmLogging.java @@ -21,6 +21,7 @@ import com.tagtraum.perf.gcviewer.model.GCEventUJL; import com.tagtraum.perf.gcviewer.model.GCModel; import com.tagtraum.perf.gcviewer.model.GCResource; +import com.tagtraum.perf.gcviewer.model.VmOperationEvent; import com.tagtraum.perf.gcviewer.util.DateHelper; import com.tagtraum.perf.gcviewer.util.NumberParser; @@ -47,6 +48,24 @@ */ public class DataReaderUnifiedJvmLogging extends AbstractDataReader { + class LogEvent { + + final String time; + final String uptime; + final String level; + final String tags; + final String message; + + LogEvent(String time, String uptime, String level, String tags, String message) { + this.time = time; + this.uptime = uptime; + this.level = level; + this.tags = tags; + this.message = message; + } + + } + // matches the whole line and extracts decorators from it (decorators always appear between [] and are independent of the gc algorithm being logged) // Input: [0.693s][info][gc ] GC(0) Pause Init Mark 1.070ms // Group 1 / time: (optional group, no full timestamp present) @@ -57,13 +76,18 @@ public class DataReaderUnifiedJvmLogging extends AbstractDataReader { // Group 6 / tail: Pause Init Mark 1.070ms // Regex: ^(?:\[(?