diff --git a/server/src/main/java/io/druid/server/QueryResource.java b/server/src/main/java/io/druid/server/QueryResource.java index 90284b22e4c1..6cd317592b91 100644 --- a/server/src/main/java/io/druid/server/QueryResource.java +++ b/server/src/main/java/io/druid/server/QueryResource.java @@ -185,6 +185,8 @@ public Response doPost( @Context final HttpServletRequest req // used to get request content-type, remote address and AuthorizationInfo ) throws IOException { + // Both startMs and startNs are needed: startMs is absolute time and startNs is high-resolution. + final long startMs = System.currentTimeMillis(); final long startNs = System.nanoTime(); Query query = null; QueryToolChest toolChest = null; @@ -322,7 +324,7 @@ public void write(OutputStream outputStream) throws IOException, WebApplicationE requestLogger.log( new RequestLogLine( - new DateTime(TimeUnit.NANOSECONDS.toMillis(startNs)), + new DateTime(startMs), req.getRemoteAddr(), theQuery, new QueryStats( @@ -388,7 +390,7 @@ public void write(OutputStream outputStream) throws IOException, WebApplicationE queryMetrics.reportQueryTime(queryTimeNs).emit(emitter); requestLogger.log( new RequestLogLine( - new DateTime(TimeUnit.NANOSECONDS.toMillis(startNs)), + new DateTime(startMs), req.getRemoteAddr(), query, new QueryStats( @@ -433,7 +435,7 @@ public void write(OutputStream outputStream) throws IOException, WebApplicationE queryMetrics.reportQueryTime(queryTimeNs).emit(emitter); requestLogger.log( new RequestLogLine( - new DateTime(TimeUnit.NANOSECONDS.toMillis(startNs)), + new DateTime(startMs), req.getRemoteAddr(), query, new QueryStats(ImmutableMap.of(