From c690deb96c6856c3a88315d917ded494ec08a038 Mon Sep 17 00:00:00 2001 From: Gian Merlino Date: Mon, 7 Aug 2017 14:12:52 -0700 Subject: [PATCH 1/2] QueryResource: Fix incorrect request log start times. A similar fix is included in #4561 but this patch has been cut down for the 0.10.1 branch. --- server/src/main/java/io/druid/server/QueryResource.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/io/druid/server/QueryResource.java b/server/src/main/java/io/druid/server/QueryResource.java index 90284b22e4c1..201f873a0f2f 100644 --- a/server/src/main/java/io/druid/server/QueryResource.java +++ b/server/src/main/java/io/druid/server/QueryResource.java @@ -185,6 +185,7 @@ public Response doPost( @Context final HttpServletRequest req // used to get request content-type, remote address and AuthorizationInfo ) throws IOException { + final long startMs = System.currentTimeMillis(); final long startNs = System.nanoTime(); Query query = null; QueryToolChest toolChest = null; @@ -322,7 +323,7 @@ public void write(OutputStream outputStream) throws IOException, WebApplicationE requestLogger.log( new RequestLogLine( - new DateTime(TimeUnit.NANOSECONDS.toMillis(startNs)), + new DateTime(TimeUnit.MILLISECONDS.toMillis(startMs)), req.getRemoteAddr(), theQuery, new QueryStats( @@ -388,7 +389,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(TimeUnit.MILLISECONDS.toMillis(startMs)), req.getRemoteAddr(), query, new QueryStats( @@ -433,7 +434,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(TimeUnit.MILLISECONDS.toMillis(startMs)), req.getRemoteAddr(), query, new QueryStats(ImmutableMap.of( From 557d55898153ae625178cadc8ad56f7fa9c32f54 Mon Sep 17 00:00:00 2001 From: Gian Merlino Date: Mon, 7 Aug 2017 15:03:11 -0700 Subject: [PATCH 2/2] Fixups --- server/src/main/java/io/druid/server/QueryResource.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/io/druid/server/QueryResource.java b/server/src/main/java/io/druid/server/QueryResource.java index 201f873a0f2f..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,7 @@ 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; @@ -323,7 +324,7 @@ public void write(OutputStream outputStream) throws IOException, WebApplicationE requestLogger.log( new RequestLogLine( - new DateTime(TimeUnit.MILLISECONDS.toMillis(startMs)), + new DateTime(startMs), req.getRemoteAddr(), theQuery, new QueryStats( @@ -389,7 +390,7 @@ public void write(OutputStream outputStream) throws IOException, WebApplicationE queryMetrics.reportQueryTime(queryTimeNs).emit(emitter); requestLogger.log( new RequestLogLine( - new DateTime(TimeUnit.MILLISECONDS.toMillis(startMs)), + new DateTime(startMs), req.getRemoteAddr(), query, new QueryStats( @@ -434,7 +435,7 @@ public void write(OutputStream outputStream) throws IOException, WebApplicationE queryMetrics.reportQueryTime(queryTimeNs).emit(emitter); requestLogger.log( new RequestLogLine( - new DateTime(TimeUnit.MILLISECONDS.toMillis(startMs)), + new DateTime(startMs), req.getRemoteAddr(), query, new QueryStats(ImmutableMap.of(