@Setup(Level.Iteration) public void setup() { registry = new MetricRegistry(); histogram = registry.histogram("histogram"); histogramSlidingTimeWindow = registry.register("slidingTimeWindowHistogram", new Histogram(new SlidingTimeWindowReservoir(10, TimeUnit.SECONDS))); histogramUniform = registry.register("uniformHistogram", new Histogram(new UniformReservoir())); }
@Override public Snapshot getSnapshot() { final int s = size(); long[] copy = new long[s]; for (int i = 0; i < s; i++) { copy[i] = values.get(i); } return new UniformSnapshot(copy); } }
@Override public void update(long value) { final long c = count.incrementAndGet(); if (c <= values.length()) { values.set((int) c - 1, value); } else { final long r = nextLong(c); if (r < values.length()) { values.set((int) r, value); } } }
@Override public void update(long value) { final long c = count.incrementAndGet(); if (c <= values.length()) { values.set((int) c - 1, value); } else { final long r = nextLong(c); if (r < values.length()) { values.set((int) r, value); } } }
void testSetup() throws IOException { // test metrics latencyHistogram = YammerHistogramUtils.newHistogram(new UniformReservoir(1024 * 500)); valueSizeHistogram = YammerHistogramUtils.newHistogram(new UniformReservoir(1024 * 500)); // scan metrics rpcCallsHistogram = YammerHistogramUtils.newHistogram(new UniformReservoir(1024 * 500)); remoteRpcCallsHistogram = YammerHistogramUtils.newHistogram(new UniformReservoir(1024 * 500)); millisBetweenNextHistogram = YammerHistogramUtils.newHistogram(new UniformReservoir(1024 * 500)); regionsScannedHistogram = YammerHistogramUtils.newHistogram(new UniformReservoir(1024 * 500)); bytesInResultsHistogram = YammerHistogramUtils.newHistogram(new UniformReservoir(1024 * 500)); bytesInRemoteResultsHistogram = YammerHistogramUtils.newHistogram(new UniformReservoir(1024 * 500)); onStartup(); }
@Override public Snapshot getSnapshot() { final int s = size(); final List<Long> copy = new ArrayList<Long>(s); for (int i = 0; i < s; i++) { copy.add(values.get(i)); } return new Snapshot(copy); } }
@Test public void testZipfian() throws NoSuchMethodException, SecurityException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { TestOptions opts = new PerformanceEvaluation.TestOptions(); opts.setValueZipf(true); final int valueSize = 1024; opts.setValueSize(valueSize); RandomReadTest rrt = new RandomReadTest(null, opts, null); Constructor<?> ctor = Histogram.class.getDeclaredConstructor(com.codahale.metrics.Reservoir.class); ctor.setAccessible(true); Histogram histogram = (Histogram)ctor.newInstance(new UniformReservoir(1024 * 500)); for (int i = 0; i < 100; i++) { histogram.update(rrt.getValueLength(null)); } Snapshot snapshot = histogram.getSnapshot(); double stddev = snapshot.getStdDev(); assertTrue(stddev != 0 && stddev != 1.0); assertTrue(snapshot.getStdDev() != 0); double median = snapshot.getMedian(); assertTrue(median != 0 && median != 1 && median != valueSize); }
@Override public Snapshot getSnapshot() { final int s = size(); final List<Long> copy = new ArrayList<Long>(s); for (int i = 0; i < s; i++) { copy.add(values.get(i)); } return new Snapshot(copy); } }
public ReconciliationState startReconciliation() { final long taskReconciliationStartedAt = System.currentTimeMillis(); if (!isRunningReconciliation.compareAndSet(false, true)) { LOG.info("Reconciliation is already running, NOT starting a new reconciliation process"); return ReconciliationState.ALREADY_RUNNING; } if (!schedulerClient.isRunning()) { LOG.trace("Not running reconciliation - no active scheduler present"); isRunningReconciliation.set(false); return ReconciliationState.NO_DRIVER; } final List<SingularityTaskId> activeTaskIds = taskManager.getActiveTaskIds(); LOG.info("Starting a reconciliation cycle - {} current active tasks", activeTaskIds.size()); schedulerClient.reconcile(Collections.emptyList()); scheduleReconciliationCheck(taskReconciliationStartedAt, activeTaskIds, 0, new Histogram(new UniformReservoir())); return ReconciliationState.STARTED; }
@Override public Reservoir newInstance(Class<? extends Metric> metricClass, String metricName) { return new UniformReservoir(); } });
@Override public Reservoir newInstance(Class<? extends Metric> metricClass, String metricName) { return new UniformReservoir(); } });
public void clear() { this.histogram.set(new Histogram(new UniformReservoir())); this.count.set(0L); } }
public MergeableTimerSource() { this.clock = Clock.defaultClock(); this.count = new AtomicLong(); this.histogram = new AtomicReference<>(new Histogram(new UniformReservoir())); }
void configuration(@Observes MetricsConfiguration configuration) { configuration.reservoirFunction((name, type) -> { counter.incrementAndGet(); return Optional.of(new UniformReservoir()); }); } }
public void mergeTo(MergeableTimer timer) { Histogram hist = this.histogram.getAndSet(new Histogram(new UniformReservoir())); for (long l : hist.getSnapshot().getValues()) timer.histogram.update(l); timer.meter.mark(count.getAndSet(0L)); }
public MergeableTimer() { this.meter = new Meter(Clock.defaultClock()); this.histogram = new Histogram(new UniformReservoir()); }
public ReconciliationState startReconciliation() { final long taskReconciliationStartedAt = System.currentTimeMillis(); if (!isRunningReconciliation.compareAndSet(false, true)) { LOG.info("Reconciliation is already running, NOT starting a new reconciliation process"); return ReconciliationState.ALREADY_RUNNING; } if (!schedulerClient.isRunning()) { LOG.trace("Not running reconciliation - no active scheduler present"); isRunningReconciliation.set(false); return ReconciliationState.NO_DRIVER; } final List<SingularityTaskId> activeTaskIds = taskManager.getActiveTaskIds(); LOG.info("Starting a reconciliation cycle - {} current active tasks", activeTaskIds.size()); schedulerClient.reconcile(Collections.emptyList()); scheduleReconciliationCheck(taskReconciliationStartedAt, activeTaskIds, 0, new Histogram(new UniformReservoir())); return ReconciliationState.STARTED; }
private void initMetrics() { //Main DB Metrics metrics.register(metricName("write"), new Timer(new UniformReservoir())); metrics.register(metricName("write.rate"), new Meter()); metrics.register(metricName("read"), new Timer(new UniformReservoir())); metrics.register(metricName("read.rate"), new Meter()); metrics.register(metricName("scan"), new Timer(new UniformReservoir())); metrics.register(metricName("scan.rate"), new Meter()); //Write metrics.register(metricName("write.concurrentMemoryTableSerializers"), new Histogram(new UniformReservoir())); metrics.register(metricName("write.memoryTableSerialize"), new Timer(new UniformReservoir())); //Read metrics.register(metricName("read.tablesConsulted"), new Histogram(new UniformReservoir())); metrics.register(metricName("read.bloomFilterFalsePositiveRate"), new CacheHitGauge()); metrics.register(metricName("read.recordNotFoundRate"), new CacheHitGauge()); //FileTable metrics.register(metricName("table.cacheHitRate"), new CacheHitGauge()); //Index metrics.register(metricName("index.searchLevels"), new Histogram(new UniformReservoir())); metrics.register(metricName("index.cacheHitRate"), new CacheHitGauge()); //Compactor metrics.register(metricName("compactor.concurrentTasks"), new Histogram(new UniformReservoir())); metrics.register(metricName("compactor.taskExecution"), new Timer(new UniformReservoir())); }
void testSetup() throws IOException { // test metrics latencyHistogram = YammerHistogramUtils.newHistogram(new UniformReservoir(1024 * 500)); valueSizeHistogram = YammerHistogramUtils.newHistogram(new UniformReservoir(1024 * 500)); // scan metrics rpcCallsHistogram = YammerHistogramUtils.newHistogram(new UniformReservoir(1024 * 500)); remoteRpcCallsHistogram = YammerHistogramUtils.newHistogram(new UniformReservoir(1024 * 500)); millisBetweenNextHistogram = YammerHistogramUtils.newHistogram(new UniformReservoir(1024 * 500)); regionsScannedHistogram = YammerHistogramUtils.newHistogram(new UniformReservoir(1024 * 500)); bytesInResultsHistogram = YammerHistogramUtils.newHistogram(new UniformReservoir(1024 * 500)); bytesInRemoteResultsHistogram = YammerHistogramUtils.newHistogram(new UniformReservoir(1024 * 500)); onStartup(); }
void testSetup() throws IOException { createConnection(); onStartup(); latencyHistogram = YammerHistogramUtils.newHistogram(new UniformReservoir(1024 * 500)); valueSizeHistogram = YammerHistogramUtils.newHistogram(new UniformReservoir(1024 * 500)); }