Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Record scheduled time in QueryCompletedEvent #5991

Merged
merged 1 commit into from Nov 18, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -157,6 +157,7 @@ public void queryImmediateFailureEvent(BasicQueryInfo queryInfo, ExecutionFailur
Optional.empty(),
Optional.empty(),
Optional.empty(),
Optional.empty(),
0,
0,
0,
Expand Down Expand Up @@ -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())),
Expand Down
Expand Up @@ -24,6 +24,7 @@ public class QueryStatistics
private final Duration cpuTime;
private final Duration wallTime;
private final Duration queuedTime;
private final Optional<Duration> scheduledTime;
private final Optional<Duration> waitingTime;
private final Optional<Duration> analysisTime;
private final Optional<Duration> planningTime;
Expand Down Expand Up @@ -69,6 +70,7 @@ public QueryStatistics(
Duration cpuTime,
Duration wallTime,
Duration queuedTime,
Optional<Duration> scheduledTime,
Optional<Duration> waitingTime,
Optional<Duration> analysisTime,
Optional<Duration> planningTime,
Expand Down Expand Up @@ -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");
Expand Down Expand Up @@ -140,6 +143,11 @@ public Duration getQueuedTime()
return queuedTime;
}

public Optional<Duration> getScheduledTime()
{
return scheduledTime;
}

public Optional<Duration> getResourceWaitingTime()
{
return waitingTime;
Expand Down
Expand Up @@ -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());
Expand Down
Expand Up @@ -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());
Expand Down