Search in sources :

Example 1 with Data

use of com.twitter.common.quantity.Data in project commons by twitter.

the class MetricsQueryBench method setUp.

@Override
protected void setUp() {
    metrics = Metrics.createDetached();
    FakeClock clock = new FakeClock();
    Amount<Long, Time> window = WindowedApproxHistogram.DEFAULT_WINDOW;
    int slices = WindowedApproxHistogram.DEFAULT_SLICES;
    Amount<Long, Time> delta = Amount.of(window.as(Time.MILLISECONDS) / N, Time.MILLISECONDS);
    Amount<Long, Data> maxMem = WindowedApproxHistogram.DEFAULT_MAX_MEMORY;
    for (int i = 0; i < 10; i++) {
        metrics.createCounter("counter-" + i).increment();
        HistogramInterface h = new Histogram("hist-" + i, window, slices, maxMem, null, Histogram.DEFAULT_QUANTILES, clock, metrics);
        for (int j = 0; j < N; j++) {
            h.add(j);
            clock.advance(delta);
        }
    }
    // Initialize Histograms and fill them with values (in every buckets for windowed ones)
    hist = new Histogram("hist", window, slices, maxMem, null, Histogram.DEFAULT_QUANTILES, clock);
    approxHist = new WindowedApproxHistogram(window, slices, maxMem, clock);
    winStats = new WindowedStatistics(window, slices, clock);
    for (int j = 0; j < N; j++) {
        hist.add(j);
        approxHist.add(j);
        winStats.accumulate(j);
        clock.advance(delta);
    }
}
Also used : Histogram(com.twitter.common.metrics.Histogram) WindowedApproxHistogram(com.twitter.common.stats.WindowedApproxHistogram) WindowedApproxHistogram(com.twitter.common.stats.WindowedApproxHistogram) FakeClock(com.twitter.common.util.testing.FakeClock) Time(com.twitter.common.quantity.Time) Data(com.twitter.common.quantity.Data) HistogramInterface(com.twitter.common.metrics.HistogramInterface) WindowedStatistics(com.twitter.common.stats.WindowedStatistics)

Example 2 with Data

use of com.twitter.common.quantity.Data in project commons by twitter.

the class MetricsPrecisionDemo method main.

public static void main(String[] args) {
    MetricsPrecisionDemo demo = new MetricsPrecisionDemo();
    for (int n = 100; n <= 1000 * 1000; n *= 10) {
        for (long mem = 4; mem < 16; mem += 2) {
            Amount<Long, Data> maxMemory = Amount.of(mem, Data.KB);
            System.out.println("\nnumber of elements:" + n + "  maxMemory:" + maxMemory);
            System.out.println("Real data");
            demo.testHistogram(new ApproximateHistogram(maxMemory), new RealHistogram(), demo.getRealData(n));
            System.out.println("Random data");
            demo.testHistogram(new ApproximateHistogram(maxMemory), new RealHistogram(), demo.getRandomData(n, 100000, 200000));
        }
    }
}
Also used : RealHistogram(com.twitter.common.stats.testing.RealHistogram) ApproximateHistogram(com.twitter.common.stats.ApproximateHistogram) Data(com.twitter.common.quantity.Data)

Example 3 with Data

use of com.twitter.common.quantity.Data in project commons by twitter.

the class ApproximateHistogramTest method testMemConstraint.

@Test
public void testMemConstraint() {
    ImmutableList.Builder<Amount<Long, Data>> builder = ImmutableList.builder();
    builder.add(Amount.of(1L, Data.KB));
    builder.add(Amount.of(4L, Data.KB));
    builder.add(Amount.of(8L, Data.KB));
    builder.add(Amount.of(16L, Data.KB));
    builder.add(Amount.of(32L, Data.KB));
    builder.add(Amount.of(64L, Data.KB));
    builder.add(Amount.of(256L, Data.KB));
    builder.add(Amount.of(1L, Data.MB));
    builder.add(Amount.of(16L, Data.MB));
    builder.add(Amount.of(32L, Data.MB));
    List<Amount<Long, Data>> sizes = builder.build();
    for (Amount<Long, Data> maxSize : sizes) {
        ApproximateHistogram hist = new ApproximateHistogram(maxSize);
        for (long i = 0; i < 1000 * 1000; i++) {
            hist.add(i);
        }
        long size = ObjectSizeCalculator.getObjectSize(hist);
        assertTrue(size < maxSize.as(Data.BYTES));
    }
}
Also used : ApproximateHistogram(com.twitter.common.stats.ApproximateHistogram) ImmutableList(com.google.common.collect.ImmutableList) Amount(com.twitter.common.quantity.Amount) Data(com.twitter.common.quantity.Data) Test(org.junit.Test)

Aggregations

Data (com.twitter.common.quantity.Data)3 ApproximateHistogram (com.twitter.common.stats.ApproximateHistogram)2 ImmutableList (com.google.common.collect.ImmutableList)1 Histogram (com.twitter.common.metrics.Histogram)1 HistogramInterface (com.twitter.common.metrics.HistogramInterface)1 Amount (com.twitter.common.quantity.Amount)1 Time (com.twitter.common.quantity.Time)1 WindowedApproxHistogram (com.twitter.common.stats.WindowedApproxHistogram)1 WindowedStatistics (com.twitter.common.stats.WindowedStatistics)1 RealHistogram (com.twitter.common.stats.testing.RealHistogram)1 FakeClock (com.twitter.common.util.testing.FakeClock)1 Test (org.junit.Test)1