public void addAwsClientExecuteTime(Duration duration) { awsClientExecuteTime.add(duration); }
public void addAwsRequestTime(Duration duration) { awsRequestTime.add(duration); }
public void readDataBytesPerSecond(long bytes, long nanos) { readBytes.add(bytes); if (bytes < 100 * 1024) { time0Bto100KB.add(nanos, NANOSECONDS); } else if (bytes < 1024 * 1024) { time100KBto1MB.add(nanos, NANOSECONDS); } else if (bytes < 10 * 1024 * 1024) { time1MBto10MB.add(nanos, NANOSECONDS); } else { time10MBPlus.add(nanos, NANOSECONDS); } }
public void recordGetSplitTime(long startNanos) { long elapsedNanos = System.nanoTime() - startNanos; getSplitDistribution.add(elapsedNanos); scheduledStats.getGetSplitTime().add(elapsedNanos, NANOSECONDS); }
private synchronized void addNewEntrants() { // Ignore intermediate splits when checking minimumNumberOfDrivers. // Otherwise with (for example) minimumNumberOfDrivers = 100, 200 intermediate splits // and 100 leaf splits, depending on order of appearing splits, number of // simultaneously running splits may vary. If leaf splits start first, there will // be 300 running splits. If intermediate splits start first, there will be only // 200 running splits. int running = allSplits.size() - intermediateSplits.size(); for (int i = 0; i < minimumNumberOfDrivers - running; i++) { PrioritizedSplitRunner split = pollNextSplitWorker(); if (split == null) { break; } splitQueuedTime.add(Duration.nanosSince(split.getCreatedNanos())); startSplit(split); } }
private synchronized void scheduleTaskIfNecessary(TaskHandle taskHandle) { // if task has less than the minimum guaranteed splits running, // immediately schedule a new split for this task. This assures // that a task gets its fair amount of consideration (you have to // have splits to be considered for running on a thread). if (taskHandle.getRunningLeafSplits() < min(guaranteedNumberOfDriversPerTask, taskHandle.getMaxDriversPerTask().orElse(Integer.MAX_VALUE))) { PrioritizedSplitRunner split = taskHandle.pollNextSplit(); if (split != null) { startSplit(split); splitQueuedTime.add(Duration.nanosSince(split.getCreatedNanos())); } } }
private void splitFinished(PrioritizedSplitRunner split) { completedSplitsPerLevel.incrementAndGet(split.getPriority().getLevel()); synchronized (this) { allSplits.remove(split); long wallNanos = System.nanoTime() - split.getCreatedNanos(); splitWallTime.add(Duration.succinctNanos(wallNanos)); if (intermediateSplits.remove(split)) { intermediateSplitWallTime.add(wallNanos); intermediateSplitScheduledTime.add(split.getScheduledNanos()); intermediateSplitWaitTime.add(split.getWaitNanos()); intermediateSplitCpuTime.add(split.getCpuTimeNanos()); } else { leafSplitWallTime.add(wallNanos); leafSplitScheduledTime.add(split.getScheduledNanos()); leafSplitWaitTime.add(split.getWaitNanos()); leafSplitCpuTime.add(split.getCpuTimeNanos()); } TaskHandle taskHandle = split.getTaskHandle(); taskHandle.splitComplete(split); scheduleTaskIfNecessary(taskHandle); addNewEntrants(); } // call destroy outside of synchronized block as it is expensive and doesn't need a lock on the task executor split.destroy(); }
public void addTimeToLastByte(Duration duration) { timeToLastByte.add(duration); } }
void connectionCheckedOut(Duration elapsedTime) { checkout.add(elapsedTime); }
public void add(Duration duration) { add((long) duration.getValue(TimeUnit.NANOSECONDS)); }
public void add(Duration duration) { add((long) duration.getValue(TimeUnit.NANOSECONDS)); }
public <T> T time(Callable<T> callable) throws Exception { long start = ticker.read(); T result = callable.call(); add(ticker.read() - start); return result; }
public void recordGetSplitTime(long startNanos) { long elapsedNanos = System.nanoTime() - startNanos; getSplitDistribution.add(elapsedNanos); scheduledStats.getGetSplitTime().add(elapsedNanos, NANOSECONDS); }
public <T> T time(Callable<T> callable) throws Exception { long start = ticker.read(); T result = callable.call(); add(ticker.read() - start); return result; }
public void record(String method, int responseCode, long requestSizeInBytes, long responseSizeInBytes, Duration schedulingDelay, Duration requestProcessingTime) { request.update(1); requestTime.add(requestProcessingTime); readBytes.add(requestSizeInBytes); writtenBytes.add(responseSizeInBytes); }
public void record(long requestSizeInBytes, long responseSizeInBytes, Duration requestProcessingTime) { request.update(1); requestTime.add(requestProcessingTime); readBytes.add(requestSizeInBytes); writtenBytes.add(responseSizeInBytes); }
@Test public void testUnit() { TimeStat stat = new TimeStat(ticker, TimeUnit.MILLISECONDS); stat.add(1, TimeUnit.SECONDS); TimeDistribution allTime = stat.getAllTime(); assertEquals(allTime.getMin(), 1000.0); assertEquals(allTime.getMax(), 1000.0); }