@Override public synchronized void start() { if (!started) { startTime = TimeService.nanoTime(); started = true; } }
public Request(Statistics statistics) { this(statistics, TimeService.nanoTime()); }
@Override public void begin() { super.begin(); beginNanos = TimeService.nanoTime(); }
public void failed(Operation operation) { this.responseCompleteTime = TimeService.nanoTime(); this.successful = false; record(operation); }
@Override public boolean moreToRun() { boolean moreToRun = duration == 0 ? true : TimeService.nanoTime() < startTime + duration; if (!moreToRun) { runCompletionHandler(); } return moreToRun; }
public void succeeded(Operation operation) { this.responseCompleteTime = TimeService.nanoTime(); record(operation); }
public static void threadDump() { long start = TimeService.nanoTime(); Map<Thread, StackTraceElement[]> stacktraces = Thread.getAllStackTraces(); long duration = TimeService.nanoTime() - start; log.warn("Thread dump took " + TimeUnit.NANOSECONDS.toMillis(duration) + " ms:"); for (Entry<Thread, StackTraceElement[]> st : stacktraces.entrySet()) { StringBuilder sb = new StringBuilder(); sb.append("Stack for thread "); sb.append(st.getKey().getName()); sb.append(" ("); sb.append(st.getKey().getState()); sb.append("):\n"); for (StackTraceElement ste : st.getValue()) { sb.append(ste.toString()); sb.append('\n'); } log.warn(sb.toString()); } }
@Override public void run() { while (true) { log("Running check"); long pre = TimeService.nanoTime(); Map<Thread, StackTraceElement[]> stacks = Thread.getAllStackTraces(); long post = TimeService.nanoTime(); log("Thread.getAllStackTraces() took " + (post - pre) + " nanoseconds"); for (Thread t : stacks.keySet()) { String name = t.getName(); if (!name.equals(WATCHDOG) && (mask == null || name.contains(mask))) { StackTraceElement[] stack = stacks.get(t); if (stack.length < shortStack) { continue; } boolean stuck = isStuck(t, stack); if (!onlyStuck || stuck) { traceStack(t, stack, stuck); } } } lastStacks = stacks; try { Thread.sleep(period); } catch (InterruptedException e) { log.error("Thread has been interrupted", e); Thread.currentThread().interrupt(); } } }
public <T> T exec(Operation operation, Supplier<T> supplier, Predicate<T> predicate) { T value; try { value = supplier.get(); } catch (Throwable t) { failed(operation); throw t; } responseCompleteTime = TimeService.nanoTime(); try { successful = predicate.test(value); } catch (Throwable t) { successful = false; throw t; } finally { record(operation); } return value; }
@Override public void logProgress(int executedOps) { long now = TimeService.nanoTime(); //make sure this info is not printed more frequently than 20 secs if (lastPrint < 0 || (now - lastPrint) < logFrequency) { return; } synchronized (this) { if (now - lastPrint < logFrequency) return; lastPrint = now; //make sure negative durations are not printed long remaining = Math.max(0, (startTime + duration) - now); log.infof(PROGRESS_STRING, executedOps, Utils.getNanosDurationString(now - startTime), Utils.getNanosDurationString(remaining), Utils.getNanosDurationString(duration)); } } }
@Override public void logProgress(int executedOps) { long now = TimeService.nanoTime(); //make sure this info is not printed more frequently than 20 secs if (lastPrint < 0 || (now - lastPrint) < logFrequency) { return; } synchronized (this) { if (now - lastPrint < logFrequency) return; lastPrint = now; log.infof(PROGRESS_STRING, executedOps, Utils.getNanosDurationString(now - startTime), operationCount.toString(), operationsPerNode); } } }
public DistStageAck executeOnSlave() { if (!isServiceRunning()) { log.info("Not running test on this slave as service is not running."); return successfulResponse(); } prepare(); try { long startNanos = TimeService.nanoTime(); log.info("Starting test " + testName); stressorsManager = setUpAndStartStressors(); waitForStressorsToFinish(stressorsManager); destroy(); log.info("Finished test. Test duration is: " + Utils.getNanosDurationString(TimeService.nanoTime() - startNanos)); return newStatisticsAck(stressorsManager.getStressors()); } catch (Exception e) { return errorResponse("Exception while initializing the test", e); } }
uniformRateLimiterStart = TimeService.nanoTime(); stats.begin(); this.started = true;