You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by zm...@apache.org on 2015/08/26 23:00:29 UTC

[39/51] [partial] aurora git commit: Move packages from com.twitter.common to org.apache.aurora.common

http://git-wip-us.apache.org/repos/asf/aurora/blob/06ddaadb/commons/src/main/java/com/twitter/common/stats/Histograms.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/com/twitter/common/stats/Histograms.java b/commons/src/main/java/com/twitter/common/stats/Histograms.java
deleted file mode 100644
index 9644a10..0000000
--- a/commons/src/main/java/com/twitter/common/stats/Histograms.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.twitter.common.stats;
-
-/**
- * Helper class containing only static methods
- */
-public final class Histograms {
-
-  private Histograms() {
-    /* Disable */
-  }
-
-  /**
-   * Helper method that return an array of quantiles
-   * @param h the histogram to query
-   * @param quantiles an array of double representing the quantiles
-   * @return the array of computed quantiles
-   */
-  public static long[] extractQuantiles(Histogram h, double[] quantiles) {
-    long[] results = new long[quantiles.length];
-    for (int i = 0; i < results.length; i++) {
-      double q = quantiles[i];
-      results[i] = h.getQuantile(q);
-    }
-    return results;
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/06ddaadb/commons/src/main/java/com/twitter/common/stats/JvmStats.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/com/twitter/common/stats/JvmStats.java b/commons/src/main/java/com/twitter/common/stats/JvmStats.java
deleted file mode 100644
index d3eea16..0000000
--- a/commons/src/main/java/com/twitter/common/stats/JvmStats.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.twitter.common.stats;
-
-import java.lang.management.ClassLoadingMXBean;
-import java.lang.management.GarbageCollectorMXBean;
-import java.lang.management.ManagementFactory;
-import java.lang.management.MemoryMXBean;
-import java.lang.management.OperatingSystemMXBean;
-import java.lang.management.RuntimeMXBean;
-import java.lang.management.ThreadMXBean;
-import java.util.Map;
-
-import com.google.common.base.Function;
-import com.google.common.collect.ImmutableList;
-
-import com.google.common.collect.Iterables;
-import com.twitter.common.quantity.Amount;
-import com.twitter.common.quantity.Data;
-import com.twitter.common.quantity.Time;
-
-/**
- * Convenience class to export statistics about the JVM.
- */
-public class JvmStats {
-
-  private static final long BYTES_PER_MB = Amount.of(1L, Data.MB).as(Data.BYTES);
-  private static final double SECS_PER_NANO =
-      ((double) 1) / Amount.of(1L, Time.SECONDS).as(Time.NANOSECONDS);
-
-  private JvmStats() {
-    // Utility class.
-  }
-
-  /**
-   * Exports stats related to the JVM and runtime environment.
-   */
-  public static void export() {
-    final OperatingSystemMXBean osMbean = ManagementFactory.getOperatingSystemMXBean();
-    if (osMbean instanceof com.sun.management.OperatingSystemMXBean) {
-      final com.sun.management.OperatingSystemMXBean sunOsMbean =
-          (com.sun.management.OperatingSystemMXBean) osMbean;
-
-      Stats.exportAll(
-          ImmutableList.<Stat<? extends Number>>builder()
-          .add(new StatImpl<Long>("system_free_physical_memory_mb") {
-            @Override public Long read() {
-              return sunOsMbean.getFreePhysicalMemorySize() / BYTES_PER_MB;
-            }
-          })
-          .add(new StatImpl<Long>("system_free_swap_mb") {
-            @Override public Long read() {
-              return sunOsMbean.getFreeSwapSpaceSize() / BYTES_PER_MB;
-            }
-          })
-          .add(
-          Rate.of(
-              new StatImpl<Long>("process_cpu_time_nanos") {
-                @Override public Long read() {
-                  return sunOsMbean.getProcessCpuTime();
-                }
-              }).withName("process_cpu_cores_utilized").withScaleFactor(SECS_PER_NANO).build())
-          .build());
-    }
-    if (osMbean instanceof com.sun.management.UnixOperatingSystemMXBean) {
-      final com.sun.management.UnixOperatingSystemMXBean unixOsMbean =
-          (com.sun.management.UnixOperatingSystemMXBean) osMbean;
-
-      Stats.exportAll(ImmutableList.<Stat<? extends Number>>builder()
-          .add(new StatImpl<Long>("process_max_fd_count") {
-            @Override public Long read() { return unixOsMbean.getMaxFileDescriptorCount(); }
-          }).add(new StatImpl<Long>("process_open_fd_count") {
-            @Override public Long read() { return unixOsMbean.getOpenFileDescriptorCount(); }
-          }).build());
-    }
-
-    final Runtime runtime = Runtime.getRuntime();
-    final ClassLoadingMXBean classLoadingBean = ManagementFactory.getClassLoadingMXBean();
-    final MemoryMXBean memoryBean = ManagementFactory.getMemoryMXBean();
-    final ThreadMXBean threads = ManagementFactory.getThreadMXBean();
-    final RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
-
-    Stats.exportAll(ImmutableList.<Stat<? extends Number>>builder()
-      .add(new StatImpl<Long>("jvm_time_ms") {
-        @Override public Long read() { return System.currentTimeMillis(); }
-      })
-      .add(new StatImpl<Integer>("jvm_available_processors") {
-        @Override public Integer read() { return runtime.availableProcessors(); }
-      })
-      .add(new StatImpl<Long>("jvm_memory_free_mb") {
-        @Override public Long read() { return runtime.freeMemory() / BYTES_PER_MB; }
-      })
-      .add(new StatImpl<Long>("jvm_memory_max_mb") {
-        @Override public Long read() { return runtime.maxMemory() / BYTES_PER_MB; }
-      })
-      .add(new StatImpl<Long>("jvm_memory_mb_total") {
-        @Override public Long read() { return runtime.totalMemory() / BYTES_PER_MB; }
-      })
-      .add(new StatImpl<Integer>("jvm_class_loaded_count") {
-        @Override public Integer read() { return classLoadingBean.getLoadedClassCount(); }
-      })
-      .add(new StatImpl<Long>("jvm_class_total_loaded_count") {
-        @Override public Long read() { return classLoadingBean.getTotalLoadedClassCount(); }
-      })
-      .add(new StatImpl<Long>("jvm_class_unloaded_count") {
-        @Override public Long read() { return classLoadingBean.getUnloadedClassCount(); }
-      })
-      .add(new StatImpl<Long>("jvm_gc_collection_time_ms") {
-        @Override public Long read() {
-          long collectionTimeMs = 0;
-          for (GarbageCollectorMXBean bean : ManagementFactory.getGarbageCollectorMXBeans()) {
-            collectionTimeMs += bean.getCollectionTime();
-          }
-          return collectionTimeMs;
-        }
-      })
-      .add(new StatImpl<Long>("jvm_gc_collection_count") {
-        @Override public Long read() {
-          long collections = 0;
-          for (GarbageCollectorMXBean bean : ManagementFactory.getGarbageCollectorMXBeans()) {
-            collections += bean.getCollectionCount();
-          }
-          return collections;
-        }
-      })
-      .add(new StatImpl<Long>("jvm_memory_heap_mb_used") {
-        @Override public Long read() {
-          return memoryBean.getHeapMemoryUsage().getUsed() / BYTES_PER_MB;
-        }
-      })
-      .add(new StatImpl<Long>("jvm_memory_heap_mb_committed") {
-        @Override public Long read() {
-          return memoryBean.getHeapMemoryUsage().getCommitted() / BYTES_PER_MB;
-        }
-      })
-      .add(new StatImpl<Long>("jvm_memory_heap_mb_max") {
-        @Override public Long read() {
-          return memoryBean.getHeapMemoryUsage().getMax() / BYTES_PER_MB;
-        }
-      })
-      .add(new StatImpl<Long>("jvm_memory_non_heap_mb_used") {
-        @Override public Long read() {
-          return memoryBean.getNonHeapMemoryUsage().getUsed() / BYTES_PER_MB;
-        }
-      })
-      .add(new StatImpl<Long>("jvm_memory_non_heap_mb_committed") {
-        @Override public Long read() {
-          return memoryBean.getNonHeapMemoryUsage().getCommitted() / BYTES_PER_MB;
-        }
-      })
-      .add(new StatImpl<Long>("jvm_memory_non_heap_mb_max") {
-        @Override public Long read() {
-          return memoryBean.getNonHeapMemoryUsage().getMax() / BYTES_PER_MB;
-        }
-      })
-      .add(new StatImpl<Long>("jvm_uptime_secs") {
-        @Override public Long read() { return runtimeMXBean.getUptime() / 1000; }
-      })
-      .add(new StatImpl<Double>("system_load_avg") {
-        @Override public Double read() { return osMbean.getSystemLoadAverage(); }
-      })
-      .add(new StatImpl<Integer>("jvm_threads_peak") {
-        @Override public Integer read() { return threads.getPeakThreadCount(); }
-      })
-      .add(new StatImpl<Long>("jvm_threads_started") {
-        @Override public Long read() { return threads.getTotalStartedThreadCount(); }
-      })
-      .add(new StatImpl<Integer>("jvm_threads_daemon") {
-        @Override public Integer read() { return threads.getDaemonThreadCount(); }
-      })
-      .add(new StatImpl<Integer>("jvm_threads_active") {
-        @Override public Integer read() { return threads.getThreadCount(); }
-      })
-      .build());
-
-    // Export per memory pool gc time and cycle count like Ostrich
-    // This is based on code in Bridcage: https://cgit.twitter.biz/birdcage/tree/ \
-    // ostrich/src/main/scala/com/twitter/ostrich/stats/StatsCollection.scala
-    Stats.exportAll(Iterables.transform(ManagementFactory.getGarbageCollectorMXBeans(),
-        new Function<GarbageCollectorMXBean, Stat<? extends Number>>(){
-          @Override
-          public Stat<? extends Number> apply(final GarbageCollectorMXBean gcMXBean) {
-            return new StatImpl<Long>(
-                "jvm_gc_" + Stats.normalizeName(gcMXBean.getName()) + "_collection_count") {
-              @Override public Long read() {
-                return gcMXBean.getCollectionCount();
-              }
-            };
-          }
-        }
-    ));
-
-    Stats.exportAll(Iterables.transform(ManagementFactory.getGarbageCollectorMXBeans(),
-        new Function<GarbageCollectorMXBean, Stat<? extends Number>>(){
-          @Override
-          public Stat<? extends Number> apply(final GarbageCollectorMXBean gcMXBean) {
-            return new StatImpl<Long>(
-                "jvm_gc_" + Stats.normalizeName(gcMXBean.getName()) + "_collection_time_ms") {
-              @Override public Long read() {
-                return gcMXBean.getCollectionTime();
-              }
-            };
-          }
-        }
-    ));
-
-    Stats.exportString(
-        new StatImpl<String>("jvm_input_arguments") {
-          @Override public String read() {
-            return runtimeMXBean.getInputArguments().toString();
-          }
-        }
-    );
-
-    for (final String property : System.getProperties().stringPropertyNames()) {
-      Stats.exportString(
-          new StatImpl<String>("jvm_prop_" + Stats.normalizeName(property)) {
-            @Override public String read() { return System.getProperty(property); }
-          });
-    }
-
-    for (final Map.Entry<String, String> environmentVariable : System.getenv().entrySet()) {
-      Stats.exportString(
-          new StatImpl<String>("system_env_" + Stats.normalizeName(environmentVariable.getKey())) {
-            @Override public String read() { return environmentVariable.getValue(); }
-          });
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/06ddaadb/commons/src/main/java/com/twitter/common/stats/MovingAverage.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/com/twitter/common/stats/MovingAverage.java b/commons/src/main/java/com/twitter/common/stats/MovingAverage.java
deleted file mode 100644
index c518e9c..0000000
--- a/commons/src/main/java/com/twitter/common/stats/MovingAverage.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.twitter.common.stats;
-
-import java.util.concurrent.LinkedBlockingDeque;
-
-import com.google.common.base.Preconditions;
-
-/**
- * Function to compute the moving average of a time series.
- *
- * @author William Farner
- */
-public class MovingAverage<T extends Number> extends SampledStat<Double> {
-
-  private static final int DEFAULT_WINDOW = 10;
-  private final Stat<T> input;
-
-  private final LinkedBlockingDeque<T> samples;
-  private double sampleSum = 0;
-
-  private MovingAverage(String name, Stat<T> input, int windowSize) {
-    super(name, 0d);
-    Preconditions.checkArgument(windowSize > 1);
-
-    this.input = Preconditions.checkNotNull(input);
-    this.samples = new LinkedBlockingDeque<T>(windowSize);
-    Stats.export(input);
-  }
-
-  public static <T extends Number> MovingAverage<T> of(Stat<T> input) {
-    return MovingAverage.of(input, DEFAULT_WINDOW);
-  }
-
-  public static <T extends Number> MovingAverage<T> of(Stat<T> input, int windowSize) {
-    return MovingAverage.of(String.format("%s_avg", input.getName()), input, windowSize);
-  }
-
-  public static <T extends Number> MovingAverage<T> of(String name, Stat<T> input,
-      int windowSize) {
-    return new MovingAverage<T>(name, input, windowSize);
-  }
-
-  @Override
-  public Double doSample() {
-    T sample = input.read();
-
-    if (samples.remainingCapacity() == 0) {
-      sampleSum -= samples.removeLast().doubleValue();
-    }
-
-    samples.addFirst(sample);
-    sampleSum += sample.doubleValue();
-
-    return sampleSum / samples.size();
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/06ddaadb/commons/src/main/java/com/twitter/common/stats/MovingWindowDelta.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/com/twitter/common/stats/MovingWindowDelta.java b/commons/src/main/java/com/twitter/common/stats/MovingWindowDelta.java
deleted file mode 100644
index c7bf4a5..0000000
--- a/commons/src/main/java/com/twitter/common/stats/MovingWindowDelta.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.twitter.common.stats;
-
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Preconditions;
-import com.google.common.base.Supplier;
-
-import java.util.concurrent.LinkedBlockingDeque;
-
-import com.twitter.common.base.MorePreconditions;
-
-
-/**
- * Delta over the most recent k sample periods.
- *
- * If you use this class with a counter, you can get the cumulation of counts in a sliding window.
- *
- * One sample period is the time in between doSample() calls.
- *
- * @author Feng Zhuge
- */
-public class MovingWindowDelta<T extends Number> extends SampledStat<Long> {
-  private static final int DEFAULT_WINDOW_SIZE = 60;
-  private final LinkedBlockingDeque<Long> deltaSeries;
-  private final Supplier<T> inputAccessor;
-  long sumDelta = 0l;
-  long lastInput = 0l;
-
-  private MovingWindowDelta(String name, Supplier<T> inputAccessor, int windowSize) {
-    super(name, 0l);
-
-    Preconditions.checkArgument(windowSize >= 1);
-    Preconditions.checkNotNull(inputAccessor);
-    MorePreconditions.checkNotBlank(name);
-
-    deltaSeries = new LinkedBlockingDeque<Long>(windowSize);
-    this.inputAccessor = inputAccessor;
-
-    Stats.export(this);
-  }
-
-  /**
-   * Create a new MovingWindowDelta instance.
-   *
-   * @param name The name of the value to be tracked.
-   * @param inputAccessor The accessor of the value.
-   * @param windowSize How many sample periods shall we use to calculate delta.
-   * @param <T> The type of the value.
-   * @return The created MovingWindowSum instance.
-   */
-  public static <T extends Number> MovingWindowDelta<T> of(
-      String name, Supplier<T> inputAccessor, int windowSize) {
-    return new MovingWindowDelta<T>(name, inputAccessor, windowSize);
-  }
-
-  /**
-   * Create a new MovingWindowDelta instance using the default window size (currently 60).
-   *
-   * @param name The name of the value to be tracked.
-   * @param inputAccessor The accessor of the value.
-   * @param <T> The type of the value.
-   * @return The created MovingWindowSum instance.
-   */
-  public static <T extends Number> MovingWindowDelta<T> of(String name, Supplier<T> inputAccessor) {
-    return of(name, inputAccessor, DEFAULT_WINDOW_SIZE);
-  }
-
-  @Override
-  public Long doSample() {
-    long lastDelta = 0l;
-    if (deltaSeries.remainingCapacity() == 0) {
-      lastDelta = deltaSeries.removeFirst();
-    }
-
-    long newInput = inputAccessor.get().longValue();
-    long newDelta = newInput - lastInput;
-    lastInput = newInput;
-
-    deltaSeries.addLast(newDelta);
-
-    sumDelta += newDelta - lastDelta;
-
-    return sumDelta;
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/06ddaadb/commons/src/main/java/com/twitter/common/stats/NumericStatExporter.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/com/twitter/common/stats/NumericStatExporter.java b/commons/src/main/java/com/twitter/common/stats/NumericStatExporter.java
deleted file mode 100644
index eaa3421..0000000
--- a/commons/src/main/java/com/twitter/common/stats/NumericStatExporter.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.twitter.common.stats;
-
-import java.util.Map;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
-import java.util.logging.Logger;
-
-import com.google.common.base.Function;
-import com.google.common.collect.Maps;
-
-import com.twitter.common.application.ShutdownRegistry;
-import com.twitter.common.base.Closure;
-import com.twitter.common.base.Command;
-import com.twitter.common.quantity.Amount;
-import com.twitter.common.quantity.Time;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-/**
- * Stat exporter that extracts numeric {@link Stat}s from the {@link Stats} system, and exports them
- * via a caller-defined sink.
- *
- * @author William Farner
- */
-public class NumericStatExporter {
-
-  private static final Logger LOG = Logger.getLogger(NumericStatExporter.class.getName());
-
-  private final ScheduledExecutorService executor;
-  private final Amount<Long, Time> exportInterval;
-  private final Closure<Map<String, ? extends Number>> exportSink;
-
-  private final Runnable exporter;
-
-  /**
-   * Creates a new numeric stat exporter that will export to the specified sink.
-   *
-   * @param exportSink Consumes stats.
-   * @param executor Executor to handle export thread.
-   * @param exportInterval Export period.
-   */
-  public NumericStatExporter(final Closure<Map<String, ? extends Number>> exportSink,
-      ScheduledExecutorService executor, Amount<Long, Time> exportInterval) {
-    checkNotNull(exportSink);
-    this.executor = checkNotNull(executor);
-    this.exportInterval = checkNotNull(exportInterval);
-    this.exportSink = exportSink;
-
-    exporter = new Runnable() {
-      @Override public void run() {
-          exportSink.execute(Maps.transformValues(
-            Maps.uniqueIndex(Stats.getNumericVariables(), GET_NAME), READ_STAT));
-      }
-    };
-  }
-
-  /**
-   * Starts the stat exporter.
-   *
-   * @param shutdownRegistry Shutdown hook registry to allow the exporter to cleanly halt.
-   */
-  public void start(ShutdownRegistry shutdownRegistry) {
-    long intervalSecs = exportInterval.as(Time.SECONDS);
-    executor.scheduleAtFixedRate(exporter, intervalSecs, intervalSecs, TimeUnit.SECONDS);
-
-    shutdownRegistry.addAction(new Command() {
-      @Override public void execute() {
-        stop();
-        exportSink.execute(Maps.transformValues(
-            Maps.uniqueIndex(Stats.getNumericVariables(), GET_NAME), SAMPLE_AND_READ_STAT));
-      }
-    });
-  }
-
-  /**
-   * Stops the stat exporter.  Once stopped, it may be started again by calling
-   * {@link #start(ShutdownRegistry)}.
-   */
-  public void stop() {
-    try {
-      if (!executor.awaitTermination(1, TimeUnit.SECONDS)) {
-        executor.shutdownNow();
-        if (!executor.awaitTermination(1, TimeUnit.SECONDS)) {
-          LOG.severe("Failed to stop stat exporter.");
-        }
-      }
-    } catch (InterruptedException e) {
-      executor.shutdownNow();
-      Thread.currentThread().interrupt();
-    }
-  }
-
-  public static final Function<Stat<?>, String> GET_NAME = new Function<Stat<?>, String>() {
-    @Override public String apply(Stat<?> stat) {
-      return stat.getName();
-    }
-  };
-
-  public static final Function<Stat<? extends Number>, Number> READ_STAT =
-      new Function<Stat<? extends Number>, Number>() {
-        @Override public Number apply(Stat<? extends Number> stat) {
-          return stat.read();
-        }
-      };
-
-  private static final Function<RecordingStat<? extends Number>, Number> SAMPLE_AND_READ_STAT =
-      new Function<RecordingStat<? extends Number>, Number>() {
-        @Override public Number apply(RecordingStat<? extends Number> stat) {
-          return stat.sample();
-        }
-      };
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/06ddaadb/commons/src/main/java/com/twitter/common/stats/Percentile.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/com/twitter/common/stats/Percentile.java b/commons/src/main/java/com/twitter/common/stats/Percentile.java
deleted file mode 100644
index c777552..0000000
--- a/commons/src/main/java/com/twitter/common/stats/Percentile.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.twitter.common.stats;
-
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Ordering;
-
-import com.twitter.common.base.MorePreconditions;
-import com.twitter.common.util.Sampler;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.Map;
-import java.util.concurrent.LinkedBlockingDeque;
-
-import javax.annotation.Nullable;
-
-/**
- * A stats tracker to export percentiles of inputs based on a sampling rate.
- *
- * A percentile tracker will randomly sample recorded events with the given sampling rate, and
- * will automatically register variables to track the percentiles requested.
- * Percentiles are calculated based on the K most recent sampling windows, where each sampling
- * window has the recorded events for a sampling period.
- *
- * @author William Farner
- */
-public class Percentile<T extends Number & Comparable<T>> {
-
-  @VisibleForTesting
-  static final int MAX_BUFFER_SIZE = 10001;
-
-  private final Sampler sampler;
-
-  private final Map<Double, SampledStat<Double>> statsByPercentile;
-  @VisibleForTesting
-  final LinkedList<T> samples = Lists.newLinkedList();
-
-  private final LinkedBlockingDeque<ArrayList<T>> sampleQueue;
-  private final ArrayList<T> allSamples = new ArrayList<T>();
-
-  /**
-   * Creates a new percentile tracker.
-   *
-   * @param name The name of the value whose percentile is being tracked.
-   * @param samplePercent The percent of events to sample [0, 100].
-   * @param percentiles The percentiles to track.
-   */
-  public Percentile(String name, float samplePercent, double... percentiles) {
-    this(name, new Sampler(samplePercent), percentiles);
-  }
-
-  /**
-   * Creates a new percentile tracker.
-   *
-   * @param name The name of the value whose percentile is being tracked.
-   * @param sampler The sampler to use for selecting recorded events.
-   * @param percentiles The percentiles to track.
-   */
-  public Percentile(String name, Sampler sampler, double... percentiles) {
-    this(name, 1, sampler, percentiles);
-  }
-
-  /**
-   * Creates a new percentile tracker.
-   *
-   * A percentile tracker will randomly sample recorded events with the given sampling rate, and
-   * will automatically register variables to track the percentiles requested.
-   * When allowFlushAfterSample is set to true, once the last percentile is sampled,
-   * all recorded values are flushed in preparation for the next window; otherwise, the percentile
-   * is calculated using the moving window of the most recent values.
-   *
-   * @param name The name of the value whose percentile is being tracked.
-   * @param numSampleWindows How many sampling windows are used for calculation.
-   * @param sampler The sampler to use for selecting recorded events. You may set sampler to null
-   *        to sample all input.
-   * @param percentiles The percentiles to track.
-   */
-  public Percentile(String name, int numSampleWindows,
-      @Nullable Sampler sampler, double... percentiles) {
-    MorePreconditions.checkNotBlank(name);
-    Preconditions.checkArgument(numSampleWindows >= 1, "Must have one or more sample windows.");
-    Preconditions.checkNotNull(percentiles);
-    Preconditions.checkArgument(percentiles.length > 0, "Must specify at least one percentile.");
-
-    this.sampler = sampler;
-
-    sampleQueue = new LinkedBlockingDeque<ArrayList<T>>(numSampleWindows);
-
-    ImmutableMap.Builder<Double, SampledStat<Double>> builder =
-        new ImmutableMap.Builder<Double, SampledStat<Double>>();
-
-    for (int i = 0; i < percentiles.length; i++) {
-      boolean sortFirst = i == 0;
-      String statName = String.format("%s_%s_percentile", name, percentiles[i])
-          .replace('.', '_');
-
-      SampledStat<Double> stat = new PercentileVar(statName, percentiles[i], sortFirst);
-      Stats.export(stat);
-      builder.put(percentiles[i], stat);
-    }
-
-    statsByPercentile = builder.build();
-  }
-
-  /**
-   * Get the variables associated with this percentile tracker.
-   *
-   * @return A map from tracked percentile to the Stat corresponding to it
-   */
-  public Map<Double, ? extends Stat<?>> getPercentiles() {
-    return ImmutableMap.copyOf(statsByPercentile);
-  }
-
-  @VisibleForTesting
-  SampledStat<Double> getPercentile(double percentile) {
-    return statsByPercentile.get(percentile);
-  }
-
-  /**
-   * Records an event.
-   *
-   * @param value The value to record if it is randomly selected based on the sampling rate.
-   */
-  public void record(T value) {
-    if (sampler == null || sampler.select()) {
-      synchronized (samples) {
-        samples.addLast(value);
-
-        while (samples.size() > MAX_BUFFER_SIZE) samples.removeFirst();
-      }
-    }
-  }
-
-  private class PercentileVar extends SampledStat<Double> {
-    private final double percentile;
-    private final boolean sortFirst;
-
-    PercentileVar(String name, double percentile, boolean sortFirst) {
-      super(name, 0d);
-      this.percentile = percentile;
-      this.sortFirst = sortFirst;
-    }
-
-    @Override
-    public Double doSample() {
-      synchronized (samples) {
-        if (sortFirst) {
-          if (sampleQueue.remainingCapacity() == 0) {
-            sampleQueue.removeFirst();
-          }
-          sampleQueue.addLast(new ArrayList<T>(samples));
-          samples.clear();
-
-          allSamples.clear();
-          for (ArrayList<T> sample : sampleQueue) {
-            allSamples.addAll(sample);
-          }
-
-          Collections.sort(allSamples, Ordering.<T>natural());
-        }
-
-        if (allSamples.isEmpty()) {
-          return 0d;
-        }
-
-        int maxIndex = allSamples.size() - 1;
-        double selectIndex = maxIndex * percentile / 100;
-        selectIndex = selectIndex < 0d ? 0d : selectIndex;
-        selectIndex = selectIndex > maxIndex ? maxIndex : selectIndex;
-
-        int indexLeft = (int) selectIndex;
-        if (indexLeft == maxIndex) {
-          return allSamples.get(indexLeft).doubleValue();
-        }
-
-        double residue = selectIndex - indexLeft;
-        return allSamples.get(indexLeft).doubleValue() * (1 - residue) +
-            allSamples.get(indexLeft + 1).doubleValue() * residue;
-      }
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/06ddaadb/commons/src/main/java/com/twitter/common/stats/PipelineStats.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/com/twitter/common/stats/PipelineStats.java b/commons/src/main/java/com/twitter/common/stats/PipelineStats.java
deleted file mode 100644
index e7300e0..0000000
--- a/commons/src/main/java/com/twitter/common/stats/PipelineStats.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.twitter.common.stats;
-
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import com.twitter.common.base.MorePreconditions;
-import com.twitter.common.collections.Pair;
-import com.twitter.common.quantity.Amount;
-import com.twitter.common.quantity.Time;
-import com.twitter.common.util.Clock;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * Tracks the latency of different pipeline stages in a process.
- *
- * @author William Farner
- */
-public class PipelineStats {
-  private static final String FULL_PIPELINE_NAME = "full";
-
-  private final Time precision;
-  private final Clock clock;
-
-  private final Map<String, SlidingStats> stages;
-
-  /**
-   * Creates a new pipeline tracker with the given pipeline name and stages. The stage name "full"
-   * is reserved to represent the duration of the entire pipeline.
-   *
-   * @param pipelineName Name of the pipeline.
-   * @param stages Stage names.
-   * @param precision Precision for time interval recording.
-   */
-  public PipelineStats(String pipelineName, Set<String> stages, Time precision) {
-    this(pipelineName, stages, Clock.SYSTEM_CLOCK, precision);
-  }
-
-  @VisibleForTesting
-  PipelineStats(String pipelineName, Set<String> stages, Clock clock, Time precision) {
-    MorePreconditions.checkNotBlank(pipelineName);
-    MorePreconditions.checkNotBlank(stages);
-    Preconditions.checkArgument(!stages.contains(FULL_PIPELINE_NAME));
-
-    this.clock = Preconditions.checkNotNull(clock);
-    this.precision = Preconditions.checkNotNull(precision);
-
-    this.stages = Maps.newHashMap();
-    for (String stage : stages) {
-      this.stages.put(stage, new SlidingStats(
-          String.format("%s_%s", pipelineName, stage), precision.toString()));
-    }
-    this.stages.put(FULL_PIPELINE_NAME, new SlidingStats(
-        String.format("%s_%s", pipelineName, FULL_PIPELINE_NAME), precision.toString()));
-  }
-
-  private void record(Snapshot snapshot) {
-    for (Pair<String, Long> stage : snapshot.stages) {
-      stages.get(stage.getFirst()).accumulate(stage.getSecond());
-    }
-  }
-
-  public Snapshot newSnapshot() {
-    return new Snapshot(this);
-  }
-
-  @VisibleForTesting
-  public SlidingStats getStatsForStage(String stage) {
-    return stages.get(stage);
-  }
-
-  public class Snapshot {
-    private final List<Pair<String, Long>> stages = Lists.newLinkedList();
-    private final PipelineStats parent;
-
-    private String currentStage;
-    private long startTime;
-    private long ticker;
-
-    private Snapshot(PipelineStats parent) {
-      this.parent = parent;
-    }
-
-    /**
-     * Records the duration for the current pipeline stage, and advances to the next stage. The
-     * stage name must be one of the stages specified in the constructor.
-     *
-     * @param stageName Name of the stage to enter.
-     */
-    public void start(String stageName) {
-      record(Preconditions.checkNotNull(stageName));
-    }
-
-    private void record(String stageName) {
-      long now = Amount.of(clock.nowNanos(), Time.NANOSECONDS).as(precision);
-      if (currentStage != null) {
-        stages.add(Pair.of(currentStage, now - ticker));
-      } else {
-        startTime = now;
-      }
-
-      if (stageName == null) stages.add(Pair.of(FULL_PIPELINE_NAME, now - startTime));
-
-      ticker = now;
-      currentStage = stageName;
-    }
-
-    /**
-     * Stops the pipeline, recording the interval for the last registered stage.
-     * This is the same as calling {@link #start(String)} with {@code null};
-     *
-     */
-    public void end() {
-      record(null);
-      parent.record(this);
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/06ddaadb/commons/src/main/java/com/twitter/common/stats/Precision.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/com/twitter/common/stats/Precision.java b/commons/src/main/java/com/twitter/common/stats/Precision.java
deleted file mode 100644
index cf7d6bc..0000000
--- a/commons/src/main/java/com/twitter/common/stats/Precision.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.twitter.common.stats;
-
-import com.google.common.base.Preconditions;
-
-/**
- * Precision expresses the maximum epsilon tolerated for a typical size of input
- * e.g.: Precision(0.01, 1000) express that we tolerate a error of 1% for 1000 entries
- *       it means that max difference between the real quantile and the estimate one is
- *       error = 0.01*1000 = 10
- *       For an entry like (1 to 1000), q(0.5) will be [490 <= x <= 510] (real q(0.5) = 500)
- */
-public class Precision {
-  private final double epsilon;
-  private final int n;
-
-  /**
-   * Create a Precision instance representing a precision per number of entries
-   *
-   * @param epsilon is the maximum error tolerated
-   * @param n size of the data set
-   */
-  public Precision(double epsilon, int n) {
-    Preconditions.checkArgument(0.0 < epsilon, "Epsilon must be positive!");
-    Preconditions.checkArgument(1 < n, "N (expected number of elements) must be greater than 1!");
-
-    this.epsilon = epsilon;
-    this.n = n;
-  }
-
-  public double getEpsilon() {
-    return epsilon;
-  }
-
-  public int getN() {
-    return n;
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/06ddaadb/commons/src/main/java/com/twitter/common/stats/PrintableHistogram.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/com/twitter/common/stats/PrintableHistogram.java b/commons/src/main/java/com/twitter/common/stats/PrintableHistogram.java
deleted file mode 100644
index 57635c6..0000000
--- a/commons/src/main/java/com/twitter/common/stats/PrintableHistogram.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.twitter.common.stats;
-
-import com.google.common.base.Preconditions;
-
-public class PrintableHistogram {
-  private double[] bucketBoundaries;
-  private int[] bucketCounts;
-  private int totalCount = 0;
-
-  /**
-   * Creates a histogram with the given bucket boundaries.  The boundaries
-   * 0 and infinity are implicitly added.
-   *
-   * @param buckets Boundaries for histogram buckets.
-   */
-  public PrintableHistogram(double ... buckets) {
-    Preconditions.checkState(buckets[0] != 0);
-
-    bucketBoundaries = new double[buckets.length + 2];
-    bucketBoundaries[0] = 0;
-    bucketCounts = new int[buckets.length + 2];
-    for (int i = 0; i < buckets.length; i++) {
-      if (i > 0) {
-        Preconditions.checkState(buckets[i] > buckets[i - 1],
-            "Bucket %f must be greater than %f.", buckets[i], buckets[i - 1]);
-      }
-      bucketCounts[i] = 0;
-      bucketBoundaries[i + 1] = buckets[i];
-    }
-
-    bucketBoundaries[bucketBoundaries.length - 1] = Integer.MAX_VALUE;
-  }
-
-  public void addValue(double value) {
-    addValue(value, 1);
-  }
-
-  public void addValue(double value, int count) {
-    Preconditions.checkState(value >= 0);
-    Preconditions.checkState(count >= 0);
-    Preconditions.checkState(bucketBoundaries.length > 1);
-    int bucketId = -1;
-    for (double boundary : bucketBoundaries) {
-      if (value <= boundary) {
-        break;
-      }
-      bucketId++;
-    }
-
-    bucketId = Math.max(0, bucketId);
-    bucketId = Math.min(bucketCounts.length - 1, bucketId);
-    bucketCounts[bucketId] += count;
-    totalCount += count;
-  }
-
-  public double getBucketRatio(int bucketId) {
-    Preconditions.checkState(bucketId >= 0);
-    Preconditions.checkState(bucketId < bucketCounts.length);
-    return (double) bucketCounts[bucketId] / totalCount;
-  }
-
-  public String toString() {
-    StringBuilder display = new StringBuilder();
-    display.append("Histogram: ");
-    for (int bucketId = 0; bucketId < bucketCounts.length - 1; bucketId++) {
-      display.append(String.format("\n(%g - %g]\n\t",
-          bucketBoundaries[bucketId], bucketBoundaries[bucketId + 1]));
-      for (int i = 0; i < getBucketRatio(bucketId) * 100; i++) {
-        display.append('#');
-      }
-      display.append(
-          String.format(" %.2g%% (%d)", getBucketRatio(bucketId) * 100, bucketCounts[bucketId]));
-    }
-
-    return display.toString();
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/06ddaadb/commons/src/main/java/com/twitter/common/stats/Rate.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/com/twitter/common/stats/Rate.java b/commons/src/main/java/com/twitter/common/stats/Rate.java
deleted file mode 100644
index 5ad7fcd..0000000
--- a/commons/src/main/java/com/twitter/common/stats/Rate.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.twitter.common.stats;
-
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Preconditions;
-import com.google.common.base.Supplier;
-import com.google.common.base.Suppliers;
-import com.google.common.base.Ticker;
-
-import com.twitter.common.collections.Pair;
-import com.twitter.common.quantity.Amount;
-import com.twitter.common.quantity.Time;
-import com.twitter.common.util.Clock;
-
-import java.util.concurrent.LinkedBlockingDeque;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicLong;
-
-/**
- * Function to compute a windowed per-second rate of a value.
- *
- * @author William Farner
- */
-public class Rate<T extends Number> extends SampledStat<Double> {
-
-  private static final int DEFAULT_WINDOW_SIZE = 1;
-  private static final double DEFAULT_SCALE_FACTOR = 1;
-  private static final long NANOS_PER_SEC = Amount.of(1L, Time.SECONDS).as(Time.NANOSECONDS);
-
-  private final Supplier<T> inputAccessor;
-  private final Ticker ticker;
-  private final double scaleFactor;
-
-  private final LinkedBlockingDeque<Pair<Long, Double>> samples;
-
-  private Rate(String name, Supplier<T> inputAccessor, int windowSize, double scaleFactor,
-      Ticker ticker) {
-    super(name, 0d);
-
-    this.inputAccessor = Preconditions.checkNotNull(inputAccessor);
-    this.ticker = Preconditions.checkNotNull(ticker);
-    samples = new LinkedBlockingDeque<Pair<Long, Double>>(windowSize);
-    Preconditions.checkArgument(scaleFactor != 0, "Scale factor must be non-zero!");
-    this.scaleFactor = scaleFactor;
-  }
-
-  public static <T extends Number> Builder<T> of(Stat<T> input) {
-    return new Builder<T>(input);
-  }
-
-  public static Builder<Long> of(String name, Supplier<Long> input) {
-    return new Builder<Long>(name, input);
-  }
-
-  public static Builder<AtomicInteger> of(String name, AtomicInteger input) {
-    return new Builder<AtomicInteger>(name, input);
-  }
-
-  public static Builder<AtomicLong> of(String name, AtomicLong input) {
-    return new Builder<AtomicLong>(name, input);
-  }
-
-  @Override
-  public Double doSample() {
-    T newSample = inputAccessor.get();
-    long newTimestamp = ticker.read();
-
-    double rate = 0;
-    if (!samples.isEmpty()) {
-      Pair<Long, Double> oldestSample = samples.peekLast();
-
-      double dy = newSample.doubleValue() - oldestSample.getSecond();
-      double dt = newTimestamp - oldestSample.getFirst();
-      rate = dt == 0 ? 0 : (NANOS_PER_SEC * scaleFactor * dy) / dt;
-    }
-
-    if (samples.remainingCapacity() == 0) samples.removeLast();
-    samples.addFirst(Pair.of(newTimestamp, newSample.doubleValue()));
-
-    return rate;
-  }
-
-  public static class Builder<T extends Number> {
-
-    private String name;
-    private int windowSize = DEFAULT_WINDOW_SIZE;
-    private double scaleFactor = DEFAULT_SCALE_FACTOR;
-    private Supplier<T> inputAccessor;
-    private Ticker ticker = Ticker.systemTicker();
-
-    Builder(String name, final T input) {
-      this.name = name;
-      inputAccessor = Suppliers.ofInstance(input);
-    }
-
-    Builder(String name, Supplier<T> input) {
-      this.name = name;
-      inputAccessor = input;
-    }
-
-    Builder(final Stat<T> input) {
-      Stats.export(input);
-      this.name = input.getName() + "_per_sec";
-      inputAccessor = new Supplier<T>() {
-        @Override public T get() { return input.read(); }
-      };
-    }
-
-    public Builder<T> withName(String name) {
-      this.name = name;
-      return this;
-    }
-
-    public Builder<T> withWindowSize(int windowSize) {
-      this.windowSize = windowSize;
-      return this;
-    }
-
-    public Builder<T> withScaleFactor(double scaleFactor) {
-      this.scaleFactor = scaleFactor;
-      return this;
-    }
-
-    @VisibleForTesting
-    Builder<T> withTicker(Ticker ticker ) {
-      this.ticker = ticker;
-      return this;
-    }
-
-    public Rate<T> build() {
-      return new Rate<T>(name, inputAccessor, windowSize, scaleFactor, ticker);
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/06ddaadb/commons/src/main/java/com/twitter/common/stats/Ratio.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/com/twitter/common/stats/Ratio.java b/commons/src/main/java/com/twitter/common/stats/Ratio.java
deleted file mode 100644
index 09d6a4c..0000000
--- a/commons/src/main/java/com/twitter/common/stats/Ratio.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.twitter.common.stats;
-
-import com.google.common.base.Preconditions;
-import com.google.common.base.Supplier;
-
-/**
- * Function to compute the ratio of two time series.
- * The first argument is the numerator, and the second is the denominator.  Assumes that the
- * timestamps of the two arguments are suitably synchronized (i.e. the ith point in the numerator
- * time series corresponds with the ith point of the denominator time series).
- *
- * @author William Farner
- */
-public class Ratio extends SampledStat<Double> {
-
-  private final Supplier<Number> numeratorAccessor;
-  private final Supplier<Number> denominatorAccessor;
-
-  private Ratio(String name, Supplier<Number> numeratorAccessor,
-      Supplier<Number> denominatorAccessor) {
-    super(name, 0d);
-    this.numeratorAccessor = Preconditions.checkNotNull(numeratorAccessor);
-    this.denominatorAccessor = Preconditions.checkNotNull(denominatorAccessor);
-  }
-
-  public static <T extends Number> Ratio of(Stat<T> numerator, Stat<T> denominator) {
-    Preconditions.checkNotNull(numerator);
-    Preconditions.checkNotNull(denominator);
-
-    String name = String.format("%s_per_%s", numerator.getName(), denominator.getName());
-    return Ratio.of(name, numerator, denominator);
-  }
-
-  public static <T extends Number> Ratio of(String name, final Stat<T> numerator,
-      final Stat<T> denominator) {
-    Preconditions.checkNotNull(numerator);
-    Preconditions.checkNotNull(denominator);
-
-    Stats.export(numerator);
-    Stats.export(denominator);
-
-    return new Ratio(name,
-        new Supplier<Number>() {
-          @Override public Number get() {
-            return numerator.read();
-          }
-        },
-        new Supplier<Number>() {
-          @Override public Number get() {
-            return denominator.read();
-          }
-        });
-  }
-
-  public static Ratio of(String name, final Number numerator, final Number denominator) {
-    Preconditions.checkNotNull(numerator);
-    Preconditions.checkNotNull(denominator);
-
-    return new Ratio(name,
-        new Supplier<Number>() {
-          @Override public Number get() {
-            return numerator;
-          }
-        },
-        new Supplier<Number>() {
-          @Override public Number get() {
-            return denominator;
-          }
-        });
-  }
-
-  @Override
-  public Double doSample() {
-    double numeratorValue = numeratorAccessor.get().doubleValue();
-    double denominatorValue = denominatorAccessor.get().doubleValue();
-
-    if ((denominatorValue == 0)
-        || (denominatorValue == Double.NaN)
-        || (numeratorValue == Double.NaN)) {
-      return 0d;
-    }
-
-    return numeratorValue / denominatorValue;
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/06ddaadb/commons/src/main/java/com/twitter/common/stats/RecordingStat.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/com/twitter/common/stats/RecordingStat.java b/commons/src/main/java/com/twitter/common/stats/RecordingStat.java
deleted file mode 100644
index f5bf4bd..0000000
--- a/commons/src/main/java/com/twitter/common/stats/RecordingStat.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.twitter.common.stats;
-
-/**
- * A variable that contains information about a (possibly changing) value.
- *
- * @author William Farner
- */
-interface RecordingStat<T extends Number> extends Stat<T> {
-
-  /**
-   * Called by the variable sampler when a sample is being taken.  Only calls to this method should
-   * be used to store variable history.
-   *
-   * Note - if the sampling of this value depends on other variables, it is imperative that those
-   * variables values are updated first (and available via {@link Stat#read()}.
-   *
-   * @return A new sample of the variable.
-   */
-  public T sample();
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/06ddaadb/commons/src/main/java/com/twitter/common/stats/RecordingStatImpl.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/com/twitter/common/stats/RecordingStatImpl.java b/commons/src/main/java/com/twitter/common/stats/RecordingStatImpl.java
deleted file mode 100644
index 38499d0..0000000
--- a/commons/src/main/java/com/twitter/common/stats/RecordingStatImpl.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.twitter.common.stats;
-
-import com.google.common.base.Preconditions;
-
-/**
- * A convenience class to wrap a {@link RecordingStat}.
- *
- * @author William Farner
- */
-class RecordingStatImpl<T extends Number> implements RecordingStat<T> {
-  private final Stat<T> recorded;
-  private final String name;
-
-  public RecordingStatImpl(Stat<T> recorded) {
-    this.recorded = Preconditions.checkNotNull(recorded);
-    this.name = Stats.validateName(recorded.getName());
-  }
-
-  @Override
-  public String getName() {
-    return name;
-  }
-
-  @Override
-  public T sample() {
-    return read();
-  }
-
-  @Override
-  public T read() {
-    return recorded.read();
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/06ddaadb/commons/src/main/java/com/twitter/common/stats/RequestStats.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/com/twitter/common/stats/RequestStats.java b/commons/src/main/java/com/twitter/common/stats/RequestStats.java
deleted file mode 100644
index faca9a9..0000000
--- a/commons/src/main/java/com/twitter/common/stats/RequestStats.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.twitter.common.stats;
-
-import com.twitter.common.stats.StatsProvider.RequestTimer;
-
-import javax.annotation.Nullable;
-import java.util.concurrent.atomic.AtomicLong;
-
-/**
- * A class to represent the statistics associated with a client connection to an external service.
- * Tracks request latency/rate, and error rate.
- *
- * @author William Farner
- */
-public class RequestStats implements RequestTimer {
-
-  private static final float DEFAULT_SAMPLE_PERCENT = 10;
-  private static final double[] DEFAULT_PERCENTILES = {10, 50, 90, 99, 99.9, 99.99};
-
-  private final SlidingStats requests;
-  private final Percentile<Long> percentile;
-
-  private final AtomicLong errors;
-  private final AtomicLong reconnects;
-  private final AtomicLong timeouts;
-
-  /**
-   * Creates a new request statistics object, using the default percentiles and sampling rate.
-   *
-   * @param name The unique name for this request type.
-   */
-  public RequestStats(String name) {
-    this(name, new Percentile<Long>(name, DEFAULT_SAMPLE_PERCENT, DEFAULT_PERCENTILES));
-  }
-
-  /**
-   * Creates a new request statistics object using a custom percentile tracker.
-   *
-   * @param name The unique name for this request type.
-   * @param percentile The percentile tracker, or {@code null} to disable percentile tracking.
-   */
-  public RequestStats(String name, @Nullable Percentile<Long> percentile) {
-    requests = new SlidingStats(name + "_requests", "micros");
-    this.percentile = percentile;
-    errors = Stats.exportLong(name + "_errors");
-    reconnects = Stats.exportLong(name + "_reconnects");
-    timeouts = Stats.exportLong(name + "_timeouts");
-    Rate<AtomicLong> requestsPerSec =
-        Rate.of(name + "_requests_per_sec", requests.getEventCounter()).build();
-    Stats.export(Ratio.of(name + "_error_rate",
-        Rate.of(name + "_errors_per_sec", errors).build(), requestsPerSec));
-    Rate<AtomicLong> timeoutsPerSec = Rate.of(name + "_timeouts_per_sec", timeouts).build();
-    Stats.export(timeoutsPerSec);
-    Stats.export(Ratio.of(name + "_timeout_rate", timeoutsPerSec, requestsPerSec));
-  }
-
-  public SlidingStats getSlidingStats() {
-    return requests;
-  }
-
-  public AtomicLong getErrorCounter() {
-    return errors;
-  }
-
-  public AtomicLong getReconnectCounter() {
-    return reconnects;
-  }
-
-  public AtomicLong getTimeoutCounter() {
-    return timeouts;
-  }
-
-  public Percentile<Long> getPercentile() {
-    return percentile;
-  }
-
-  /**
-   * Accumulates a request and its latency.
-   *
-   * @param latencyMicros The elapsed time required to complete the request.
-   */
-  public void requestComplete(long latencyMicros) {
-    requests.accumulate(latencyMicros);
-    if (percentile != null) percentile.record(latencyMicros);
-  }
-
-  /**
-   * Accumulates the error counter and the request counter.
-   */
-  public void incErrors() {
-    requestComplete(0);
-    errors.incrementAndGet();
-  }
-
-  /**
-   * Accumulates the error counter, the request counter and the request latency.
-   *
-   * @param latencyMicros The elapsed time before the error occurred.
-   */
-  public void incErrors(long latencyMicros) {
-    requestComplete(latencyMicros);
-    errors.incrementAndGet();
-  }
-
-  /**
-   * Accumulates the reconnect counter.
-   */
-  public void incReconnects() {
-    reconnects.incrementAndGet();
-  }
-
-  /**
-   * Accumulates the timtout counter.
-   */
-  public void incTimeouts() {
-    timeouts.incrementAndGet();
-  }
-
-  public long getErrorCount() {
-    return errors.get();
-  }
-
-  public long getReconnectCount() {
-    return reconnects.get();
-  }
-
-  public long getTimeoutCount() {
-    return timeouts.get();
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/06ddaadb/commons/src/main/java/com/twitter/common/stats/ReservoirSampler.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/com/twitter/common/stats/ReservoirSampler.java b/commons/src/main/java/com/twitter/common/stats/ReservoirSampler.java
deleted file mode 100644
index f9c6253..0000000
--- a/commons/src/main/java/com/twitter/common/stats/ReservoirSampler.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.twitter.common.stats;
-
-import java.util.Vector;
-
-import com.google.common.base.Preconditions;
-
-import com.twitter.common.util.Random;
-
-/**
- * An in memory implementation of Reservoir Sampling for sampling from
- * a population.
- * <p>Several optimizations can be done.
- * Especially, one can avoid rolling the dice as many times as the
- * size of the population with an involved trick.
- * See "Random Sampling with a Reservoir", Vitter, 1985</p>
- * <p>TODO (delip): Fix this when the problem arises</p>
- *
- * @param <T> Type of the sample
- * @author Delip Rao
- */
-public class ReservoirSampler<T> {
-  private final Vector<T> reservoir = new Vector<T>();
-  private final int numSamples;
-
-  private final Random random;
-  private int numItemsSeen = 0;
-
-  /**
-   * Create a new sampler with a certain reservoir size using
-   * a supplied random number generator.
-   *
-   * @param numSamples Maximum number of samples to
-   *                   retain in the reservoir. Must be non-negative.
-   * @param random Instance of the random number generator
-   *               to use for sampling
-   */
-  public ReservoirSampler(int numSamples, Random random) {
-    Preconditions.checkArgument(numSamples > 0,
-        "numSamples should be positive");
-    Preconditions.checkNotNull(random);
-    this.numSamples = numSamples;
-    this.random = random;
-  }
-
-  /**
-   * Create a new sampler with a certain reservoir size using
-   * the default random number generator.
-   *
-   * @param numSamples Maximum number of samples to
-   *        retain in the reservoir. Must be non-negative.
-   */
-  public ReservoirSampler(int numSamples) {
-    this(numSamples, Random.Util.newDefaultRandom());
-  }
-
-  /**
-   * Sample an item and store in the reservoir if needed.
-   *
-   * @param item The item to sample - may not be null.
-   */
-  public void sample(T item) {
-    Preconditions.checkNotNull(item);
-    if (reservoir.size() < numSamples) {
-      // reservoir not yet full, just append
-      reservoir.add(item);
-    } else {
-      // find a sample to replace
-      int rIndex = random.nextInt(numItemsSeen + 1);
-      if (rIndex < numSamples) {
-        reservoir.set(rIndex, item);
-      }
-    }
-    numItemsSeen++;
-  }
-
-  /**
-   * Get samples collected in the reservoir.
-   *
-   * @return A sequence of the samples. No guarantee is provided on the order of the samples.
-   */
-  public Iterable<T> getSamples() {
-    return reservoir;
-  }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/aurora/blob/06ddaadb/commons/src/main/java/com/twitter/common/stats/SampledStat.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/com/twitter/common/stats/SampledStat.java b/commons/src/main/java/com/twitter/common/stats/SampledStat.java
deleted file mode 100644
index c5986b8..0000000
--- a/commons/src/main/java/com/twitter/common/stats/SampledStat.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.twitter.common.stats;
-
-/**
- * A convenience class to perform the basic tasks needed for a {@link RecordingStat} except the
- * actual value calculation.
- *
- * @author William Farner
- */
-public abstract class SampledStat<T extends Number> extends StatImpl<T> implements RecordingStat<T> {
-
-  private volatile T prevValue;
-
-  public SampledStat(String name, T defaultValue) {
-    super(name);
-    this.prevValue = defaultValue; /* Don't forbid null. */
-  }
-
-  public abstract T doSample();
-
-  @Override
-  public final T sample() {
-    prevValue = doSample();
-    return prevValue;
-  }
-
-  @Override
-  public T read() {
-    return prevValue;
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/06ddaadb/commons/src/main/java/com/twitter/common/stats/Significance.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/com/twitter/common/stats/Significance.java b/commons/src/main/java/com/twitter/common/stats/Significance.java
deleted file mode 100644
index 0a9fdf0..0000000
--- a/commons/src/main/java/com/twitter/common/stats/Significance.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.twitter.common.stats;
-
-/**
- * Calculate significance scores between an observed amount and an expected amount.
- *
- * @author Gilad Mishne
- */
-public class Significance {
-
-  /**
-   * @param observed The observed amount.
-   * @param expected The expected amount.
-   * @return [(observed - expected) ** 2 / expected] * sign(observed - expected)
-   */
-  public static double chiSqrScore(double observed, double expected) {
-    double score = Math.pow((observed - expected), 2) / expected;
-    if (observed < expected) {
-      score *= -1;
-    }
-    return score;
-  }
-
-  /**
-   * @param observed The observed amount.
-   * @param expected The expected amount.
-   * @return -2 * expected * log(observed / expected) * sign(observed - expected)
-   */
-  public static double logLikelihood(double observed, double expected) {
-    if (observed == 0) {
-      return -expected;
-    }
-    if (expected == 0) {
-      return observed;
-    }
-    double score = -2 * observed * Math.log(observed / expected);
-    if (observed < expected) {
-      score *= -1;
-    }
-    return score;
-  }
-
-  private Significance() {
-    // prevent instantiation
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/06ddaadb/commons/src/main/java/com/twitter/common/stats/SlidingStats.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/com/twitter/common/stats/SlidingStats.java b/commons/src/main/java/com/twitter/common/stats/SlidingStats.java
deleted file mode 100644
index 251ff2d..0000000
--- a/commons/src/main/java/com/twitter/common/stats/SlidingStats.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.twitter.common.stats;
-
-import com.twitter.common.base.MorePreconditions;
-
-import java.util.concurrent.atomic.AtomicLong;
-
-/**
- * Tracks event statistics over a sliding window of time. An event is something that has a
- * frequency and associated total.
- *
- * @author William Farner
- */
-public class SlidingStats {
-
-  private static final int DEFAULT_WINDOW_SIZE = 1;
-
-  private final AtomicLong total;
-  private final AtomicLong events;
-  private final Stat<Double> perEventLatency;
-
-  /**
-   * Creates a new sliding statistic with the given name
-   *
-   * @param name Name for this stat collection.
-   * @param totalUnitDisplay String to display for the total counter unit.
-   */
-  public SlidingStats(String name, String totalUnitDisplay) {
-    this(name, totalUnitDisplay, DEFAULT_WINDOW_SIZE);
-  }
-
-  /**
-   * Creates a new sliding statistic with the given name
-   *
-   * @param name Name for this stat collection.
-   * @param totalUnitDisplay String to display for the total counter unit.
-   * @param windowSize The window size for the per second Rate and Ratio stats.
-   */
-  public SlidingStats(String name, String totalUnitDisplay, int windowSize) {
-    MorePreconditions.checkNotBlank(name);
-
-    String totalDisplay = name + "_" + totalUnitDisplay + "_total";
-    String eventDisplay = name + "_events";
-    total = Stats.exportLong(totalDisplay);
-    events = Stats.exportLong(eventDisplay);
-    perEventLatency = Stats.export(Ratio.of(name + "_" + totalUnitDisplay + "_per_event",
-        Rate.of(totalDisplay + "_per_sec", total).withWindowSize(windowSize).build(),
-        Rate.of(eventDisplay + "_per_sec", events).withWindowSize(windowSize).build()));
-  }
-
-  public AtomicLong getTotalCounter() {
-    return total;
-  }
-
-  public AtomicLong getEventCounter() {
-    return events;
-  }
-
-  public Stat<Double> getPerEventLatency() {
-    return perEventLatency;
-  }
-
-  /**
-   * Accumulates counter by an offset.  This is is useful for tracking things like
-   * latency of operations.
-   *
-   * TODO(William Farner): Implement a wrapper to SlidingStats that expects to accumulate time, and can
-   *    convert between time units.
-   *
-   * @param value The value to accumulate.
-   */
-  public void accumulate(long value) {
-    total.addAndGet(value);
-    events.incrementAndGet();
-  }
-
-  @Override
-  public String toString() {
-    return total + " " + events;
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/06ddaadb/commons/src/main/java/com/twitter/common/stats/Stat.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/com/twitter/common/stats/Stat.java b/commons/src/main/java/com/twitter/common/stats/Stat.java
deleted file mode 100644
index 193727f..0000000
--- a/commons/src/main/java/com/twitter/common/stats/Stat.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.twitter.common.stats;
-
-/**
- * A stat that may only be read, no method calls will cause any internal state changes.
- *
- * @author William Farner
- */
-public interface Stat<T> {
-
-  /**
-   * Gets the name of this stat. For sake of convention, variable names should be alphanumeric, and
-   * use underscores.
-   *
-   * @return The variable name.
-   */
-  String getName();
-
-  /**
-   * Retrieves the most recent value of the stat.
-   *
-   * @return The most recent value.
-   */
-  T read();
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/06ddaadb/commons/src/main/java/com/twitter/common/stats/StatImpl.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/com/twitter/common/stats/StatImpl.java b/commons/src/main/java/com/twitter/common/stats/StatImpl.java
deleted file mode 100644
index d162197..0000000
--- a/commons/src/main/java/com/twitter/common/stats/StatImpl.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.twitter.common.stats;
-
-import com.twitter.common.base.MorePreconditions;
-
-/**
- * A convenience class to not require stat implementers to implement {@link #getName()}.
- *
- * @author William Farner
- */
-public abstract class StatImpl<T> implements Stat<T> {
-
-  private final String name;
-
-  public StatImpl(String name) {
-    this.name = MorePreconditions.checkNotBlank(name);
-  }
-
-  @Override
-  public String getName() {
-    return name;
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/06ddaadb/commons/src/main/java/com/twitter/common/stats/StatRegistry.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/com/twitter/common/stats/StatRegistry.java b/commons/src/main/java/com/twitter/common/stats/StatRegistry.java
deleted file mode 100644
index 57885ea..0000000
--- a/commons/src/main/java/com/twitter/common/stats/StatRegistry.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.twitter.common.stats;
-
-/**
- * A registry of stats.
- *
- * @author William Farner
- */
-public interface StatRegistry {
-
-  /**
-   * Gets all stats in the registry.
-   *
-   * @return All registered stats.
-   */
-  Iterable<RecordingStat<? extends Number>> getStats();
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/06ddaadb/commons/src/main/java/com/twitter/common/stats/Statistics.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/com/twitter/common/stats/Statistics.java b/commons/src/main/java/com/twitter/common/stats/Statistics.java
deleted file mode 100644
index 480701f..0000000
--- a/commons/src/main/java/com/twitter/common/stats/Statistics.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.twitter.common.stats;
-
-/**
- * A simple class to keep running statistics that require O(1) storage.
- *
- * @author William Farner
- */
-public class Statistics implements StatisticsInterface {
-  private long populationSize;
-  private long sum;
-  private double accumulatedVariance;
-  private double runningMean;
-
-  private long minValue;
-  private long maxValue;
-
-  public Statistics() {
-    clear();
-  }
-
-  public void accumulate(long value) {
-    populationSize++;
-    sum += value;
-    double delta = value - runningMean;
-    runningMean += delta / populationSize;
-    accumulatedVariance += delta * (value - runningMean);
-
-    // Update max/min.
-    minValue = value < minValue ? value : minValue;
-    maxValue = value > maxValue ? value : maxValue;
-  }
-
-  public void clear() {
-    populationSize = 0;
-    sum = 0;
-    accumulatedVariance = 0;
-    runningMean = 0;
-    minValue = Long.MAX_VALUE;
-    maxValue = Long.MIN_VALUE;
-  }
-
-  public double variance() {
-    return accumulatedVariance / populationSize;
-  }
-
-  public double standardDeviation() {
-    return Math.sqrt(variance());
-  }
-
-  public double mean() {
-    return runningMean;
-  }
-
-  public long min() {
-    return minValue;
-  }
-
-  public long max() {
-    return maxValue;
-  }
-
-  public long range() {
-    return maxValue - minValue;
-  }
-
-  public long sum() {
-    return sum;
-  }
-
-  public long populationSize() {
-    return populationSize;
-  }
-
-  @Override
-  public String toString() {
-    return String.format("Mean: %f, Min: %d, Max: %d, Range: %d, Stddev: %f, Variance: %f, " +
-        "Population: %d, Sum: %d", mean(), min(), max(), range(), standardDeviation(),
-        variance(), populationSize(), sum());
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/06ddaadb/commons/src/main/java/com/twitter/common/stats/StatisticsInterface.java
----------------------------------------------------------------------
diff --git a/commons/src/main/java/com/twitter/common/stats/StatisticsInterface.java b/commons/src/main/java/com/twitter/common/stats/StatisticsInterface.java
deleted file mode 100644
index f7fd541..0000000
--- a/commons/src/main/java/com/twitter/common/stats/StatisticsInterface.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.twitter.common.stats;
-
-/**
- * Interface representing statistics of a set of (long) elements.
- */
-public interface StatisticsInterface {
-  /**
-   * Add a value in the Statistics object.
-   * @param value value that you want to accumulate.
-   */
-  void accumulate(long value);
-
-  /**
-   * Clear the Statistics instance (equivalent to recreate a new one).
-   */
-  void clear();
-
-  /**
-   * Return the variance of the inserted elements.
-   */
-  double variance();
-
-  /**
-   * Return the standard deviation of the inserted elements.
-   */
-  double standardDeviation();
-
-  /**
-   * Return the mean of the inserted elements.
-   */
-  double mean();
-
-  /**
-   * Return the min of the inserted elements.
-   */
-  long min();
-
-  /**
-   * Return the max of the inserted elements.
-   */
-  long max();
-
-  /**
-   * Return the range of the inserted elements.
-   */
-  long range();
-
-  /**
-   * Return the sum of the inserted elements.
-   */
-  long sum();
-
-  /**
-   * Return the number of the inserted elements.
-   */
-  long populationSize();
-}