public DropwizardMeter() { this.meter = new Meter(); }
@Override public Meter newMetric() { return new Meter(); }
@Override public Meter newMetric() { return new Meter(); }
@Override public Meter load(String key) { Meter meter = new Meter(); metricRegistry.register(key, meter); return meter; } }
@Override public Meter load(String key) { Meter meter = new Meter(); metricRegistry.register(key, meter); return meter; } });
/** * Builds a {@link MeteredOutputStream}. * @param out The {@link OutputStream} to measure. * @param meter A {@link Meter} to use for measuring the {@link OutputStream}. If null, a new {@link Meter} will be created. * @param updateFrequency For performance, {@link MeteredInputStream} will batch {@link Meter} updates to this many bytes. */ @Builder public MeteredOutputStream(OutputStream out, Meter meter, int updateFrequency) { super(out); this.meter = new BatchedMeterDecorator(meter == null ? new Meter() : meter, updateFrequency > 0 ? updateFrequency : 1000); }
/** * Builds a {@link MeteredInputStream}. * @param in The {@link InputStream} to measure. * @param meter A {@link Meter} to use for measuring the {@link InputStream}. If null, a new {@link Meter} will be created. * @param updateFrequency For performance, {@link MeteredInputStream} will batch {@link Meter} updates to this many bytes. */ @Builder private MeteredInputStream(InputStream in, Meter meter, int updateFrequency) { super(in); this.meter = new BatchedMeterDecorator(meter == null ? new Meter() : meter, updateFrequency > 0 ? updateFrequency : 1000); }
/** * Creates a new {@link Timer} that uses the given {@link Reservoir} and {@link Clock}. * * @param reservoir the {@link Reservoir} implementation the timer should use * @param clock the {@link Clock} implementation the timer should use */ public Timer(Reservoir reservoir, Clock clock) { this.meter = new Meter(clock); this.clock = clock; this.histogram = new Histogram(reservoir); }
/** * Package private constructor for unit test. */ AnomalyDetector(LinkedBlockingDeque<Anomaly> anomalies, long anomalyDetectionIntervalMs, KafkaCruiseControl kafkaCruiseControl, AnomalyNotifier anomalyNotifier, GoalViolationDetector goalViolationDetector, BrokerFailureDetector brokerFailureDetector, MetricAnomalyDetector metricAnomalyDetector, ScheduledExecutorService detectorScheduler, LoadMonitor loadMonitor) { _anomalies = anomalies; _anomalyDetectionIntervalMs = anomalyDetectionIntervalMs; _anomalyNotifier = anomalyNotifier; _goalViolationDetector = goalViolationDetector; _brokerFailureDetector = brokerFailureDetector; _metricAnomalyDetector = metricAnomalyDetector; _kafkaCruiseControl = kafkaCruiseControl; _detectorScheduler = detectorScheduler; _shutdown = false; _brokerFailureRate = new Meter(); _goalViolationRate = new Meter(); _metricAnomalyRate = new Meter(); _loadMonitor = loadMonitor; // Add anomaly detector state _anomalyDetectorState = new AnomalyDetectorState(new HashMap<>(AnomalyType.cachedValues().size()), 10); }
@Test public void testFsOperation() throws IOException, InterruptedException { Meter meter = new Meter(); Path fakePath = new Path("fakePath"); for (int i = 0; i < 100; i++) { Assert.assertFalse(this.rateControlledFs.exists(fakePath)); meter.mark(); Thread.sleep((RANDOM.nextInt() & Integer.MAX_VALUE) % 10); } // Assert a fuzzy equal with 5% of tolerance Assert.assertTrue(DoubleMath.fuzzyEquals(meter.getMeanRate(), 20d, 20d * 0.05)); }
@Test public void testThrottling() throws InterruptedException { Meter meter = new Meter(); for (int i = 0; i < 100; i++) { Assert.assertTrue(this.limiter.acquirePermits(1) != null); meter.mark(); Thread.sleep((RANDOM.nextInt() & Integer.MAX_VALUE) % 10); } // Assert a fuzzy equal with 5% of tolerance Assert.assertTrue(DoubleMath.fuzzyEquals(meter.getMeanRate(), 20d, 20d * 0.05)); }
@Test public void test() throws Exception { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); Meter meter = new Meter(); MeteredOutputStream mos = MeteredOutputStream.builder().out(outputStream).meter(meter).updateFrequency(1).build(); MyOutputStream duplicated = new MyOutputStream(mos); DataOutputStream dos = new DataOutputStream(duplicated); dos.write("abcde".getBytes(Charsets.UTF_8)); Assert.assertEquals(outputStream.toString(Charsets.UTF_8.name()), "aabbccddee"); Optional<MeteredOutputStream> meteredOutputStream = MeteredOutputStream.findWrappedMeteredOutputStream(dos); Assert.assertEquals(meteredOutputStream.get(), mos); Assert.assertEquals(meteredOutputStream.get().getBytesProcessedMeter().getCount(), 10); }
@Test public void test() throws Exception { InputStream is = new ByteArrayInputStream("aabbccddee".getBytes(Charsets.UTF_8)); Meter meter = new Meter(); MeteredInputStream mis = MeteredInputStream.builder().in(is).meter(meter).updateFrequency(1).build(); InputStream skipped = new MyInputStream(mis); DataInputStream dis = new DataInputStream(skipped); ByteArrayOutputStream os = new ByteArrayOutputStream(); IOUtils.copy(dis, os); String output = os.toString(Charsets.UTF_8.name()); Assert.assertEquals(output, "abcde"); Optional<MeteredInputStream> meteredOpt = MeteredInputStream.findWrappedMeteredInputStream(dis); Assert.assertEquals(meteredOpt.get(), mis); Assert.assertEquals(meteredOpt.get().getBytesProcessedMeter().getCount(), 10); }
recordSizeDistributionHistogram.update(3); Meter recordProcessRateMeter = new Meter(); recordProcessRateMeter.mark(1l); recordProcessRateMeter.mark(2l);
recordSizeDistributionHistogram.update(3); Meter recordProcessRateMeter = new Meter(); recordProcessRateMeter.mark(1l); recordProcessRateMeter.mark(2l);
@Override public Meter load(String key) { Meter meter = new Meter(); metricRegistry.register(key, meter); return meter; } }
/** * Builds a {@link MeteredInputStream}. * @param in The {@link InputStream} to measure. * @param meter A {@link Meter} to use for measuring the {@link InputStream}. If null, a new {@link Meter} will be created. * @param updateFrequency For performance, {@link MeteredInputStream} will batch {@link Meter} updates to this many bytes. */ @Builder private MeteredInputStream(InputStream in, Meter meter, int updateFrequency) { super(in); this.meter = new BatchedMeterDecorator(meter == null ? new Meter() : meter, updateFrequency > 0 ? updateFrequency : 1000); }
Assert.assertTrue(firstInitInstance == secondInitInstance); Counter testCounter0 = new Counter(); Meter testMeter0 = new Meter(); Timer testTimer0 = new Timer(); HelixKafkaMirrorMakerMetricsReporter.get().registerMetric("testCounter0", testCounter0);
/** * Creates a new {@link Timer} that uses the given {@link Reservoir} and {@link Clock}. * * @param reservoir the {@link Reservoir} implementation the timer should use * @param clock the {@link Clock} implementation the timer should use */ public Timer(Reservoir reservoir, Clock clock) { this.meter = new Meter(clock); this.clock = clock; this.histogram = new Histogram(reservoir); }