/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.facebook.presto.spi.eventlistener;
import java.time.Duration;
import java.util.Optional;
import static java.util.Objects.requireNonNull;
public class QueryStatistics
{
private final Duration cpuTime;
private final Duration wallTime;
private final Duration queuedTime;
private final Optional<Duration> analysisTime;
private final Optional<Duration> distributedPlanningTime;
private final long peakMemoryBytes;
private final long totalBytes;
private final long totalRows;
private final int completedSplits;
private final boolean complete;
private final String operatorSummaries;
public QueryStatistics(
Duration cpuTime,
Duration wallTime,
Duration queuedTime,
Optional<Duration> analysisTime,
Optional<Duration> distributedPlanningTime,
long peakMemoryBytes,
long totalBytes,
long totalRows,
int completedSplits,
boolean complete,
String operatorSummaries)
{
this.cpuTime = requireNonNull(cpuTime, "cpuTime is null");
this.wallTime = requireNonNull(wallTime, "wallTime is null");
this.queuedTime = requireNonNull(queuedTime, "queuedTime is null");
this.analysisTime = requireNonNull(analysisTime, "analysisTime is null");
this.distributedPlanningTime = requireNonNull(distributedPlanningTime, "distributedPlanningTime is null");
this.peakMemoryBytes = requireNonNull(peakMemoryBytes, "peakMemoryBytes is null");
this.totalBytes = requireNonNull(totalBytes, "totalBytes is null");
this.totalRows = requireNonNull(totalRows, "totalRows is null");
this.completedSplits = requireNonNull(completedSplits, "completedSplits is null");
this.complete = complete;
this.operatorSummaries = requireNonNull(operatorSummaries, "operatorSummaries is null");
}
public Duration getCpuTime()
{
return cpuTime;
}
public Duration getWallTime()
{
return wallTime;
}
public Duration getQueuedTime()
{
return queuedTime;
}
public Optional<Duration> getAnalysisTime()
{
return analysisTime;
}
public Optional<Duration> getDistributedPlanningTime()
{
return distributedPlanningTime;
}
public long getPeakMemoryBytes()
{
return peakMemoryBytes;
}
public long getTotalBytes()
{
return totalBytes;
}
public long getTotalRows()
{
return totalRows;
}
public int getCompletedSplits()
{
return completedSplits;
}
public boolean isComplete()
{
return complete;
}
public String getOperatorSummaries()
{
return operatorSummaries;
}
}