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 4a46c19..444cd4f 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
@@ -18,9 +18,13 @@
  */
 package org.apache.hyracks.util.trace;
 
+import java.util.concurrent.TimeUnit;
+
 import org.apache.hyracks.util.trace.Tracer.Scope;
 
 final class Event {
+    private static final long NANOTIME_DELTA_TO_EPOCH = System.nanoTime()
+            - TimeUnit.MILLISECONDS.toNanos(System.currentTimeMillis());
     public final String name;
     public final String cat;
     public final Tracer.Phase ph;
@@ -43,7 +47,7 @@
     }
 
     private static long timestamp() {
-        return System.nanoTime() / 1000;
+        return (System.nanoTime() - NANOTIME_DELTA_TO_EPOCH) / 1000;
     }
 
     public static Event create(String name, String cat, Tracer.Phase ph, int pid, long tid, Scope scope, String args) {
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 4dc2394..cd152a2 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
@@ -19,7 +19,10 @@
 
 package org.apache.hyracks.util.trace;
 
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
 import java.util.Arrays;
+import java.util.Date;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -31,6 +34,8 @@
 public class Tracer {
 
     protected static final Level TRACE_LOG_LEVEL = Level.INFO;
+    protected static final String CAT = "Tracer";
+    protected static final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
 
     protected final Logger traceLog;
     protected String[] categories;
@@ -70,6 +75,13 @@
     public Tracer(String name, String[] categories) {
         this.traceLog = Logger.getLogger(Tracer.class.getName() + "@" + name);
         this.categories = categories;
+        instant("Trace-Start", CAT, Scope.p, dateTimeStamp());
+    }
+
+    public static String dateTimeStamp() {
+        synchronized (DATE_FORMAT) {
+            return DATE_FORMAT.format(new Date());
+        }
     }
 
     public static Tracer none() {
