You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by im...@apache.org on 2018/12/17 18:30:41 UTC

asterixdb git commit: [NO ISSUE] Tracer improvements

Repository: asterixdb
Updated Branches:
  refs/heads/master 81f3e7593 -> 7b0736801


[NO ISSUE] Tracer improvements

Log traces to their own log with custom level,
as well as make the emitted log work with the
chrome tracer without modification

Change-Id: I81c158fcd17927d65e7b501345fdbc98001ba86a
Reviewed-on: https://asterix-gerrit.ics.uci.edu/3064
Reviewed-by: Ian Maxon <im...@apache.org>
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Ali Alsuliman <al...@gmail.com>


Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/7b073680
Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/7b073680
Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/7b073680

Branch: refs/heads/master
Commit: 7b073680147ef8e24a51616c7a8be2a8e565124c
Parents: 81f3e75
Author: Ian Maxon <im...@apache.org>
Authored: Sun Dec 16 18:46:03 2018 -0800
Committer: Ian Maxon <im...@apache.org>
Committed: Mon Dec 17 10:27:00 2018 -0800

----------------------------------------------------------------------
 .../asterix-app/src/main/resources/log4j2.xml   | 11 ++++++++++
 .../control/nc/NCLogConfigurationFactory.java   | 22 +++++++++++++++-----
 .../org/apache/hyracks/util/trace/Event.java    |  6 +++++-
 .../org/apache/hyracks/util/trace/Tracer.java   | 16 +++++++-------
 4 files changed, 41 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/asterixdb/blob/7b073680/asterixdb/asterix-app/src/main/resources/log4j2.xml
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/main/resources/log4j2.xml b/asterixdb/asterix-app/src/main/resources/log4j2.xml
index 2ea8d4a..e54a424 100644
--- a/asterixdb/asterix-app/src/main/resources/log4j2.xml
+++ b/asterixdb/asterix-app/src/main/resources/log4j2.xml
@@ -19,6 +19,7 @@
 <Configuration status="WARN">
    <CustomLevels>
     <CustomLevel name="ACCESS" intLevel="550" />
+    <CustomLevel name="TRACER" intLevel="570" />
   </CustomLevels>
   <Appenders>
     <Console name="Console" target="SYSTEM_OUT">
@@ -27,6 +28,12 @@
     <Console name="AccessLog" target="SYSTEM_OUT">
       <PatternLayout pattern="%m%n"/>
     </Console>
+    <Console name="TracerLog" target="SYSTEM_OUT">
+      <PatternLayout pattern="%m%n"/>
+    </Console>
+    <File name="TracerLogFile" fileName="target/tracer.log">
+      <PatternLayout pattern="%m,%n" header="[" footer="]"/>
+    </File>
   </Appenders>
   <Loggers>
     <Root level="WARN">
@@ -36,5 +43,9 @@
     <Logger name="org.apache.hyracks.http.server.CLFLogger" level="ACCESS" additivity="false">
         <AppenderRef ref="AccessLog"/>
     </Logger>
+    <Logger name="org.apache.hyracks.util.trace.Tracer.Traces" level="TRACER" additivity="false">
+      <AppenderRef ref="TracerLog"/>
+      <AppenderRef ref="TracerLogFile"/>
+    </Logger>
   </Loggers>
 </Configuration>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/7b073680/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NCLogConfigurationFactory.java
----------------------------------------------------------------------
diff --git a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NCLogConfigurationFactory.java b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NCLogConfigurationFactory.java
index 41f8e7b..24c3dee 100644
--- a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NCLogConfigurationFactory.java
+++ b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-nc/src/main/java/org/apache/hyracks/control/nc/NCLogConfigurationFactory.java
@@ -51,10 +51,12 @@ public class NCLogConfigurationFactory extends ConfigurationFactory {
         ComponentBuilder triggeringPolicy = builder.newComponent("Policies")
                 .addComponent(builder.newComponent("CronTriggeringPolicy").addAttribute("schedule", "0 0 0 * * ?"))
                 .addComponent(builder.newComponent("SizeBasedTriggeringPolicy").addAttribute("size", "50M"));
-        AppenderComponentBuilder defaultRoll = builder.newAppender("default", "RollingFile")
-                .addAttribute("fileName", FileUtil.joinPath(logDir, "nc-" + nodeId + ".log"))
-                .addAttribute("filePattern", FileUtil.joinPath(logDir, "nc-" + nodeId + "-%d{MM-dd-yy}.log.gz"))
-                .add(defaultLayout).addComponent(triggeringPolicy);
+        AppenderComponentBuilder defaultRoll =
+                builder.newAppender("default", "RollingFile")
+                        .addAttribute("fileName", FileUtil.joinPath(logDir, "nc-" + nodeId + ".log"))
+                        .addAttribute("filePattern",
+                                FileUtil.joinPath(logDir, "nc-" + nodeId + "-%d{MM-dd-yy-ss}.log.gz"))
+                        .add(defaultLayout).addComponent(triggeringPolicy);
         builder.add(defaultRoll);
 
         // create the new logger
@@ -65,12 +67,22 @@ public class NCLogConfigurationFactory extends ConfigurationFactory {
                 builder.newAppender("access", "RollingFile")
                         .addAttribute("fileName", FileUtil.joinPath(logDir, "access-" + nodeId + ".log"))
                         .addAttribute("filePattern",
-                                FileUtil.joinPath(logDir, "access-" + nodeId + "-%d{MM-dd-yy}.log.gz"))
+                                FileUtil.joinPath(logDir, "access-" + nodeId + "-%d{MM-dd-yy-ss}.log.gz"))
                         .add(accessLayout).addComponent(triggeringPolicy);
         builder.add(accessRoll);
         builder.add(builder.newLogger("org.apache.hyracks.http.server.CLFLogger", Level.forName("ACCESS", 550))
                 .add(builder.newAppenderRef("access")).addAttribute("additivity", false));
 
+        LayoutComponentBuilder traceLayout = builder.newLayout("PatternLayout").addAttribute("pattern", "%m,%n")
+                .addAttribute("header", "[").addAttribute("footer", "]");
+        AppenderComponentBuilder traceRoll = builder.newAppender("trace", "RollingFile")
+                .addAttribute("fileName", logDir + "trace-" + nodeId + ".log")
+                .addAttribute("filePattern", logDir + "trace-" + nodeId + "-%d{MM-dd-yy-ss}.log.gz").add(traceLayout)
+                .addComponent(triggeringPolicy);
+        builder.add(traceRoll);
+        builder.add(builder.newLogger("org.apache.hyracks.util.trace.Tracer.Traces", Level.forName("TRACER", 570))
+                .add(builder.newAppenderRef("trace")).addAttribute("additivity", false));
+
         return builder.build();
     }
 

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/7b073680/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Event.java
----------------------------------------------------------------------
diff --git a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Event.java b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Event.java
index 3edba21..b5fe3d3 100644
--- a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Event.java
+++ b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Event.java
@@ -77,7 +77,11 @@ final class Event {
             sb.append(",\"s\":\"").append(scope).append("\"");
         }
         if (args != null) {
-            sb.append(",\"args\":").append(args);
+            if (args.isEmpty()) {
+                sb.append(",\"args\":").append("\"\"");
+            } else {
+                sb.append(",\"args\":").append(args);
+            }
         }
         sb.append("}");
         return sb;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/7b073680/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Tracer.java
----------------------------------------------------------------------
diff --git a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Tracer.java b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Tracer.java
index 1e8af75..9019fdf 100644
--- a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Tracer.java
+++ b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/trace/Tracer.java
@@ -34,20 +34,20 @@ import org.apache.logging.log4j.Logger;
  */
 public class Tracer implements ITracer {
 
-    public static final Logger LOGGER = LogManager.getLogger();
+    private static final Logger LOGGER = LogManager.getLogger();
 
-    protected static final Level TRACE_LOG_LEVEL = Level.INFO;
-    protected static final ThreadLocal<DateFormat> DATE_FORMAT =
+    private static final Level TRACE_LOG_LEVEL = Level.forName("TRACER", 570);
+    private static final ThreadLocal<DateFormat> DATE_FORMAT =
             ThreadLocal.withInitial(() -> new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX"));
 
-    protected final Logger traceLog;
-    protected long categories;
-    protected TraceCategoryRegistry registry;
+    private final Logger traceLog;
+    private long categories;
+    private final TraceCategoryRegistry registry;
 
-    protected static final int pid = PidHelper.getPid();
+    private static final int pid = PidHelper.getPid();
 
     public Tracer(String name, long categories, TraceCategoryRegistry registry) {
-        final String traceLoggerName = Tracer.class.getName() + "@" + name;
+        final String traceLoggerName = Tracer.class.getName() + ".Traces." + name;
         LOGGER.info("Initialize Tracer " + traceLoggerName);
         this.traceLog = LogManager.getLogger(traceLoggerName);
         this.categories = categories;