diff --git a/presto-main/src/main/java/io/prestosql/event/QueryMonitor.java b/presto-main/src/main/java/io/prestosql/event/QueryMonitor.java index 8eda0faf9bf55..a7505e9fd1bc7 100644 --- a/presto-main/src/main/java/io/prestosql/event/QueryMonitor.java +++ b/presto-main/src/main/java/io/prestosql/event/QueryMonitor.java @@ -157,6 +157,7 @@ public void queryImmediateFailureEvent(BasicQueryInfo queryInfo, ExecutionFailur Optional.empty(), Optional.empty(), Optional.empty(), + Optional.empty(), 0, 0, 0, @@ -238,6 +239,7 @@ private QueryStatistics createQueryStatistics(QueryInfo queryInfo) ofMillis(queryStats.getTotalCpuTime().toMillis()), ofMillis(queryStats.getElapsedTime().toMillis()), ofMillis(queryStats.getQueuedTime().toMillis()), + Optional.of(ofMillis(queryStats.getTotalScheduledTime().toMillis())), Optional.of(ofMillis(queryStats.getResourceWaitingTime().toMillis())), Optional.of(ofMillis(queryStats.getAnalysisTime().toMillis())), Optional.of(ofMillis(queryStats.getPlanningTime().toMillis())), diff --git a/presto-spi/src/main/java/io/prestosql/spi/eventlistener/QueryStatistics.java b/presto-spi/src/main/java/io/prestosql/spi/eventlistener/QueryStatistics.java index e47f3e2e27a28..77a3c4edda611 100644 --- a/presto-spi/src/main/java/io/prestosql/spi/eventlistener/QueryStatistics.java +++ b/presto-spi/src/main/java/io/prestosql/spi/eventlistener/QueryStatistics.java @@ -24,6 +24,7 @@ public class QueryStatistics private final Duration cpuTime; private final Duration wallTime; private final Duration queuedTime; + private final Optional scheduledTime; private final Optional waitingTime; private final Optional analysisTime; private final Optional planningTime; @@ -69,6 +70,7 @@ public QueryStatistics( Duration cpuTime, Duration wallTime, Duration queuedTime, + Optional scheduledTime, Optional waitingTime, Optional analysisTime, Optional planningTime, @@ -97,8 +99,9 @@ public QueryStatistics( { this.cpuTime = requireNonNull(cpuTime, "cpuTime is null"); this.wallTime = requireNonNull(wallTime, "wallTime is null"); - this.waitingTime = requireNonNull(waitingTime, "waitingTime is null"); this.queuedTime = requireNonNull(queuedTime, "queuedTime is null"); + this.scheduledTime = requireNonNull(scheduledTime, "scheduledTime is null"); + this.waitingTime = requireNonNull(waitingTime, "waitingTime is null"); this.analysisTime = requireNonNull(analysisTime, "analysisTime is null"); this.planningTime = requireNonNull(planningTime, "planningTime is null"); this.executionTime = requireNonNull(executionTime, "executionTime is null"); @@ -140,6 +143,11 @@ public Duration getQueuedTime() return queuedTime; } + public Optional getScheduledTime() + { + return scheduledTime; + } + public Optional getResourceWaitingTime() { return waitingTime; diff --git a/presto-tests/src/test/java/io/prestosql/execution/TestEventListenerBasic.java b/presto-tests/src/test/java/io/prestosql/execution/TestEventListenerBasic.java index 7f148229e0281..ea80d40e22d35 100644 --- a/presto-tests/src/test/java/io/prestosql/execution/TestEventListenerBasic.java +++ b/presto-tests/src/test/java/io/prestosql/execution/TestEventListenerBasic.java @@ -335,6 +335,7 @@ public void testOutputStats() assertEquals(statistics.getCpuTime().toMillis(), queryStats.getTotalCpuTime().toMillis()); assertEquals(statistics.getWallTime().toMillis(), queryStats.getElapsedTime().toMillis()); assertEquals(statistics.getQueuedTime().toMillis(), queryStats.getQueuedTime().toMillis()); + assertEquals(statistics.getScheduledTime().get().toMillis(), queryStats.getTotalScheduledTime().toMillis()); assertEquals(statistics.getResourceWaitingTime().get().toMillis(), queryStats.getResourceWaitingTime().toMillis()); assertEquals(statistics.getAnalysisTime().get().toMillis(), queryStats.getAnalysisTime().toMillis()); assertEquals(statistics.getPlanningTime().get().toMillis(), queryStats.getPlanningTime().toMillis()); diff --git a/presto-tests/src/test/java/io/prestosql/execution/TestEventListenerWithSplits.java b/presto-tests/src/test/java/io/prestosql/execution/TestEventListenerWithSplits.java index 3f2701da67520..4666916c70dd2 100644 --- a/presto-tests/src/test/java/io/prestosql/execution/TestEventListenerWithSplits.java +++ b/presto-tests/src/test/java/io/prestosql/execution/TestEventListenerWithSplits.java @@ -170,6 +170,7 @@ public void testSplitsForNormalQuery() assertTrue(statistics.isComplete()); // Check only the presence because they are non-deterministic. + assertTrue(statistics.getScheduledTime().isPresent()); assertTrue(statistics.getResourceWaitingTime().isPresent()); assertTrue(statistics.getAnalysisTime().isPresent()); assertTrue(statistics.getPlanningTime().isPresent());