@Override public void end() { endTime = TimeService.currentTimeMillis(); }
@Override public synchronized void start() { if (!started) { startTime = TimeService.nanoTime(); started = true; } }
public static void waitFor(BooleanSupplier condition) { TimeService.waitFor(condition, 60, TimeUnit.SECONDS, 1); }
protected MarkerEvent() { this(TimeService.currentTimeMillis()); }
public Request(Statistics statistics) { this(statistics, TimeService.nanoTime()); }
public Value(Number value) { this.timestamp = TimeService.currentTimeMillis(); this.value = value; }
public void failed(Operation operation) { this.responseCompleteTime = TimeService.nanoTime(); this.successful = false; record(operation); }
protected long getWaitTime(long startTime) { return startTime + timeout - TimeService.currentTimeMillis(); }
@Override public void begin() { super.begin(); beginNanos = TimeService.nanoTime(); }
@Override public void begin() { beginTime = TimeService.currentTimeMillis(); }
@Override public boolean moreToRun() { boolean moreToRun = duration == 0 ? true : TimeService.nanoTime() < startTime + duration; if (!moreToRun) { runCompletionHandler(); } return moreToRun; }
public void establish() throws IOException { discoverySelector = Selector.open(); serverSocketChannel.register(discoverySelector, SelectionKey.OP_ACCEPT); mcastBuffer = ByteBuffer.allocate(DEFAULT_WRITE_BUFF_CAPACITY); int slaveCount = 0; long deadline = TimeService.currentTimeMillis() + CONNECT_TIMEOUT; while (slaveCount < slaves.length) { long timeout = deadline - TimeService.currentTimeMillis(); if (timeout <= 0) { throw new IOException((slaves.length - slaveCount) + " slaves haven't connected within timeout!"); } log.info("Awaiting registration from " + (slaves.length - slaveCount) + " slaves."); slaveCount += connectSlaves(timeout); } log.info("Connection established from " + slaveCount + " slaves."); }
public void succeeded(Operation operation) { this.responseCompleteTime = TimeService.nanoTime(); record(operation); }
public static void backupFile(File outputFile) { if (outputFile.exists()) { int lastIndexOfDot = outputFile.getName().lastIndexOf('.'); String extension = lastIndexOfDot > 0 ? outputFile.getName().substring(lastIndexOfDot) : ""; File old = new File(outputFile.getParentFile(), "old"); if (!old.exists()) { if (old.mkdirs()) { log.warn("Issues whilst creating dir: " + old); } } String fileName = outputFile.getName() + ".old." + TimeService.currentTimeMillis() + extension; File newFile = new File(old, fileName); log.info("A file named: '" + outputFile.getAbsolutePath() + "' already exists. Moving it to '" + newFile + "'"); if (!outputFile.renameTo(newFile)) { log.warn("Could not rename!!!"); } } }
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()); } }
private boolean checkMemoryReleased() { long percentage = -1; long currentFreeMemory = -1; long deadline = TimeService.currentTimeMillis() + memoryReleaseTimeout; for (; ; ) { System.gc(); Runtime runtime = Runtime.getRuntime(); currentFreeMemory = runtime.freeMemory() + runtime.maxMemory() - runtime.totalMemory(); percentage = (currentFreeMemory * 100) / initialFreeMemory; if (percentage > memoryThreshold || TimeService.currentTimeMillis() > deadline) break; log.infof("Available memory: %d kB (%d%% of initial available memory - %d kB)", currentFreeMemory / 1024, percentage, initialFreeMemory / 1024); Utils.sleep(1000); } if (percentage > memoryThreshold) { return true; } log.error("Using more memory than expected!"); return false; }
@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(); } } }
@Override public void runMonitor() { long now = TimeService.currentTimeMillis(); for (Map.Entry<String, Number> entry : internalsExposition.getValues().entrySet()) { timeline.addValue(Timeline.Category.customCategory(entry.getKey()), new Timeline.Value(now, entry.getValue())); } }
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; }
long deadline = TimeService.currentTimeMillis() + CONNECT_TIMEOUT; while (reconnections > 0) { log.infof("Waiting for %d reconnecting slaves", reconnections); long timeout = deadline - TimeService.currentTimeMillis(); if (timeout <= 0) { throw new IOException(reconnections + " slaves haven't connected within timeout!");